【文章标题】: PECompact2主程序脱壳
【文章作者】: TSobo
【作者邮箱】: tsobo8@gamil.com
【软件名称】: pec2gui.exe
【下载地址】: 自己搜索下载
【使用工具】: OD,LorDPE,PEID,IMPortREC
【软件介绍】: 一加壳工具
【作者声明】: 凑热闹~^_^
--------------------------------------------------------------------------------
【详细过程】
一直潜水在看雪学习牛人文章,今天冒个泡。呵呵。对脱壳不是很懂,菜鸟一个,今天整理电脑发现上还有一加壳工具,
一看PECompact,版本2.6.7.25,新版本手上没有。大牛们就别看了。呵呵、
Let's go~!
PEID查PECompact 2.x -> Jeremy Collake,
OD载入,
0040DBAB p> B8 6CE94300 mov eax,pec2gui.0043E96C
0040DBB0 50 push eax
0040DBB1 64:FF35 00000000 push dword ptr fs:[0] //命令行hr esp
0040DBB8 64:8925 00000000 mov dword ptr fs:[0],esp
0040DBBF 33C0 xor eax,eax
0040DBC1 8908 mov dword ptr ds:[eax],ecx
F9运行,到达系统的ntdll.dll中
7C94A4EC 3B45 F8 cmp eax,dword ptr ss:[ebp-8]
7C94A4EF 72 09 jb short ntdll.7C94A4FA
7C94A4F1 3B45 F4 cmp eax,dword ptr ss:[ebp-C]
7C94A4F4 ^ 0F82 DE0DFFFF jb ntdll.7C93B2D8
7C94A4FA 50 push eax
7C94A4FB E8 67000000 call ntdll.7C94A567
7C94A500 84C0 test al,al
7C94A502 ^ 0F84 D00DFFFF je ntdll.7C93B2D8
7C94A508 F605 FAE3997C 80 test byte ptr ds:[7C99E3FA],80
7C94A50F 0F85 245C0200 jnz ntdll.7C970139
7C94A515 FF73 04 push dword ptr ds:[ebx+4]
再次F9
7C94A515 FF73 04 push dword ptr ds:[ebx+4]
7C94A518 8D45 EC lea eax,dword ptr ss:[ebp-14]
7C94A51B 50 push eax
7C94A51C FF75 0C push dword ptr ss:[ebp+C]
7C94A51F 53 push ebx
7C94A520 56 push esi
7C94A521 E8 218DFDFF call ntdll.7C923247
7C94A526 F605 FAE3997C 80 test byte ptr ds:[7C99E3FA],80
仍然在系统的一个dll内
F9~~
0043E99F 53 push ebx
0043E9A0 51 push ecx
0043E9A1 57 push edi
0043E9A2 56 push esi
0043E9A3 52 push edx
0043E9A4 8D98 57120010 lea ebx,dword ptr ds:[eax+1000>
0043E9AA 8B53 18 mov edx,dword ptr ds:[ebx+18]
0043E9AD 52 push edx
0043E9AE 8BE8 mov ebp,eax
0043E9B0 6A 40 push 40
0043E9B2 68 00100000 push 1000
0043E9B7 FF73 04 push dword ptr ds:[ebx+4]
0043E9BA 6A 00 push 0
这时候到达一个程序的领空,应该到壳的尾段了。再次F9
0043EA2E - FFE0 jmp eax ; pec2gui.<ModuleEntryPoint>//跳到OEP
0043EA30 AB stos dword ptr es:[edi]
0043EA31 DB40 00 fild dword ptr ds:[eax]
0043EA34 0000 add byte ptr ds:[eax],al
0043EA36 0000 add byte ptr ds:[eax],al
0043EA38 BF 745E4800 mov edi,485E74
0043EA3D 0000 add byte ptr ds:[eax],al
0043EA3F 0002 add byte ptr ds:[edx],al
0043EA41 0000 add byte ptr ds:[eax],al
jmp eax就是跳向OEP,此时删除硬件断点,F8单步到达OEP。
0040DBAB p> E8 3A5F0000 call pec2gui.00413AEA // OEP
0040DBB0 ^ E9 A4FEFFFF jmp pec2gui.0040DA59
0040DBB5 6A 0C push 0C
0040DBB7 68 80184300 push pec2gui.00431880
0040DBBC E8 3F010000 call pec2gui.0040DD00
0040DBC1 8B75 08 mov esi,dword ptr ss:[ebp+8]
0040DBC4 85F6 test esi,esi
0040DBC6 74 75 je short pec2gui.0040DC3D
0040DBC8 833D E89B4300 03 cmp dword ptr ds:[439BE8],3
0040DBCF 75 43 jnz short pec2gui.0040DC14
0040DBD1 6A 04 push 4
0040DBD3 E8 24610000 call pec2gui.00413CFC
0040DBD8 59 pop ecx
0040DBD9 8365 FC 00 and dword ptr ss:[ebp-4],0
0040DBDD 56 push esi
0040DBDE E8 4C610000 call pec2gui.00413D2F
0040DBE3 59 pop ecx
0040DBE4 8945 E4 mov dword ptr ss:[ebp-1C],eax
0040DBE7 85C0 test eax,eax
0040DBE9 74 09 je short pec2gui.0040DBF4
打开LorDPE,修正镜像大小,dumpfull。IMPortREC修复之。保存,运行可以的。
:没有什么好方法脱,只有esp定律,::confused
希望和大家一起交流
如有错误欢迎指正,学习中...
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2009年11月09日 17:05:50
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!