詳解對ELF64之手動脫殼的逆向分析

2021-01-21 酷扯兒

本文轉載自【微信公眾號:MicroPest,ID:gh_696c36c5382b】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

應一位朋友之邀,對「吾愛論壇『ELF64手脫upx殼實戰』一文」進行了再重現,考慮到朋友他對原文過程理解不深,特抽空行文,著重對每個步驟、每個知識點進行了分解,現共享出來以回饋社會;同時此文對IDA遠程調試、編寫idc腳本有指導作用。

一、作者提供的樣本:

連結:

https://pan.baidu.com/s/1v_uL26C6FooLhHHSbPUhmQ

提取碼: ubmc、解壓密碼:52pojie.cn

樣本名:upx_linux;

二、分解過程

①在虛擬機裡上傳upx_linux樣本,放於root目錄下;虛擬機IP為192.168.152.138,下圖示:

確認樣本upx_linux是32位還是64位的程序?

readelf -a upx_linux,下圖可以看到為64位程序;

上圖為ELF文件頭,前四個字節為標識:7f 45 4c 46,意思就是:ELF,下圖:

第5個字節標識:為1,則32位;為2,則為64位;

這裡建議用010editor這個編輯器,它提供了很多腳本可以自動地識別出文件格式,能對當前欄位進行說明。

②上傳IDA服務端程序到虛擬機linux,因為我們要用IDA進行遠程調試,如圖:

因為這裡的文件是64位的,所以將linux_server64上傳到root目錄下;同理,如果是32位,就上傳linux_server,並將兩文件賦運行權限,因為要運行程序;

chmod +x linux_server64

chmod +x upx_linux

將linux_server64運行起來,

運行起來了,後端監聽23946埠;

下面開始ida遠程連接,如圖操作、配置:

如上圖這樣配好,OK完成;

③啟動代碼調試:

程序定位在了上圖入口處:44F058H,同下圖文件頭中的入口地址一致:

一直單步調試下去,來到這裡:

F7進入這個call;一直往下單步:

來到圖中位置,發現有三個向上的循環,直接在紅色位置下斷F2,按F9跳出三個循環,來到下斷處;

如上圖,這裡有個call,不用進去,F8過去;來到jmp的跳轉[r15],看看是什麼:

[r15]指向40000CH處,執行過去,

跳轉到40000CH處,注意看上圖,這不是ELF文件頭嘛(方框處),並在文件頭位置臨時放置代碼(橢圓處),很不正常啊!看來是跳轉語句,應該要到正常入口了,勝利在望!繼續執行,

來到了這裡,看著代碼,覺得舒服多了,這裡應該就是程序的正常入口OEP了,upx殼脫掉了。

下面就要將這些內存代碼dump出來,用作者提供的腳本;

執行完畢了,上圖為腳本輸出回顯窗口。已dump到文件中;將此dump文件上傳到linux中,運行正常,OK了。

三、IDC腳本的理解

作者的代碼寫得很清楚,紅筆框出來的代碼是重點,尤其是當你對RLF64文件頭格式不清楚時就覺得不太好理解;我這裡畫了張圖,結合idc代碼幫助理解。

關於ELF64位的文件頭,可以參看:

https://github.com/torvalds/linux/blob/master/include/uapi/linux/elf.h#L220

也可以簡單點,看這個圖:

最好,還是要結合010editor載入的ELF文件,以及在動態調試中的ida的實際值來結合查看,這樣才能精準地理解ELF格式;如下圖,可以仔細品味品味。

分析到這裡就要結束了,內容很多,希望你能靜下心來慢慢消化,終將會有很大的收穫,也就不枉我的辛苦了

本文轉載自【微信公眾號:MicroPest,ID:gh_696c36c5382b】,經微信公眾號授權轉載,如需轉載與原文作者聯繫

相關焦點

  • 抖音彭十六elf真名叫什麼 彭渲之個人資料家庭背景
    繼抖音溫婉、抖音莉哥之後又一位抖音超火的漂亮小姐姐,彭十六elf外貌長相很萌很可愛,尤其是其有兩顆小虎牙笑起來特別迷人,俘獲了無數觀眾的心,給其吸引了大批粉絲。  彭十六elf在抖音上傳有161個短視頻作品,擁有粉絲605萬之多,被網友點讚4000萬次。
  • 造夢西遊4坐騎整理分析之金毛吼詳解
    造夢西遊4坐騎整理分析之金毛吼詳解 作者:佚名來源:網絡發布時間:2017-02-21 造夢西遊4金毛吼捕捉 造夢西遊4金毛吼技能 造夢西遊4金毛吼怎麼樣造夢西遊4坐騎整理分析之金毛吼詳解
  • 汽車標識符號大全_汽車儀錶盤上的標識_汽車儀錶盤上的64標識詳解
    打開APP 汽車標識符號大全_汽車儀錶盤上的標識_汽車儀錶盤上的64標識詳解 發表於 2018-01-05 18:15:23
  • 安卓手機網絡抓包分析,小白也能輕鬆上手
    以往分析此類apk程序,大都是以apk程序脫殼逆向為主,過程複雜,效率低下,一線辦案人員不能夠快速掌握相關技能。我們採用了網絡抓包的方式來截獲部分數據信息用於分析,雖然目前也有比較成熟的網絡抓包軟體,大都是國外軟體為主,用起來相對複雜,難以快速上手,所以為解決這個問題,我們重新利用了軟硬體結合的方式,重新定義了一套網絡抓包,解包,分析的工具。
  • 螃蟹不僅冬眠還會脫殼?螃蟹為何脫殼?
    但是在螃蟹成長的必經之路中,有這樣的一個環節那就是——脫殼。那麼螃蟹為何要脫殼呢?下面就讓我們一起去看一下吧。 原來呀,螃蟹是需要脫殼的!螃蟹在成長過程中是有幾次必經的脫殼之路的,它們在脫殼之後他們的新殼會非常的軟並且伴有褶皺。但是等待一段時間之後,它們的殼就會恢復正常的狀態了!
  • 小龍蝦脫殼瞬間
    小龍蝦是如何脫殼的?
  • 「最全資源分享」包括滲透,逆向,工具,視頻,福利等資源提供下載!
    /pan.baidu.com/s/19rxq6R9-1QZFa7JbOvC-Gg 提取碼:k6r4 Python深度學習人工智慧算法等(帶配套資源):連結:https://pan.baidu.com/s/1udBsCzOoG73kyozwixernw 提取碼:tk5l逆向教程病毒分析
  • 對蝦「脫殼」是成長的標誌,避免「脫殼不遂」,才能提高養殖收益
    南美白對蝦的整個養殖周期大約要經歷50多次脫殼,脫殼貫穿對蝦的整個生長過程,也正是由於一次又一次的脫殼,對蝦才會不斷長大。但是在養殖過程中也經常會出現殼脫不下來的情況,也就是我們平時所說的脫殼不遂,這種現象是多種原因造成的,提前做好預防也是可以避免的,暢暢今天就和大家探討一下對蝦脫殼不遂的原因及預防措施,希望能幫助到大家。
  • 對蝦脫殼不遂?龍昌動保膽汁酸幫助南美白對蝦順利脫殼
    在環境適宜情況下,蝦苗30~40小時脫殼一次,體重1~5克的仔蝦約4~6天脫殼一次,15克以上的大蝦一般兩周脫殼一次,多在初一、十五前後的上半夜,大潮與小潮間;天氣突變時多在黎明前。對蝦的脫殼貫穿著整個生長過程,每一次脫殼都是一次蛻變,這個蛻變的過程正是對蝦最脆弱的時候,也是最敏感的時候,很容易被病原侵入,可以說每次脫殼都是對蝦的生命難關;所以無論是對水質的要求還是餌料的投餵或者是天氣環境的變化,以及營養物質的需求等等,都需要我們特別的關注。一般情況下,對蝦脫殼大致會經歷五個過程:脫殼間期、脫殼前期、脫殼期、脫殼後期和後續期。
  • 要想養殖螃蟹效益好,多注重螃蟹脫殼,螃蟹脫殼的一些注意事項
    要想養殖螃蟹效益好,多注重螃蟹脫殼,螃蟹脫殼的一些注意事項現在隨著人們的生活水平的提高,很多以前很少消費的東西,現在也逐漸多了起來,比如說螃蟹,螃蟹目前的市場是比較大的,這就催生了螃蟹越來越多的養殖,那麼要想養殖螃蟹效益好,還要多注重螃蟹脫殼。
  • 小龍蝦第一次脫殼
    小龍蝦從稚苗到成熟一共脫殼11次,每一次順利脫殼都會完成一次生長。
  • 對於烏龜脫殼的認識.
    烏龜能脫殼嗎?
  • FMEA-MSR步驟四:失效分析
    4FMEA-MSR步驟四:失效分析 目的 說明導致最終影響的事件鏈失效分析的主要目標: -建立失效鏈在這種情況下,診斷監視和系統響應的說明將添加到分析中。車窗僅在手動模式下才可以移動。 探測到的信號丟失。
  • 小龍蝦脫殼期管理要點
    每年5月份前後正是小龍蝦脫殼的高峰期,脫殼後的小龍蝦是最弱的時期,極易被病害入侵,極易出現死亡,所以這時的管理極為重要。那麼在小龍蝦脫殼期該怎麼管理呢?一起來看看吧。    1、前期準備    在小龍蝦脫殼時為了保證其正常脫殼,首先要做好前期工作,比如水質和水體養護,確保水質清潔,養殖池消毒,消除天敵等工作,給小龍蝦提供一個良好的生長環節,充足的水草可以提供餌料和脫殼時的一個安全空間,這些都要注意。另外在脫殼時要保持環境安靜,小龍蝦在脫殼時一旦受到外界的幹擾就會脫殼失敗,導致其死亡。
  • 烏龜脫殼是不是很正常!
    龜有很多種,有的脫殼,有的不蛻,烏龜一般是指老的公草龜,國產的,你這個是密西西比紅耳龜,又叫巴西龜,在市場上是最普通的品種,是脫殼的,很正常,從你這個脫殼的龜甲看,你這個龜大概12cm以上了,四五年有了,可以考慮入一個差不多大的進行繁殖了。首先說一個關於烏龜脫殼的故事。
  • 《命令與徵服:紅色警戒》獾轟炸機背景介紹及詳解
    《命令與徵服:紅色警戒》中作戰的飛機不少,獾轟炸機就是其中一個,很多玩家對這個沒什麼印象,但隨著重製版的上線,這款經典的老遊戲又被拉到公眾面前來討論了,為了幫助玩家回溫此遊戲,本文特意整理了獾轟炸機的背景以及詳解。
  • 【原創技術】小龍蝦脫殼管理——上篇
    其中,脫殼時出現脫殼不遂、軟殼、缺氧、倒藻、甚至死蝦,嚴重影響了養殖效益。本文跟大家分享一些龍蝦脫殼有關的細節,以及相關問題的解決方案。幼蝦再經歷多次脫殼長成成熟商品蝦,小龍蝦從幼體階段到商品蝦養成需要脫殼11-12次。脫殼是小龍蝦生長發育的重要標誌,據測量,全長10cm的小龍蝦脫殼一次可增長1.3cm。脫殼伴隨著小龍蝦整個一生,脫殼順利與否直接影響成活率和產量。
  • 野生小錐慄脫殼的「秘方」。先晾曬脫殼,甑蒸熟,再小火炒至脫殼
    放在太陽下曬一下星期左右,就會脫殼。經過幾天,咬開一個,裡面的肉就滾出來了。嘗一個,特別甜。手剝出來能脫殼時,就可以用甑蒸了,找出家裡幾十年的老甑,我爸說過去人多都是用甑蒸飯。甑底部有一個小隔板。把小錐慄都倒入甑內。
  • 蟹農拍下螃蟹脫殼全過程 螃蟹一生至少要脫殼18次
    您的位置:龍虎網 &gt新聞中心 > 辣油視頻 > 蟹農拍下螃蟹脫殼全過程 螃蟹一生至少要脫殼18次
  • 脫殼的螃蟹,你忍心吃嗎?
    在脫殼之前,螃蟹會將原本外殼內的碳酸鈣吸收到體液內,經過痛苦的脫殼過程後,身體背部會再一次長出一層新的軟殼。硬殼從身體完全脫落以後,螃蟹猶如重生一般,身上長出的軟殼會比以往的殼大一些。螃蟹一生需要完成18次的蛻變,每次蛻變的過程中,如果發生一點意外,螃蟹便會死在蟹殼中,這種現象在夏天是經常發生的。螃蟹的蛻變和蠶有著異曲同工之妙,每次的死亡其實也就是意味著另一次的重生。