首页
社区
课程
招聘
[求助]UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 脱壳后另类修复法
发表于: 2007-5-7 09:35 5207

[求助]UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 脱壳后另类修复法

2007-5-7 09:35
5207
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo的壳.
ollydbg载入。
012E5120 >  60              pushad
012E5121    BE 00901F01     mov     esi, 011F9000;//F8 运行到这里看ESP=0012FFA4
012E5126    8DBE 008020FF   lea     edi, dword ptr [esi+FF208000]
012E512C    57              push    edi
012E512D    83CD FF         or      ebp, FFFFFFFF
012E5130    EB 10           jmp     short 012E5142

F8一次,看ESP,下硬件断点hr 0012FFA4,F9运行,断在这里
012E52C7    8D4424 80       lea     eax, dword ptr [esp-80] ;//F9运行,断在这里
012E52CB    6A 00           push    0
012E52CD    39C4            cmp     esp, eax
012E52CF  ^ 75 FA           jnz     short 012E52CB
012E52D1    83EC 80         sub     esp, -80
012E52D4  - E9 D7E23BFF     jmp     006A35B0             ;//跳到eop。
012E52D9    0000            add     byte ptr [eax], al
012E52DB    0000            add     byte ptr [eax], al

第一个jmp就跳到EOP了。
006A35B0    55              push    ebp ;//入口点
006A35B1    8BEC            mov     ebp, esp
006A35B3    6A FF           push    -1
006A35B5    68 D0BC6C00     push    006CBCD0
006A35BA    68 D6376A00     push    006A37D6                         ; jmp 到 msvcrt._except_handler3
006A35BF    64:A1 00000000  mov     eax, dword ptr fs:[0]
006A35C5    50              push    eax
006A35C6    64:8925 0000000>mov     dword ptr fs:[0], esp
006A35CD    83EC 68         sub     esp, 68
006A35D0    53              push    ebx

DUMP出来,运行立刻自动关闭,不知道问题所在。
用ollydbg载入dump出来的程序。发现运行到这里出错。
006A3675    E8 86010000     call    <jmp.&msvcrt._initterm>;//出错。
006A367A    83C4 24         add     esp, 24
006A367D    A1 64B66B00     mov     eax, dword ptr [<&msvcrt._acmdln>
006A3682    8B30            mov     esi, dword ptr [eax]
006A3684    8975 8C         mov     dword ptr [ebp-74], esi
006A3687    803E 22         cmp     byte ptr [esi], 22

我是新手,不知道如何解决,就研究出另一种办法。
重新载入加壳程序,停到入口点.
006A35B0    55              push    ebp ;//入口点
006A35B1    8BEC            mov     ebp, esp
006A35B3    6A FF           push    -1
006A35B5    68 D0BC6C00     push    006CBCD0
006A35BA    68 D6376A00     push    006A37D6                         ; jmp 到 msvcrt._except_handler3

dump出来11.exe
ollydbg别关,运行importREC,选择被调试进程,写正确入口点2A35B0,输入表完全正确。
然后选择修理抓取文件11.exe,自动保存为11_.exe。

运行ok。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 216
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用PEID察看是vc++6.0
但我不解的是用ollydbg再次载入脱壳后的程序怎么还是提示可能加壳是否继续分析。

我用OLLYDBG打开脱壳后的程序,然后用16进制编辑器打开脱壳后的程序,在OLLY里复制16进制代码,都可以在编辑器里找到对应的代码,说明脱壳成功了吧!
2007-5-7 09:40
0
雪    币: 58782
活跃值: (21921)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
2007-5-7 10:31
0
游客
登录 | 注册 方可回帖
返回