首页
社区
课程
招聘
二哥,FLY,各位高手朋友请再来看看关于脱UltraProtect 1.x的问题
2004-12-6 13:49 5312

二哥,FLY,各位高手朋友请再来看看关于脱UltraProtect 1.x的问题

2004-12-6 13:49
5312
【程序下载地址】

附件:cm-p1.1.7.part1.rar 附件:cm-p1.1.7.part2.rar

二哥,FLY,各位高手朋友:

上次我发过关于这个软件的脱壳帖子,二哥和大家也给我回复了,但是可能连接的原因,大家没有下来这个软件。今天我把软件放上了,希望大家也能看看。

上次二哥给我一个提示就是用直接OD插件脱壳,然后用peid扫描看.
我有研究了几天可是还是不行,而且我发现了一个问题,55555555555就是这个问题让我死在那里的。
005A5CF1     AB                  stos dword ptr es:[edi]\\就是这个让我死的很难看。不知道怎么才能绕过他?

下面附上我上次发的我做的过程:(最近几天研究走的过程和前几天还是一样的,我怀疑我是钻到牛角尖里面了。希望大家把我拽出来)

【前言】

最近刚刚学习脱壳.看了很多资料现在尝试自己脱.可是刚刚开始就被入口点弄蒙了,希望大家帮忙看看

【脱壳内容】

首先PEID查壳,为UltraProtect 1.x -> RISCO Software Inc.

载入程序,IsDebugPresent hidden,异常设置不忽略INT3,其余全部忽略

00595000 c>  60                  pushad //进入停在这里  F9运行
00595001     E8 01000000         call catchmhx.00595007
00595006   - 7D 83               jge short catchmhx.00594F8B
00595008     04 24               add al,24
0059500A     06                  push es
0059500B     C3                  retn
0059500C     85C1                test ecx,eax
0059500E     43                  inc ebx
0059500F     50                  push eax
00595010     E8 01000000         call catchmhx.00595016
00595015   - EB 83               jmp short catchmhx.00594F9A
00595017     C40458              les eax,fword ptr ds:[eax+ebx*2]
0059501A     49                  dec ecx

005A6D80     90                  nop //停在这里
---------------------------------------------------
0012FF78   /0012FFE0  指针到下一个 SEH 记录
0012FF7C   |005A6D4D  SE 句柄 //转存跟随,在005A6D4D设断,SHEIFT + F9 ,继

续走
0012FF80   |0C7A6FEE
---------------------------------------------------
005A6D81     64:67:8F06 0000     pop dword ptr fs:[0]
005A6D87     83C4 04             add esp,4
005A6D8A     60                  pushad
005A6D8B     E8 00000000         call catchmhx.005A6D90
005A6D90     5E                  pop esi
005A6D91     83EE 06             sub esi,6
005A6D94     B9 5B000000         mov ecx,5B
005A6D99     29CE                sub esi,ecx
005A6D9B     BA 790C0A86         mov edx,860A0C79
005A6DA0     C1E9 02             shr ecx,2
005A6DA3     83E9 02             sub ecx,2
005A6DA6     83F9 00             cmp ecx,0

005A6D4D     8B4424 04           mov eax,dword ptr ss:[esp+4] //停在这

里,然后在005A6DAB设断,SHIFT +F9继续
005A6D51     8B4C24 0C           mov ecx,dword ptr ss:[esp+C]
005A6D55     FF81 B8000000       inc dword ptr ds:[ecx+B8]
005A6D5B     8B00                mov eax,dword ptr ds:[eax]
005A6D5D     2D 03000080         sub eax,80000003
005A6D62     75 12               jnz short catchmhx.005A6D76
005A6D64     90                  nop
005A6D65     90                  nop
005A6D66     90                  nop
005A6D67     90                  nop

005A6DAB     8B048E              mov eax,dword ptr ds:[esi+ecx*4] //断

在这里
005A6DAE     8B5C8E 04           mov ebx,dword ptr ds:[esi+ecx*4+4>
005A6DB2     03C3                add eax,ebx
005A6DB4     C1C0 1B             rol eax,1B
005A6DB7     33C2                xor eax,edx
005A6DB9     81EA 69D1B7F9       sub edx,F9B7D169
005A6DBF     89048E              mov dword ptr ds:[esi+ecx*4],eax
005A6DC2     49                  dec ecx
005A6DC3   ^ EB E1               jmp short catchmhx.005A6DA6
005A6DC5     61                  popad //个人认为出口在这里(不知道对不

对)
005A6DC6     61                  popad
005A6DC7     C3                  retn //F4到这里,跨地址到005AB67A ,F7继

续走

005AB67A     66:BF DB9C          mov di,9CDB //到这里,不知道这里是不是

入口,郁闷.DUMP出来后,程序不能修复
005AB67E     83C1 04             add ecx,4
005AB681     2B11                sub edx,dword ptr ds:[ecx]
005AB683     83E9 04             sub ecx,4
005AB686     EB 01               jmp short catchmhx.005AB689
005AB688     7A E9               jpe short catchmhx.005AB673
005AB68A     0300                add eax,dword ptr ds:[eax]
005AB68C     0000                add byte ptr ds:[eax],al
005AB68E     66:D3EF             shr di,cl
005AB691     8911                mov dword ptr ds:[ecx],edx
005AB693     EB 01               jmp short catchmhx.005AB696
005AB695   ^ 74 C1               je short catchmhx.005AB658
005AB697     D5 DC               aad 0DC
005AB699     81EE 7E84E08D       sub esi,8DE0847E
005AB69F     E8 01000000         call catchmhx.005AB6A5
005AB6A4   ^ 75 83               jnz short catchmhx.005AB629
005AB6A6     04 24               add al,24
005AB6A8     06                  push es
005AB6A9     C3                  retn
005AB6AA     E9 0A000000         jmp catchmhx.005AB6B9

希望大家看看我这个哪里有问题,能否给我一点指点!

按照二哥的UltraProtect 1.x之 Divx Avi Asf Wmv Wma Rm Rmvb V3.00 脱壳修

复  文章尝试

【脱壳内容】

首先PEID查壳,为UltraProtect 1.x -> RISCO Software Inc.

载入程序,IsDebugPresent hidden,异常设置不忽略内存异常,其余全部忽略

00595000 c>  60                  pushad //进入停在这里  F9运行
00595001     E8 01000000         call catchmhx.00595007
00595006   - 7D 83               jge short catchmhx.00594F8B
00595008     04 24               add al,24
0059500A     06                  push es
0059500B     C3                  retn
0059500C     85C1                test ecx,eax
0059500E     43                  inc ebx
0059500F     50                  push eax
00595010     E8 01000000         call catchmhx.00595016
00595015   - EB 83               jmp short catchmhx.00594F9A
00595017     C40458              les eax,fword ptr ds:[eax+ebx*2]
0059501A     49                  dec ecx

005A6B2E     CD 01               int 1 //唯一一次内存异常。
005A6B30     40                  inc eax
005A6B31     40                  inc eax
005A6B32     0BC0                or eax,eax
005A6B34     75 05               jnz short catchmhx.005A6B3B
005A6B36     90                  nop
005A6B37     90                  nop
005A6B38     90                  nop
005A6B39     90                  nop
005A6B3A     61                  popad
005A6B3B     33C0                xor eax,eax
005A6B3D     64:8F00             pop dword ptr fs:[eax]
005A6B40     58                  pop eax
005A6B41     60                  pushad

Alt+M打开内存镜像

内存镜像,项目 12
地址=00401000 //对准这里下F2访问断点,Shift+F9飞向光明之巅(二哥飞起来了

我却摔下来了,差点摔死)
大小=000E5000 (937984.)
Owner=videofix 00400000
区段=CODE
包含=code
类型=Imag 01001002
访问=R
初始访问=RWE

00401590    /EB 10               jmp short catchmhx.004015A2 //郁闷,我

到这里就停下来了,弄出来一个跳转到004015A2.
00401592    |66:623A             bound di,dword ptr ds:[edx]
00401595    |43                  inc ebx
00401596    |2B2B                sub ebp,dword ptr ds:[ebx]
00401598    |48                  dec eax
00401599    |4F                  dec edi
0040159A    |4F                  dec edi
0040159B    |4B                  dec ebx
0040159C    |90                  nop
0040159D   -|E9 98405200         jmp 0092563A
004015A2    \A1 8B405200         mov eax,dword ptr ds:[52408B]
004015A7     C1E0 02             shl eax,2
004015AA     A3 8F405200         mov dword ptr ds:[52408F],eax
004015AF     52                  push edx
004015B0     6A 00               push 0

我跳到这里就搞不明白了,为什么二哥到了光明之巅,我却掉到了九州寒池,希望大

家能给我一点指点.我会努力学习的!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞1
打赏
分享
最新回复 (11)
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-12-6 15:13
2
0
上面已经到OEP了
00401590
修复Code Replace/SDK
雪    币: 229
活跃值: (143)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
yeyu0808 1 2004-12-6 17:22
3
0
OEP是对的,可能你的IAT得到的不完全吧
BC的东西要人为加大SIZE,才能得到完整的IAT。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Benki 2004-12-6 20:02
4
0
嗯,加油,慢慢领悟才能得出破解之道
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
David 20 2004-12-7 16:21
5
0
首先到达光明之巅,脱壳。

00401590    /EB 10               jmp short catchmhx.004015A2 Bc++ 1.99入口特征,注意多修炼。
00401592    |66:623A             bound di,dword ptr ds:[edx]
00401595    |43                  inc ebx
00401596    |2B2B                sub ebp,dword ptr ds:[ebx]
00401598    |48                  dec eax
00401599    |4F                  dec edi
0040159A    |4F                  dec edi
0040159B    |4B                  dec ebx
0040159C    |90                  nop
0040159D   -|E9 98405200         jmp 0092563A
004015A2    \A1 8B405200         mov eax,dword ptr ds:[52408B]
004015A7     C1E0 02             shl eax,2
004015AA     A3 8F405200         mov dword ptr ds:[52408F],eax
004015AF     52                  push edx

关闭OD

单独运行原程序,运行IR

Oep填入 1590

获取到

Rva 16E2D0  Size 1CC 这个值太小。

可以具体看看IAT多大,一般可以用懒人的大面积剪刀法,取值1000

点获取信息按钮

有310个垃圾指针,其中只有一个MessageBox是有效的,没必要手工找,用跟踪等级3提示修复1个,就是MessageBox,其余的不用看就剪刀剪掉,指针全部修复,修复脱壳文件,正常运行,如果直接剪,退出就崩溃了,因为MessageBox没有修复,修复后就有退出友好提示了,正常运行。
雪    币: 303
活跃值: (461)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liuyilin 2004-12-7 16:39
6
0
懒人的大面积剪刀法,取值1000
好!!!懒!!!!呀:D
雪    币: 221
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
q3q3 2004-12-7 17:15
7
0
不知道就蒙一个:D :D :D
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
pendan2001 4 2004-12-7 21:58
8
0
学习先!!!!
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
Lenus 3 2004-12-7 22:47
9
0
最初由 liuyilin 发布
懒人的大面积剪刀法,取值1000
好!!!懒!!!!呀:D

除非后面全是0,不然这种办法得到的是一大串垃圾指针。:D
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
David 20 2004-12-7 22:50
10
0
最初由 Lenus 发布

除非后面全是0,不然这种办法得到的是一大串垃圾指针。:D


:D 胸有成竹
雪    币: 323
活跃值: (579)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
springkang[DFCG 11 2004-12-8 09:34
11
0
在XP下修复不了!
在2K下用IMPR1.42修复成功!
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
redexh 2004-12-13 18:52
12
0
各位高手,请教!!!!!!!!!
我也用这个例子试了一下,为啥过程不一样,断在了:
005A5CF1       AB                stos dword ptr es:[edi]
然后用shift f9,就退出了
游客
登录 | 注册 方可回帖
返回