手动脱壳 程序跑飞
看了一篇教程尝试手动脱壳一个小软件crackme.UPX$hit-0.0.1.exeOD载入后,按4下F8,向上跳,小循环,鼠标点住下一行按F4 ,继续几下F8,向上跳,小循环,鼠标点住下一行按F4,
004095E8 >94 xchg eax,esp
004095E9 BC D1954000 mov esp,crackme_.004095D1
004095EE B9 17000000 mov ecx,17
004095F3 80340C DB xor byte ptr ss:,0DB
004095F7^ E2 FA loopd short crackme_.004095F3
004095F9 94 xchg eax,esp
004095FA 90 nop
004095FB 90 nop
004095FC 90 nop
004095FD FFE0 jmp eax
在004095FD下一行004095FF 按F4, 程序运行起来,就是俗称的跑飞,尝试将调试设置改为忽略一些错误,还是跑飞,请高手指点
[ 本帖最后由 6481816 于 2009-7-21 21:56 编辑 ] 很简单的壳,基本上ESP定律就可以搞定,不过我也是菜鸟,刚刚学没多久,希望你能看得明白~~~~~~~~~~
004095E8 >4F dec edi F8单步走
004095E9 BC D1954000 mov esp, crackme_.004095D1
004095EE B9 17000000 mov ecx, 17
004095F3 80340C DB xor byte ptr ss:, 0DB
004095F7^ E2 FA loopd short crackme_.004095F3 到这里
004095F9 94 xchg eax, esp F4到这里然后机继续F8
004095FA 90 nop
004095FB 90 nop
004095FC 90 nop
004095FD FFE0 jmp near eax
F8来到
004095D1 B8 50814000 mov eax, crackme_.00408150 继续F8
004095D6 B9 54010000 mov ecx, 154
004095DB 803408 08 xor byte ptr ds:, 8
004095DF^ E2 FA loopd short crackme_.004095DB 到这里
004095E1 FFE0 jmp near eax F4到这里后继续F8
到
00408150 60 pushad F8
00408151 BE 00604000 mov esi, crackme_.00406000 这里用ESP定律 简单点就直接在下面的命令窗打上HR ESP 然后F9
00408156 8DBE 00B0FFFF lea edi, dword ptr ds:
0040815C 57 push edi
F9后来到
0040829F- E9 1C90FFFF jmp crackme_.004012C0 然后F8就直接到达OEP了
004082A4 0800 or byte ptr ds:, al
004082A6 0000 add byte ptr ds:, al
004082A8 0000 add byte ptr ds:, al
OEP 地址 004012C0 搞定收工
其实还有更简单的方法,只是有点**难得理解 简单点说就是单步走,但是基本上都是用下硬件断点完成的办法,也有全部只用F4也可以完成的
[ 本帖最后由 neptunesoft 于 2009-7-22 02:10 编辑 ] 我来学习一下 注意下004095FD FFE0 jmp eax 学习了……
页:
[1]