脱PEtitle手记
/*********************************************************脱PEtitle手记
目标程序:记事本Notepad.exe
PEid查壳为:PEtite 2.x -> Ian Luck
日期:2007-11-06 12:24
*********************************************************/
设置OD选项:忽略所有异常
用OD载入程序:
=========================================================================
0040D042 >B8 00D04000 mov eax, 0040D000
//OD载入后,停在此处
0040D047 68 4C584000 push 0040584C
0040D04C 64:FF35 0000000>push dword ptr fs:
0040D053 64:8925 0000000>mov dword ptr fs:, esp
0040D05A 66:9C pushfw
0040D05C 60 pushad //PEtile的关键名
0040D05D 50 push eax
//单步F8到此,ESP=0013FF9A
//下断:hr 0013FF9A,Shift+F9运行
0040D05E 68 00004000 push 00400000
=============>>>>>>>>>>
0040D03D 66:9D popfw
//运行后,程序中断在此
//删除硬件断点后,单步F8
0040D03F 83C4 08 add esp, 8
0040D042 >- E9 8540FFFF jmp 004010CC //这就是程序的OEP了,呵呵
0040D047- E9 BBB16D7C jmp SHELL32.DragFinish
0040D04C- E9 C7B16D7C jmp SHELL32.DragQueryFileA
=============>>>>>>>>>>
004010CC 55 push ebp
//单步到此,就可以脱壳了
004010CD 8BEC mov ebp, esp
004010CF 83EC 44 sub esp, 44
004010D2 56 push esi
004010D3 FF15 E4634000 call dword ptr ; kernel32.GetCommandLineA
004010D9 8BF0 mov esi, eax
004010DB 8A00 mov al, byte ptr
004010DD 3C 22 cmp al, 22
004010DF 75 1B jnz short 004010FC
004010E1 56 push esi
004010E2 FF15 F4644000 call dword ptr ; notepad.0040D0BA
脱壳后,获取IAT时,会有许多无效指针,用等级一修复就可以了,^@^……
附加壳的记事本: 貌是很快,有空试一下 试验成功,确实很快! 试验基本成功,但还是没能脱掉readbook,加油中 我也将readbook的壳脱了,练习了一下,也是petitle的/:010 /:010 OD载入
F7单步
0040D042 >B8 00D04000 mov eax,111epad.0040D000
0040D047 68 4C584000 push 111epad.0040584C
0040D04C 64:FF35 00000000push dword ptr fs:
0040D053 64:8925 00000000mov dword ptr fs:,esp
0040D05A 66:9C pushfw
0040D05C 60 pushad
//停在这里ESP=0012FC4 右键数据窗口中跟随
ESP=0012FC4FFE00246 设置硬件访问断点 运行跳转至
0040D03F 83C4 08 add esp,8
删除断点,F7 2次跳转至
004010CC 55 push ebp//OD直接脱壳
004010CD 8BEC mov ebp,esp
保存完毕运行OK~~! 谢谢,ESP很简单的哈~
页:
[1]