美文网首页
穿山甲Amardillo保护分析

穿山甲Amardillo保护分析

作者: 看雪学院 | 来源:发表于2019-03-20 18:00 被阅读0次

【文章标题】: 穿山甲Amardillo保护分析

【文章作者】: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目录;

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,观察堆栈。

00129490 01A2FD43 返回到 01A2FD43 来自 kernel32.VirtualProtect

00129494 00401000 PIMOne.00401000;重要标志

4、单步F7(F8)返回到:

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

改成:

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

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

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

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目录;

2、OD载入目标print2f4.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运行,停在75A21B48,观察堆栈:

00129010 01FC9D87 返回到 01FC9D87 来自 kernel32.VirtualProtect

00129014 00401000 print2f4.00401000;重要标志

4、单步F7(F8)返回到:

01F59D87 8B8D B0D4FFFF mov ecx,dword ptr ss:[ebp-2B50]

在该行右键点数据窗口跟随:

01F59D87 8B 8D B0 D4 FF FF 51 8B 95 AC D4 FF FF 52 8B 85 媿霸Q嫊R媴

Ctrl+B查找ASCII码ArmAccess找到

0202B348 41 72 6D 41 63 63 65 73 73 36 34 2E 44 4C 4C 00 ArmAccess64.DLL.

0202B358 41 72 6D 41 63 63 65 73 73 2E 44 4C 4C 00 00 00 ArmAccess.DLL...

0202B368 41 72 6D 41 63 63 65 73 73 00 00 00 2E 64 6C 6C ArmAccess....dll

改成:

0202B348 56 72 6D 41 63 63 65 73 73 36 34 2E 44 4C 4C 00 VrmAccess64.DLL.

0202B358 56 72 6D 41 63 63 65 73 73 2E 44 4C 4C 00 00 00 VrmAccess.DLL...

0202B368 56 72 6D 41 63 63 65 73 73 00 00 00 2E 64 6C 6C VrmAccess....dll

5、交替F9、F7(F8)运行到壳自解码(出现红字),停在:

01F5AEB9 6A 14 push 14

反汇编窗口Ctrl+B查找74??6800010000(两个都不勾选)找到

01F5B145 /74 4A je short 01F5B191

01F5B147 |68 00010000 push 100

01F5B14C |8D85 ECBFFFFF lea eax,dword ptr ss:[ebp+FFFFBFEC]

01F5B152 |50 push eax

01F5B153 |8B8D ECC0FFFF mov ecx,dword ptr ss:[ebp-3F14]

01F5B159 |8B11 mov edx,dword ptr ds:[ecx]

01F5B15B |52 push edx

01F5B15C |E8 AFFA0100 call 01F7AC10

跟随进入01F5B15C的CALL找到段首:

01F7AC10 55 push ebp

改成

01F7AC10 C3 retn

6、F9运行,断在75A21B48,禁用此断点,继续F9断在75CEDE93,也禁用此断点。F7(F8)返回到:

01F3CC0F 50 push eax

01F3CC10 FF15 98830202 call dword ptr ds:[2028398]; kernel32.CloseHandle

01F3CC16 5E pop esi

01F3CC17 5B pop ebx

01F3CC18 8BE5 mov esp,ebp

01F3CC1A 5D pop ebp

01F3CC1B C3 retn

7、继续F8单步直到返回:

01F61B71 83C4 04 add esp,4

向下找到

01F61CE5 FFD2 call edx;段尾最近的CALL

01F61CE7 8945 FC mov dword ptr ss:[ebp-4],eax

01F61CEA 8B45 FC mov eax,dword ptr ss:[ebp-4]

01F61CED 5E pop esi

01F61CEE 8BE5 mov esp,ebp

01F61CF0 5D pop ebp

01F61CF1 C3 retn

8、点01F61CE5这一行F4,再F7跟入到达OEP=006A30D8,此时用LordPE(修正大小)来Dump为dumped.exe,填入OEP:2A30D8,ImportREC自动方式获取API,级别1修复,剪切多余项,转存为dumped_.exe运行73571304出错。

9、老OD找到73571304出错的地方:

0040F4C0 - FF25 78916B00 jmp dword ptr ds:[6B9178]; msimg32.GradientFill

ds:[006B9178]=73571304 (msimg32.GradientFill)

新OD载入dumped_.exe此处缺函数名,故在老OD用UIF修复,新IAT放在006B8000段,重新dump并用ImportREC修复转存,OK。

原文作者:ejamse

原文链接:https://bbs.pediy.com/thread-249898.htm

转载请注明:转自看雪学院

更多阅读:

SandHook 第四弹,Android Q 支持 & Inline 的特别处理

冷饭之穿山甲的传说1

快速转换dll到shellcode工具

QT信号槽简易分析_如何查看与分析QT的源码实现

相关文章

  • 穿山甲Amardillo保护分析

    【文章标题】: 穿山甲Amardillo保护分析 【文章作者】:eJamse 【目标程序】:PIMOne6.0、P...

  • 穿山甲成为国家一级保护动物,靠它催乳的中药怎么办?

    2020年6月5日,国家林业和草原局发布关于穿山甲调整保护级别的公告(2020年第12号):为加强穿山甲保护,经国...

  • 为了生灵,请做正确选择

    世界保护穿山甲组织的一位女士说:穿山甲能否存活下去,取决于中国青年的态度。 我说: 不仅是穿山甲,包括江豚、小熊猫...

  • 12月17日晚生产的梦

    保护穿山甲。 在森林中遇到一只奄奄一息的穿山甲。它的下半身缠满了松毛虫。 森林里松树上的松毛虫泛滥。 我问身边的人...

  • 穿山甲的功效与作用

    穿山甲是一种含有多种氨基酸和有微量元素的中药,在古代已经被人们所广泛的使用,但是由于现在穿山甲已经被列为国家的保护...

  • 走进“穿山甲保护课堂”

    2019年5月26日,中南大学第二附属小学三二中队组织了一场特别的实践活动。这到底是一场什么样的活动,能让家长和孩...

  • 基因组与群体进化,解析物种进化历程-05

    案例八 研究背景 穿山甲(pangolin)是鳞甲目穿山甲科物种的统称。由于穿山甲肉常被作为奢侈消费品,穿山甲甲片...

  • 用“秘密”换朋友

    方圆百里,只有一户穿山甲人家,大穿山甲和小穿山甲形影不离,她去哪儿小穿山甲就去哪儿。 夏天,森林枝叶繁茂,绿草灌木...

  • 大~穿山甲

    【大穿山甲Smutsia gigantea】 大穿山甲分布在中西非地区,是八种穿山甲中最大的,体长可达1.4m,重...

  • 这是一封来自穿山甲的濒死呼唤……

    亲爱的人类: 你们好,我叫穿山甲。我有“森林卫士”之称,因为我每年能吃掉700万只蚂蚁和白蚁,保护了树木不被侵蚀。...

网友评论

      本文标题:穿山甲Amardillo保护分析

      本文链接:https://www.haomeiwen.com/subject/xgktvqtx.html