首页
社区
课程
招聘
Armadillo V4.40主程序脱壳
2005-11-5 01:40 49108

Armadillo V4.40主程序脱壳

fly 活跃值
85
2005-11-5 01:40
49108
收藏
点赞7
打赏
分享
最新回复 (64)
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-11-6 00:40
26
0
CC修复代码需要针对不同程序修改
先搞明白此教程中目标程序的修复代码
自然就明白其他程序了
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
朽木 2005-11-6 00:41
27
0
顶,狠人呀.哎.....
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
levowing 2005-11-6 00:52
28
0
牛。。。。。。。。。。。。。。。。
雪    币: 674
活跃值: (1684)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
daxia200N 6 2005-11-6 10:30
29
0
my god,方法复杂,用si 和od 联手可能简单些.
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
heXer 3 2005-11-6 11:06
30
0
有几处是有对应关系的,需要注意,不同版本的arm可能不一样:

004AB089     8D95 34ECFFFF      lea edx,dword ptr ss:[ebp-13CC]                //eip
004AB08F     52                 push edx
004AB090     E8 FB5EFDFF        call Armadill.00480F90
...
004AB212     8B8D 3CECFFFF      mov ecx,dword ptr ss:[ebp-13C4]                //eflags
004AB218     81E1 D70F0000      and ecx,0FD7
004AB21E     898D 6CEBFFFF      mov dword ptr ss:[ebp-1494],ecx
004AB224     8B95 5CEBFFFF      mov edx,dword ptr ss:[ebp-14A4]
004AB22A     81E2 000000FF      and edx,FF000000
004AB230     C1EA 18            shr edx,18
004AB233     8995 60EBFFFF      mov dword ptr ss:[ebp-14A0],edx
004AB239     8B85 5CEBFFFF      mov eax,dword ptr ss:[ebp-14A4]
004AB23F     25 FFFFFF00        and eax,0FFFFFF
004AB244     8985 64EBFFFF      mov dword ptr ss:[ebp-149C],eax
004AB24A     8B8D 28ECFFFF      mov ecx,dword ptr ss:[ebp-13D8]                //ecx
004AB250     51                 push ecx
004AB251     8B95 6CEBFFFF      mov edx,dword ptr ss:[ebp-1494]
004AB257     52                 push edx

0044A0AD     89B5 34ECFFFF      mov dword ptr ss:[ebp-13CC],esi                //eip
0044A0B3     60                 pushad
0044A0B4     E8 87010000        call 0044A240
0044A0B9     61                 popad
0044A0BA     75 FE              jnz short 0044A0BA
0044A0BC     60                 pushad
0044A0BD     8DB3 00030000      lea esi,dword ptr ds:[ebx+300]
0044A0C3     33C9               xor ecx,ecx
0044A0C5     8DBB 80040000      lea edi,dword ptr ds:[ebx+480]
0044A0CB     8B06               mov eax,dword ptr ds:[esi]
0044A0CD     8985 3CECFFFF      mov dword ptr ss:[ebp-13C4],eax                //eflags
0044A0D3     8B46 04            mov eax,dword ptr ds:[esi+4]
0044A0D6     8985 28ECFFFF      mov dword ptr ss:[ebp-13D8],eax                //ecx

这样的脱壳方法最初目的只是为了在win2000下实现脱壳,很多其他教程都只能在XP下完成,我的机器是win2000,没办法模仿他们的方法才不得已而为之
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
闪电狼 2005-11-6 11:07
31
0
慢慢消化            
雪    币: 50
活跃值: (145)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
zhaoocn 7 2005-11-6 12:46
32
0
看不懂,慢慢学
雪    币: 299
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
clide2000 7 2005-11-7 07:50
33
0
只有顶了,没有说了
雪    币: 107
活跃值: (55)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xy2000 1 2005-11-7 09:05
34
0
我看什么软件碰到你们两个BT,都会给脱的赤裸裸的,你们太坏了,哈哈
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
k99992002 2005-11-7 19:21
35
0
最初由 xy2000 发布
我看什么软件碰到你们两个BT,都会给脱的赤裸裸的,你们太坏了,哈哈

呵呵,是啊是啊!
雪    币: 201
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuguan 2005-12-27 20:03
36
0
你简直太伟大了!竟然能把Armadillo V4.40脱光!这个软件是非常棘手的,由此可见,你差不多应该是哪个汉化Ollydbgd的那个FLY吧?请原谅我的无知。
雪    币: 513
活跃值: (2228)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
loveboom 53 2005-12-27 20:53
37
0
以前听说可以直接不用imprec来修复arm的输入表不知道for 4.x可不可??
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2005-12-27 22:45
38
0
To yuguan:
那个版本的OllyDBG是聆风听雨汉化的
To loveboom:
慢慢修应该可以,不过没必要
雪    币: 136
活跃值: (399)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
yzslly 4 2005-12-31 09:32
39
0
我在用脚本是出现提示:设置字节在地址***到CC中(命令代码INT3已用作断点)为何会这样。
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tkggigeg 2006-5-12 15:11
40
0
呵呵~有个专用脱壳就好
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
李文 2006-7-3 22:17
41
0
文中的如下内容:
“确定”后F12,OllyDBG暂停在EP死循环处

004CD000     EB FE              jmp short 004CD000
//暂停

还原EP Code的EBFE为60E8,Resume脚本  ★

没搞明白,应该怎么操作?
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2006-7-3 22:31
42
0
兄弟,你是问F12还是还原EP Code还是Resume脚本
这些基本的调试知识自己不去啃书掌握转化为自己的技能是很难前进的

戒骄戒躁循序渐进
雪    币: 220
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
runthinker 2006-8-22 21:41
43
0
请问一下:
还原EP Code的EBFE为60E8,Resume脚本  ★
RESUME时,会出现在这个线程是挂起状态,恢复也不行。。。

EP Code的代码已经还原(为55xxxxxx)
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2006-8-22 22:04
44
0
你需要新开一个OllyDBG去Attach
雪    币: 220
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
runthinker 2006-8-22 23:15
45
0
fly正好在,别跑。。。:)
这个挂起的问题已经解决
可能是调试时有未结束的进程造成的。

现在又有个问题:
Armadillo.fiXed.IT.osc已经成功执行完成
然后F8执行到CALL 解密
看堆栈:
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------

00129500   00401000   地址
00129504   00049001   大小  → 修改为:49000   ★
其实就是解密PE header下面区段的代码
但是此区段的Size为49000,这里多了1,将导致其下区段被加密,所以我们要修改这里为49000
在数据窗口里定位00401000,F8步过上面CALL时会发现00401000段的代码已经全部解密出来了!
---------------------------------
我看到的第一个是00401000,但第二个不是49001,而是另外的值,比401000这个区段的大小差了1FF,如果不改执行下去会在:
-------------------------------
00F9D366     83C4 0C            add esp,0C
00F9D369     8B85 FCD7FFFF      mov eax,dword ptr ss:[ebp-2804]
00F9D36F     8BB5 0CD8FFFF      mov esi,dword ptr ss:[ebp-27F4]
00F9D375     2B70 34            sub esi,dword ptr ds:[eax+34]
00F9D378     E8 542E0000        call 00FA01D1----这里会抛异常
--------------------------------
注:调试设置里已经按要求设置了忽略异常。
我调试的程序经检测是:
★ 目标为Armadillo保护
Version 4.40.0250 (Custom Build)
保护系统级别为 (专业版)
◆所用到的保护模式有◆
屏蔽调试器
双进程模式
使用输入表乱续模式
使用防内存补丁保护模式
【备份密钥设置】
固定的备份密钥
【程序压缩设置】
最好/最慢地压缩方式
【其它保护设置】
雪    币: 220
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
runthinker 2006-8-23 02:17
46
0
上述问题应当已经解决。
异常我跳了过去
---------------
但是此区段的Size为49000,这里多了1,将导致其下区段被加密,所以我们要修改这里为49000
-----------------
这个SIZE我没做修改,不知道有没有关系?
现在已经处理到:
dump出程,并对IAT进行了修复,我是新加了一个section,生成的文件IDA可以反编译,API可见,应当没问题。

明天再继续下面的CC,谢谢FLY的文档。
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2006-8-23 13:12
47
0
恭喜进步
一份耕耘一份收获
雪    币: 217
活跃值: (61)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
chasgone 2 2006-8-26 22:04
48
0
上次我按照这个方法脱了一个程序,今天脱另一个程序却出现了问题:
1、生成的那个bin文件的size不是4的倍数,多了一个字节,造成iat读取错误
  我的处理方法是删除了中间的一个字节,发现函数都正常了。
  不知道这个错误是不是hexr说的 ollyscript.dll的问题?
2、处理iat乱序的时候,上面的这个bin文件里面的内容发现不全,没有找到user.dll库函数,造成处理乱序iat时错误,最后我是通过arminline解决了,不知道是不是我操作问题,我觉得应该不会
3、关于cc,按照那一大段代码,执行后停不下来 最后发现运行在死循环了
009209A4     3C 05                                   cmp al,5
009209A6   - 75 FE                                   jnz 009209A6
死在这里,不知道什么原因?
希望fly斑竹指点一下
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
邪秀才 2 2006-9-8 09:23
49
0
想问问大侠,是新的ARM带KEY如何去掉,有正确的KEY,以前的方法用上好像都不行了,工具也没办法,晕
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
darkshow 2006-9-9 15:46
50
0
Alt+M打开内存察看窗口,设置00401000、0044A000、0047D000段为完整权限。


请问下大侠,为什么47D000段要设完整权限?

我看代码中并为用到47D000呢?
游客
登录 | 注册 方可回帖
返回