6481816 发表于 2009-7-21 16:37:24

手动脱壳 程序跑飞

看了一篇教程尝试手动脱壳一个小软件crackme.UPX$hit-0.0.1.exe
OD载入后,按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 编辑 ]

neptunesoft 发表于 2009-7-22 01:53:43

很简单的壳,基本上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 编辑 ]

lsb2002 发表于 2009-7-22 08:10:53

我来学习一下

rxzcums 发表于 2009-7-22 08:28:28

注意下004095FD    FFE0            jmp eax

maoli0366 发表于 2009-7-22 22:07:35

学习了……

suno 发表于 2009-8-1 19:21:01

页: [1]
查看完整版本: 手动脱壳 程序跑飞