首页
社区
课程
招聘
[求助]UPX脱壳后运行出错,已经附加数据
发表于: 2012-6-12 16:40 4888

[求助]UPX脱壳后运行出错,已经附加数据

2012-6-12 16:40
4888
操作过程:
1. peid 查壳: UPX v0.89.6 - v1.02 / v1.05 -v1.24 -> Markus & Laszlo [overlay - additional [Overlay] *

2. OD载入,利用ESP法查找OEP

004B6C2F    8D4424 80       lea     eax, dword ptr [esp-80]
004B6C33    6A 00               push    0
004B6C35    39C4                cmp     esp, eax
004B6C37  ^ 75 FA              jnz     short 004B6C33
004B6C39    83EC 80           sub     esp, -80
004B6C3C  - E9 CFF6F5FF     jmp     00416310     //这里应该就是跳到OEP了
004B6C41    0000                add     byte ptr [eax], al
004B6C43    0000                add     byte ptr [eax], al

然后直接跳转,跳转到 00416310

00416310    E8 A7C00000     call    004223BC      //这里脱壳附加数据后,运行弹框,
                                                                                然后内存出错。
00416315  ^ E9 79FEFFFF     jmp     00416193
0041631A    CC              int3
0041631B    CC              int3
0041631C    CC              int3
0041631D    CC              int3
0041631E    CC              int3
0041631F    CC              int3
00416320    55              push    ebp   //我感觉这里像OEP一点,不过附加数据
                                                             运行直接出错
00416321    8BEC            mov     ebp, esp
00416323    57              push    edi
00416324    56              push    esi
00416325    8B75 0C         mov     esi, dword ptr [ebp+C]
00416328    8B4D 10         mov     ecx, dword ptr [ebp+10]
0041632B    8B7D 08         mov     edi, dword ptr [ebp+8]
0041632E    8BC1            mov     eax, ecx

3:我用W32DASM查看最后区块
   Object01: UPX0     RVA: 00001000 Offset: 00000400 Size: 00000000 Flags: 60000080
   Object02: UPX1     RVA: 00075000 Offset: 00000400 Size: 00041E00 Flags: E0000040
   Object03: .rsrc    RVA: 000B7000 Offset: 00042200 Size: 00006800 Flags: C0000040

如果没错的话,那附加数据应该是 42200+6800 = 48A00

附加数据后运行正常弹出第一个框。点击确定后就出错了。不知道是哪里的问题。是因为脱的不干净还是附加数据有问题?请指教。谢谢!

附件里面有原文件和我脱壳并附加数据后的两个文件!
petsprite.7z

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
正确的解决方案: upx -d PetSprite.exe
2012-6-12 18:15
0
雪    币: 1921
活跃值: (1689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我试过这个,但是脱不下来,不知道是不是版本的问题。我再试一下吧。
2012-6-12 20:06
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
4
我用的是v3.3版的。
2012-6-12 20:13
0
雪    币: 1921
活跃值: (1689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用upx shell成功脱下来。而且毫无问题。
2012-6-12 20:42
0
雪    币: 1921
活跃值: (1689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你用3.3能脱下来?
2012-6-12 20:42
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
7
是的,直接upx -d
2012-6-12 21:52
0
雪    币: 1921
活跃值: (1689)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
壳现在是脱下来了。可是不大知道该怎么去跳过他的验证。大哥能不能给我看看?
2012-6-12 23:34
0
游客
登录 | 注册 方可回帖
返回
//