我们来脱MYCCL得壳子。首先我们查壳
PEID 查壳 结果:UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
然后OD载入程序。我们看到
00553830 > 60 PUSHAD
00553831 BE 00C04D00 MOV ESI,MyCCL.004DC000 F8运行到此处
00553836 8DBE 0050F2FF LEA EDI,DWORD PTR DS:[ESI+FFF25000]
0055383C 57 PUSH EDI
0055383D 83CD FF OR EBP,FFFFFFFF
00553840 EB 10 JMP SHORT MyCCL.00553852
然后我们看寄存器:
EAX 00000000
ECX 0012FFB0
EDX 7C92E4F4 ntdll.KiFastSystemCallRet
EBX 7FFDA000
ESP 0012FFC4 这里就是要用的了
EBP 0012FFF0
ESI FFFFFFFF
EDI 7C809AD0 kernel32.7C809AD0
EIP 00553830 MyCCL.<模块入口点>
我们利用的是ESP定律 。ESP定律就好比说一个下水管道一头进水一头就是出水了。如果不出的话可向而知可能发生溢出了。。。呵呵。比方啊比方。就是对应的
ESP 0012FFC4点击右键 点击数据窗口跟随 然后我们在看数据窗口啊
0012FFC4
67 70 81 7C D0 9A 80 7C FF FF FF FF 00 A0 FD 7F gp亅袣€|.狚
0012FFD4 ED C6 54 80 C8 FF 12 00 20 80 80 82 FF FF FF FF 砥T€?. €€?
0012FFE4 C0 9A 83 7C 70 70 81 7C 00 00 00 00 00 00 00 00 罋億pp亅........
0012FFF4 00 00 00 00 30 38 55 00 00 00 00 00 ....08U.....
主要是上面红色的哦。你看ESP是不是跟数据窗口第一行对应啊。然后第一组那就是我们的字了。我们算中第一个组67 70 81 7C 然后右击 断点--硬件访问-- 字 这样拿我们就在我们所选的那个67 70 81 7C下了一个断点了哦。 也就是说咱们在那个入栈的对应地方出栈下了断点了。
然后我们F9运行 我们就到了出栈那里自动的停了下来也就是说硬件断点生效了。我们会看到到了这里:
00553993 - E9 946AF7FF JMP MyCCL.004CA42C
00553998 B0 39 MOV AL,39
0055399A 55 PUSH EBP
0055399B 00C0 ADD AL,AL
然后我们在F8向下走就走出了我们的迷宫壳子了。出了迷宫就看到了大草原和花姑娘了哈哈。F8会到达:
004CA42C 55 PUSH EBP OEP了哦
004CA42D 8BEC MOV EBP,ESP
004CA42F 83C4 F0 ADD ESP,-10
004CA432 53 PUSH EBX
然后我们用OD带的ollydump脱我们的壳子了 脱完了之后PEID查看 居然是 Borland Delphi 6.0 - 7.0
运行下子哈。OK成功
希望再次给我个邀请。上次我那个好hackerzues的邀请过期了。没注册上。现在换个号用了。谢谢看雪。嘻嘻
修正了。谢谢6楼。哈哈。太粗心了
[课程]FART 脱壳王!加量不加价!FART作者讲授!