首页
社区
课程
招聘
[求助]这个UPX按ESP定律脱下来不行啊~
发表于: 2011-5-13 11:15 7918

[求助]这个UPX按ESP定律脱下来不行啊~

2011-5-13 11:15
7918
查壳看是UPX的 看着很简单的
貌似是个游戏脚本

004C1350 >  60              pushad
004C1351    BE 00804700     mov esi,A.00478000
004C1356    8DBE 0090F8FF   lea edi,dword ptr ds:[esi+FFF89000]
004C135C    57              push edi
004C135D    EB 0B           jmp short A.004C136A
004C135F    90              nop
004C1360    8A06            mov al,byte ptr ds:[esi]
004C1362    46              inc esi
004C1363    8807            mov byte ptr ds:[edi],al
004C1365    47              inc edi
004C1366    01DB            add ebx,ebx
004C1368    75 07           jnz short A.004C1371
004C136A    8B1E            mov ebx,dword ptr ds:[esi]
004C136C    83EE FC         sub esi,-4
004C136F    11DB            adc ebx,ebx
004C1371  ^ 72 ED           jb short A.004C1360
果断ESP定律


004C14E0    53              push ebx
004C14E1    57              push edi
004C14E2    FFD5            call ebp
004C14E4    58              pop eax
004C14E5    61              popad
004C14E6    8D4424 80       lea eax,dword ptr ss:[esp-80]
004C14EA    6A 00           push 0
004C14EC    39C4            cmp esp,eax
004C14EE  ^ 75 FA           jnz short A.004C14EA
004C14F0    83EC 80         sub esp,-80
004C14F3  - E9 F9FDF3FF     jmp A.004012F1        -----进去?
004C14F8    0000            add byte ptr ds:[eax],al
004C14FA    0000            add byte ptr ds:[eax],al
004C14FC    0000            add byte ptr ds:[eax],al
004C14FE    0000            add byte ptr ds:[eax],al
004C1500    0000            add byte ptr ds:[eax],al
004C1502    0000            add byte ptr ds:[eax],al

来到这里
004012F1    52              push edx                                 ; A.<ModuleEntryPoint>///(注释上写着OEP)
004012F2    53              push ebx
004012F3    33D2            xor edx,edx
004012F5    57              push edi
004012F6    50              push eax
004012F7    56              push esi
004012F8    51              push ecx
004012F9  ^ 0F84 61FEFFFF   je A.00401160
004012FF    B2 D5           mov dl,0D5
00401301    3F              aas
00401302    B3 F2           mov bl,0F2
00401304    51              push ecx
00401305    14 98           adc al,98
00401307    50              push eax
00401308    4F              dec edi
00401309    0E              push cs
0040130A    0A1B            or bl,byte ptr ds:[ebx]
0040130C    C7              ???                                      ; 未知命令
0040130D    59              pop ecx
0040130E    52              push edx
0040130F    0AE4            or ah,ah
00401311    8297 37AA8CA5 D>adc byte ptr ds:[edi+A58CAA37],-30

看着<ModuleEntryPoint>(注释上写着OEP)脱之。。一看 还是UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
我是新手呀 不会弄啊 就试试了peid通用脱壳 竟然脱了  脱出个c++的 不过感觉还是有问题
00403C81 >  55              push ebp
00403C82    8BEC            mov ebp,esp
00403C84    6A FF           push -1
00403C86    68 F0724000     push A5_exe_u.004072F0
00403C8B    68 F4504000     push A5_exe_u.004050F4
00403C90    64:A1 00000000  mov eax,dword ptr fs:[0]
00403C96    50              push eax
00403C97    64:8925 0000000>mov dword ptr fs:[0],esp
00403C9E    83EC 58         sub esp,58
00403CA1    53              push ebx
00403CA2    56              push esi
00403CA3    57              push edi
00403CA4    8965 E8         mov dword ptr ss:[ebp-18],esp

通过Overlay附加数据处理 加了附加数据后 还是运行不起 手脱就直接无法修复 或者是我不会修复
求教,求教

源文件下载: A5.rar

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
没人?
2011-5-13 14:19
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那个OEP 用importREC弄 没有找到有用的信息 为何?
2011-5-13 15:22
0
雪    币: 248
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
这个是已经脱完壳,没破解的,可以运行
程序脱壳后还有校验
上传的附件:
2011-5-13 16:46
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
qqjack老师  我是新手 谢谢您啊!
另外  请问 可以具体跟我说说吗?
2011-5-13 16:51
0
雪    币: 248
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
这个文件脱了壳以后还是有反调试功能的,我试了几个OD都不能正确执行
我是这么想的既然界面都还没有显示就退出了,也没有报错,那肯定是脱壳成功了
下断下bp ExitProcess

观察堆栈中,可以发现两个字符串,而且它们是在ExitProcess调用之前出现的
0012FA6C   0012FA78
0012FA70   100296CD  /CALL to ExitProcess from krnln.100296C7
0012FA74   00000000  \ExitCode = 0
0012FA78  /0012FAB8
0012FA7C  |0046D4B0  RETURN to A5.0046D4B0 from A5.004A5770
0012FA80  |00000000
0012FA84  |00010001
0012FA88  |00165784
0012FA8C  |0019A368  ASCII "d91f4bd25c3a7616d2af73465cbc18bf"
0012FA90  |01710020
0012FA94  |0019B468
0012FA98  |001997B8
0012FA9C  |0019B4E0
0012FAA0  |00000000
0012FAA4  |00000000
0012FAA8  |0019A368  ASCII "d91f4bd25c3a7616d2af73465cbc18bf"
0012FAAC  |0019A290  ASCII "2cb2d94d5db46e30d53de869884d8015"
0012FAB0  |000004CC
0012FAB4  |0000014C

假设这是校验的位置,那么便是比较这两个字符串了,于是追踪字符串,可以发现它们之间的确是出现比较,于是把关键位置的跳转改一下就可以啦
2011-5-13 17:07
0
雪    币: 248
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
还有,我也是新手,呵呵……
相互学习;
2011-5-13 17:08
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢啊 新手就这么猛 我按照你的思路来试试
2011-5-13 17:14
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
qqjack 兄弟  你脱壳好了的 我发现下bp ExitProcess断点 直接F9 能够正常运行了 何解?
2011-5-13 18:19
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
既然有人脱了,我就不脱了,我也懒得破解易语言的程序,分享一个工具给LZ吧

灰色按钮克星.rar
上传的附件:
2011-5-13 18:39
0
雪    币: 248
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
肯定啊,因为根本不会调用ExitProcess函数了,怎么会断下了呢?
2011-5-13 18:39
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
[QUOTE=我就是wo;958440]既然有人脱了,我就不脱了,我也懒得破解易语言的程序,分享一个工具给LZ吧

灰色按钮克星.rar[/QUOTE]

这个东西不错 谢谢哥们啊!
2011-5-13 18:47
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
F9直接retn了 怎么我一不小心bp ExitProcess是没断下来 但是F9没retn 运行起来了 。。。
2011-5-13 18:53
0
游客
登录 | 注册 方可回帖
返回
//