1. 程式人生 > >利用ESP定律脫殼

利用ESP定律脫殼

關於 ESP 脫殼找 EOP

ESP 定律:就是載入程式後 F8單步執行 第一個變化的 ESP 值,右擊暫存器上 ESP 在轉存中跟隨,在記憶體地址上 選中前四個,右擊,斷點,硬體訪問,word F9,中斷,....返回。

(D 12ffc0 選四個下硬體寫入 dword) 我的其它小記


1. Aspcak 方法:
ESP+6175(Sb) POPAD JMP

2. UPX 方法:
S 0000 The First JMP
變種
ESP+S (60E9)
0040EA0E 60 PUSHAD
0040EA0F - E9 B826FFFF JMP chap702.004010CC


3. PECompact 1.68 - 1.84
ESP
Or 注意 第一個 PUSH XXXX XXXX+基址(400000)=EOP

4. EZIP 1.0 方法:
ESP

5. JDPack 1.x / JDProtect 0.9
ESP+S(6150)

0040E3F8 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
0040E3FC 61 POPAD
0040E3FD 50 PUSH EAX
0040E3FE C3 RETN
0040E3FF 23E8 AND EBP,EAX

6. PE Pack 1.0
ESP+S (61ff)
0040D26F 61 POPAD
0040D270 FFE0 JMP EAX

7. WWPack32 1.x
ESP

8. PEDiminisher 0.1
ESP+S(FFE0) or S(JMP EAX)
0041708D 5D POP EBP
0041708E 5F POP EDI
0041708F 5E POP ESI
00417090 5A POP EDX
00417091 59 POP ECX
00417092 5B POP EBX
00417093 - FFE0 JMP EAX

9. DxPACK V0.86
ESP+S(JMP EAX or 61ffe0)
0040D163 61 POPAD
0040D164 - FFE0 JMP EAX

10. PKLITE32 1.1
F8 5 次來到 EOP

11. 32Lite 0.03a
ESP 往下找到
PUSH EAX
50c3 or PUSH EAX
003780F4 50 PUSH EAX
003780F5 C3 RETN
來到
0041C53C FF96 84B50100 CALL DWORD PTR DS:[ESI+1B584]
0041C542 61 POPAD
0041C543 - E9 0848FFFF JMP QEDITOR.00410D50
注意:先用 LoadPE 轉存 Olldbg 載入的那個加殼檔案,退出,執行加殼後的檔案,RecImport 修正 EOP 修復抓取檔案到 DUMP 的那個檔案。


12. VGCrypt PE Encryptor V0.75
ESP 安 F9(斷點開始),地址-1=EOP


13. PC Shrinker 0.71
ESP
00142BA8 BA CC104000 MOV EDX,4010CC
00142BAD FFE2 JMP EDX

14. Petite2.2
1. D 12ffa0
3 下 F9
來到 EOP=地址-1
2. ESP 兩下 同上

15. EXE Stealth2.72
ESP+S()

0040D49F 8B9D B62F4000 MOV EBX,DWORD PTR SS:[EBP+402FB6]
0040D4A5 039D BA2F4000 ADD EBX,DWORD PTR SS:[EBP+402FBA]
將堆疊中值10cc+400000=4010cc 得出記事本的Oep. 加殼軟體的oep.
0040D4AB C1CB 07 ROR EBX,7


註明:
例子: ESP+S (60E9)
後面 S 是搜尋的意思,裡面為搜尋內容,可能是 Ctrl+F 的也可能是 Ctrl+B