小文的秘密花园吧 关注:9贴子:193
  • 1回复贴,共1

手动脱ASPACK壳

只看楼主收藏回复

破解小手


IP属地:广东1楼2008-02-25 15:46回复
    用PEID查了下,显示ASPack 2.12 -> Alexey Solodovnikov好的开始脱壳,用OD载入,开始哪个提示一定点击否 
    PS:其实对于ASPACK有一个非常快,非常简单的手动脱壳方法,先卖个关子 
    载入后, 


    0040D001 > 60 pushad 
    0040D002 E8 03000000 call 0040D00A 
    0040D007 - E9 EB045D45 jmp 459DD4F7 
    0040D00C 55 push ebp 


    开头有CALL跟入,对于压缩壳,其实用ESP定律更简单些,但是为了练手,还是单步跟踪,尤其是这种简单的ASPACK壳,直接F8单步跟踪,开头遇到CALL用F7跟入,遇到红色的向上跳的就F4过去,我们来一步一步走,遇到那第二个CALL,F7来到 


    0040D00A 5D pop ebp ; ASPack_2.0040D007 
    0040D00B 45 inc ebp 
    0040D00C 55 push ebp 
    0040D00D C3 retn 
    0040D00E E8 01000000 call 0040D014 
    0040D013 EB 5D jmp short 0040D072 
    继续跟进那个CALL,来到 
    0040D014 5D pop ebp ; ASPack_2.0040D013 
    0040D015 BB EDFFFFFF mov ebx, -13 
    0040D01A 03DD add ebx, ebp 
    0040D01C 81EB 00D00000 sub ebx, 0D000 
    0040D022 83BD 22040000 00 cmp dword ptr [ebp+422], 0 
    0040D029 899D 22040000 mov dword ptr [ebp+422], ebx 
    0040D02F 0F85 65030000 jnz 0040D39A 
    0040D035 8D85 2E040000 lea eax, dword ptr [ebp+42E] 


    现在我们就一步一步向下走就是了,经过跋山涉水的跟踪,终于来到: 


    0040D3BA 68 CC104000 push 004010CC 
    0040D3BF C3 retn 
    0040D3C0 8B85 26040000 mov eax, dword ptr [ebp+426] 
    0040D3C6 8D8D 3B040000 lea ecx, dword ptr [ebp+43B] 
    0040D3CC 51 push ecx 
    0040D3CD 50 push eax 


    看到那个RETN了麽F8过去看看 


    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.GetCommand>; [GetCommandLineA 

    看到了麽?这就是脱了壳的程序了,我们右键,”ollydunp脱壳调试程序“ 
    然后点DUMP保存即可!! 
    现在我们用PEID查一下那个保存的程序Microsoft Visual C++ 6.0 SPx Method 1 
    脱壳成功,都不用IMPREC还原输入表了,不错,嘎嘎


    IP属地:广东2楼2008-02-25 15:47
    回复