手脫UPX殼方法介紹

2021-09-25 17:28:14 字數 1847 閱讀 5095

方法1:單步跟蹤

f8單步跟蹤,向上不能讓他跳,有loopd迴圈也一樣(跳轉的下一行按f4:執行到選定位置,迴圈loopd在call下一句f4執行)

只允許向下跳,如單步跟蹤call處程式執行,則需要過載程式,再call處f7跟進(近call f7,遠call f8)

pushad 入棧 

popad:出棧 出棧就離oep不遠了

看基址如有大的跳轉則為調到oep,到達oep後就殼脫殼

005791ee    61              popad

005791ef  - e9 98e1efff     jmp rmvbfix.0047738c

0047738c

55              push ebp

0047738d    8bec            mov ebp,esp

0047738f    83c4 f0         add esp,-0x10

00477392    b8 2c714700     mov eax,rmvbfix.0047712c                 ; unicode "k"

找到oep後下來就是脫殼,兩種方法

1)od外掛程式ollydump,

2)lordpe:選擇程序->修正映象大小並完整儲存->執行importrec輸入表重建程式,找程序,oep改為找到的ope基址,取後5位,然後自動查詢iat,獲取輸入表,修復轉存檔案

注:如遇到srv病毒,需要脫殼後在匯入od分析,如下位srv病毒oep特點

00579080    60              pushad

00579081    be 00104f00     mov esi,rmvbfix.004f1000

00579086    8dbe 0000f1ff   lea edi,dword ptr ds:[esi-0xf0000]

0057908c    57              push edi

0057908d    83cd ff         or ebp,-0x1

00579090    eb 10           jmp short rmvbfix.005790a2

方法2:esp定律法

f8單步一下進入下一行,暫存器視窗esp顯示紅色,esp右鍵 資料視窗中跟隨或命令 dd或hr esp基址來到大跳轉->在第一行數值 右鍵 斷點-硬體訪問斷點 word->f9執行->刪除硬體斷點,單步直達oep

dd ***xx-->esp位址

hr ***xx-->esp位址

方法3:2次記憶體映象法

m:在區段的程式段.rsrc(第乙個.rsrc)下斷點,執行,然後在進入m在00401000在下斷點執行,f8單步到popad->oep

注意:如在第乙個程式區段無.rsrc,則直接在00401000(code)處下斷點

方法4:一步直達法

不是什麼殼都適用。絕大多數upx和aspack

查詢popad(取消勾選整個區塊),單步到大跳轉oep,可多次查詢popad

方法5.最後一次異常法

1.除錯選項忽略所有異常

引導程式shift+f9執行知道程式執行跑飛,記下次數比如5次,則重新載入按5-1=4次,然後找到如下se控制代碼,轉到表示式,然後下斷點並執行,取消斷點然後單步跟蹤

方法6.脫殼指令碼

外掛程式-》odbgscript-執行指令碼 開啟脫殼指令碼,直達oep(不一定準確,不准時需繼續單步)

手脫64位UPX殼

背景 近期舍友不知道為啥忽然要漢化乙個gta的外掛程式,第一次聽說他要漢化,問了我一堆關於逆向的東西。由於外掛程式加了upx的殼 也是peid說的,我感覺是乙個很奇怪的殼 他搞不定於是發來給我。我平時也是逆向linux的elf檔案多一些,windows的而且還是64位的幾乎沒搞過,平時也沒脫過什麼殼...

ximo脫殼1 手脫UPX殼

ximo脫殼之基礎教程第一課 手脫upx殼 upx殼為一種簡單的壓縮殼 除錯工具為peid和od 手脫upx有四種方式找到oep 第一種 單步跟蹤 第二種 esp定址 第三種 2次記憶體映象法 第四種 一次直達法 首先,開啟od,將示例程式 開啟該檔案之後,我們進行單步跟蹤 圖中標出的即為單步跟蹤的...

手動脫UPX 殼實戰

windows平台的加殼軟體還是比較多的,因此有非常多人對於 pc軟體的脫殼樂此不彼,本人菜鳥一枚,也學習一下 pc的脫殼。要對軟體進行脫殼。首先第一步就是 查殼。然後才是 脫殼。pe detective exeinfo pe die 工具。須要脫殼的程式是吾愛破解論壇的windows 逆向破解培訓...