首页
社区
课程
招聘
[原创]穿山甲的菊花开了
发表于: 2019-3-8 20:26 23986

[原创]穿山甲的菊花开了

2019-3-8 20:26
23986
【文章标题】: 穿山甲的菊花开了
【文章作者】: eJamse
【目标程序】: PIMOne6.0、Print2Flash4
【加壳方式】: Armadillo
【下载地址】: 链接: https://pan.baidu.com/s/1jeHG6mobEX-OI-mPF3_QXA 提取码: cvb2 包含(PIMOne6.0、Print2Flash4、ArmAccess.dll)
【使用工具】: OD ExeinfoPE LordPE ImportRec UIF
【操作平台】: Win7 sp1实环境(Win7下函数前记得要加库名,譬如KERNELBA.)
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
    偶然看了飘云阁Rooking大神的Armadillo脱壳视频,据说对Armadillo4.x-9.x通杀,照猫画虎试炼了一下,感觉有点后怕:再强的壳终有被捅菊花的一天,只是时间问题。
    把试炼过程记录下来,方便我等小白依法炮制。原理俺就不懂了,哪位大牛出来解释一下原理,让我们一窥管豹,就是我等福泽了!由于内容太黄太暴力,又么有技术含量,大家低调分享,版主就不要加精了。
    废话不多说,下面开始:
    一、PIMOne6.0
    ExeinfoPE查壳,显示为:
Armadillo 6.0x - 7.0 (exe) 32bit  -  www.siliconrealms.com    *ACM 
1、复制ArmAccess.dll到目标主程序PIMOne.exe目录;
Armadillo 6.0x - 7.0 (exe) 32bit  -  www.siliconrealms.com    *ACM 
1、复制ArmAccess.dll到目标主程序PIMOne.exe目录;
2、OD载入目标PIMOne.exe,忽略所有异常,隐藏OD,
Ctrl+G转到KERNELBA.VirtualProtect,在段尾75A21B48   \.  C2 1000  retn 10下断;
Ctrl+G转到kernel32.CreateThread,在段尾75CEDE93   \.  C2 1800  retn 18下断;
3、先禁用上面两个断点,F9运行,弹窗三次点OK,并Shift+F9运行,出现试用弹窗,此时先激活上面两个断点,再点OK,停在75A21B48,观察堆栈
Ctrl+G转到KERNELBA.VirtualProtect,在段尾75A21B48   \.  C2 1000  retn 10下断;
Ctrl+G转到kernel32.CreateThread,在段尾75CEDE93   \.  C2 1800  retn 18下断;
3、先禁用上面两个断点,F9运行,弹窗三次点OK,并Shift+F9运行,出现试用弹窗,此时先激活上面两个断点,再点OK,停在75A21B48,观察堆栈
00129490   01A2FD43  返回到 01A2FD43 来自 kernel32.VirtualProtect
00129494   00401000  PIMOne.00401000;重要标志
4、单步F7(F8)返回到
00129490   01A2FD43  返回到 01A2FD43 来自 kernel32.VirtualProtect
00129494   00401000  PIMOne.00401000;重要标志
4、单步F7(F8)返回到
01A9FD43     8B8D 28D8FFFF         mov ecx,dword ptr ss:[ebp-27D8]
在该行右键点数据窗口跟随
01A9FD43     8B8D 28D8FFFF         mov ecx,dword ptr ss:[ebp-27D8]
在该行右键点数据窗口跟随
01A2FD43  8B 8D 28 D8 FF FF 51 8B 95 24 D8 FF FF 52 8B 85  媿(?Q嫊$?R媴
Ctrl+B查找ASCII码ArmAccess找到
01A6D72C  41 72 6D 41 63 63 65 73 73 2E 44 4C 4C 00 00 00  ArmAccess.DLL...
01A6D73C  41 72 6D 41 63 63 65 73 73 00 00 00 2E 64 6C 6C  ArmAccess....dll
改成
01A2FD43  8B 8D 28 D8 FF FF 51 8B 95 24 D8 FF FF 52 8B 85  媿(?Q嫊$?R媴
Ctrl+B查找ASCII码ArmAccess找到
01A6D72C  41 72 6D 41 63 63 65 73 73 2E 44 4C 4C 00 00 00  ArmAccess.DLL...
01A6D73C  41 72 6D 41 63 63 65 73 73 00 00 00 2E 64 6C 6C  ArmAccess....dll
改成
01A6D72C  56 72 6D 41 63 63 65 73 73 2E 44 4C 4C 00 00 00  VrmAccess.DLL...
01A6D73C  56 72 6D 41 63 63 65 73 73 00 00 00 2E 64 6C 6C  VrmAccess....dll
01A6D72C  56 72 6D 41 63 63 65 73 73 2E 44 4C 4C 00 00 00  VrmAccess.DLL...
01A6D73C  56 72 6D 41 63 63 65 73 73 00 00 00 2E 64 6C 6C  VrmAccess....dll
5、(壳已自解码)反汇编窗口Ctrl+B查找74??6800010000(两个都不勾选)找到
01A307E9    /74 4A                 je short 01A30835
01A307EB    |68 00010000           push 100
01A307F0    |8D95 F4C3FFFF         lea edx,dword ptr ss:[ebp-3C0C]
01A307F6    |52                    push edx
01A307F7    |8B85 F4C4FFFF         mov eax,dword ptr ss:[ebp-3B0C]
01A307FD    |8B08                  mov ecx,dword ptr ds:[eax]
01A307FF    |51                    push ecx
01A30800    |E8 4BDC0000           call 01A3E450
跟随进入01A30800的CALL找到段首
01A3E450     55                    push ebp
改成
01A3E450     C3                    retn
01A307E9    /74 4A                 je short 01A30835
01A307EB    |68 00010000           push 100
01A307F0    |8D95 F4C3FFFF         lea edx,dword ptr ss:[ebp-3C0C]
01A307F6    |52                    push edx
01A307F7    |8B85 F4C4FFFF         mov eax,dword ptr ss:[ebp-3B0C]
01A307FD    |8B08                  mov ecx,dword ptr ds:[eax]
01A307FF    |51                    push ecx
01A30800    |E8 4BDC0000           call 01A3E450
跟随进入01A30800的CALL找到段首
01A3E450     55                    push ebp
改成
01A3E450     C3                    retn
6、F9运行,断在75A21B48,禁用此断点,继续F9断在75CEDE93,也禁用此断点。F7(F8)返回到
01A0713C     50                    push eax
01A0713D     FF15 5C83A601         call dword ptr ds:[1A6835C]; kernel32.CloseHandle
01A07143     5E                    pop esi
01A07144     5B                    pop ebx
01A07145     8BE5                  mov esp,ebp
01A07147     5D                    pop ebp
01A07148     C3                    retn
01A0713C     50                    push eax
01A0713D     FF15 5C83A601         call dword ptr ds:[1A6835C]; kernel32.CloseHandle
01A07143     5E                    pop esi
01A07144     5B                    pop ebx
01A07145     8BE5                  mov esp,ebp
01A07147     5D                    pop ebp
01A07148     C3                    retn
7、继续F8单步直到返回
01A3523F     83C4 04               add esp,4
向下找到
01A35345     FFD0                  call eax;段尾最近的CALL
01A35347     8945 FC               mov dword ptr ss:[ebp-4],eax
01A3534A     8B45 FC               mov eax,dword ptr ss:[ebp-4]
01A3534D     5E                    pop esi
01A3534E     8BE5                  mov esp,ebp
01A35350     5D                    pop ebp
01A35351     C3                    retn
01A3523F     83C4 04               add esp,4
向下找到
01A35345     FFD0                  call eax;段尾最近的CALL
01A35347     8945 FC               mov dword ptr ss:[ebp-4],eax
01A3534A     8B45 FC               mov eax,dword ptr ss:[ebp-4]
01A3534D     5E                    pop esi
01A3534E     8BE5                  mov esp,ebp
01A35350     5D                    pop ebp
01A35351     C3                    retn
8、点01A35345这一行F4,再F7跟入到达OEP=0063374C,此时用LordPE(修正大小)来Dump为dumped.exe,填入OEP:23374C,ImportREC自动方式获取API,剪切多余项,转存为dumped_.exe,OK
    二、Print2Flash4
    ExeinfoPE查壳,显示为:
Armadillo Pro Version v9.64 [ Private build stub ] 06-09-2013 - *www.siliconrealms.com    *ACM 
1、复制ArmAccess.dll到目标主程序print2f4.exe目录;
Armadillo Pro Version v9.64 [ Private build stub ] 06-09-2013 - *www.siliconrealms.com    *ACM 
1、复制ArmAccess.dll到目标主程序print2f4.exe目录;
2、OD载入目标print2f4.exe,忽略所有异常,隐藏OD,
Ctrl+G转到KERNELBA.VirtualProtect,在段尾75A21B48   \.  C2 1000  retn 10下断;
Ctrl+G转到kernel32.CreateThread,在段尾75CEDE93   \.  C2 1800  retn 18下断;
Ctrl+G转到KERNELBA.VirtualProtect,在段尾75A21B48   \.  C2 1000  retn 10下断;
Ctrl+G转到kernel32.CreateThread,在段尾75CEDE93   \.  C2 1800  retn 18下断;

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

最后于 2019-3-14 23:05 被ejamse编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (38)
雪    币: 8904
活跃值: (5131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
2
在飘云阁学的技术不到飘云阁发帖 
2019-3-8 20:45
0
雪    币: 2545
活跃值: (208)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
jgs 在飘云阁学的技术不到飘云阁发帖 [em_2]
我在网上搜到的视频,飘云阁要邀请码,我加不进
2019-3-8 20:59
0
雪    币: 47147
活跃值: (20445)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
jgs 在飘云阁学的技术不到飘云阁发帖 [em_2]
技术没国界
发这里, 飘云阁老大也支持的,都是看雪的老会员
最后于 2019-3-8 22:47 被kanxue编辑 ,原因:
2019-3-8 22:46
0
雪    币: 2166
活跃值: (3226)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
欢迎来到看雪,看雪欢迎你
2019-3-8 22:53
0
雪    币: 8904
活跃值: (5131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
6
kanxue jgs 在飘云阁学的技术不到飘云阁发帖 [em_2] 技术没国界发这里, 飘云阁老大也支持的,都是看雪的老会员
anxue  8    10小时前
 引用  举报  4 楼  0
  jgs 在飘云阁学的技术不到飘云阁发帖 
技术没国界
发这里, 飘云阁老大也支持的,都是看雪的老会员

段总这广告做的 高!
2019-3-9 08:56
0
雪    币: 734
活跃值: (458)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
7
所以软件加密不可靠的,硬件加密才牛逼
2019-3-9 10:15
0
雪    币: 12502
活跃值: (3053)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
看那菊花爆满山~
2019-3-9 11:31
0
雪    币: 346
活跃值: (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
2019-3-9 13:03
0
雪    币: 26
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
谁能爆TMD VMP菊花
2019-3-10 00:08
0
雪    币: 10704
活跃值: (809)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
给力,大佬
2019-3-10 08:58
0
雪    币: 35
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
2019-3-10 09:46
0
雪    币: 142
活跃值: (22)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
很久没有看到了哦
2019-3-11 00:22
0
雪    币: 8848
活跃值: (3088)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学海无涯呀
2019-3-11 08:19
0
雪    币: 26245
活跃值: (63297)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
15
 欢迎欢迎
2019-3-12 11:10
0
雪    币: 200
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好久没来论坛了,来学习学习(: 
同样的体会:再强的壳终有被捅菊花的一天,只是时间问题。
2019-3-13 22:28
0
雪    币: 88
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
感谢分享,这些例子是单进程还是双进程,双进程不是需要转为单进程吗
2019-3-14 19:49
0
雪    币: 2545
活跃值: (208)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
18
fawcgzmg 感谢分享,这些例子是单进程还是双进程,双进程不是需要转为单进程吗
是单进程,双转单跟以前一样,转了以后就可以用了,还有:其实问题指针不用修复,直接剪切就行。
2019-3-14 21:05
0
雪    币: 2545
活跃值: (208)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
19
建议看一下chasgone大侠的《armadillo中code splicing的几种处理方法》,那里的脱法也非常好!
2019-3-14 21:16
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
提取码错误?楼主
2019-3-19 15:29
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
jgs 在飘云阁学的技术不到飘云阁发帖 [em_2]
为啥说是飘云阁的技术呢
2019-3-19 15:29
0
雪    币: 2545
活跃值: (208)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
23
petersonhz 提取码错误?楼主
我试了没问题啊。
2019-3-21 00:22
0
雪    币: 2545
活跃值: (208)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
24
老师有好的工作岗位提供给我吗?
2019-3-21 00:23
0
雪    币: 8904
活跃值: (5131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jgs
25
petersonhz 为啥说是飘云阁的技术呢[em_1]
给飘云阁打个广告
2019-3-21 07:41
0
游客
登录 | 注册 方可回帖
返回
//