**1.單步法**
OD載入,不分析代碼
近CALL-F7,遠CALL-F8,實現向下跳轉
有回跳處,下一句代碼處F4(向上跳不實現)
大的跳轉,很快就會到OEP(大跨段,JMP***或JE***或RETN、CALL)
**2.一步直達法**
只適合少數殼,如UPX,ASPACK
CTRL+F—輸入:POPAD.
回車查找—F2下斷—F9運行到此處.
來到大跳轉處,F8到OEP.
**3.ESP定律法**
F8,觀察OD右上角寄存器中ESP有沒有實現(紅色突變)
通常在pushad等關鍵句之下
命令行下 DD xxxxx(當前代碼ESP值)或者數據窗口跟隨,回車
DD選中的下端地址,斷點—硬件訪問—DWORD斷點,shift+F9運行,到跳轉處F8 到OEP
**4.內存鏡像法**
OD載入軟件,點選項—調試選項—忽略全部—CTRL+F2重載
ALT+M打開內存鏡像,找程序第一個.rsrc;
F2下斷—SHIFT+F9運行到斷點,
再打開找到程序第一個.rsrc上面的.code處(就是00401000處),
F2下斷—SHIFT+F9或無異常按F9,到OEP
**5.SFX自解壓法(壓縮殼**)
設置OD,忽略所有異常.
切換到SFX選項卡,選擇“字節模式跟蹤實際入口”,確定.
重載—“否”壓縮代碼,到OEP.
**6.最后一次異常法**
OD打開—點選項—調試選項—去掉所有異常勾選—CTRL+F2重載.
SHIFT+F9.直到程序跑飛,記下次數M
CTRL+F2重載—按SHIFT+F9(次數為M-1次)
按CTRL+G—輸入堆棧右下角的SE句柄值的地址.
往下走,retn下一語句F2下斷—SHIFT+F9到斷點處.
去斷按F8,到OEP.
**Overlay處理**
用查殼工具查殼后,殼類型后邊有[Overlay]這樣的說明,軟件就是含有附加數據
工具處理:Overlay最終版
**手工處理**:
~~~
1.用PE分析工具打開區段界面,看最后一行數據或者name一欄中名為'ExtraDat'的
2.該數據段,沒有虛擬偏移地址。也沒有虛擬大小,因而不會映射到內存中。
3.用實際大小減去實際偏移得到XXXX,用16進制編輯工具打開原程序找到該地址
4.在此處右鍵,選塊開始-拉倒最后-選塊結束;復制到脫殼后文件的結尾
~~~