首页
社区
课程
招聘
Armadillo加壳版本号和保护方式的简单判断方法
发表于: 2006-8-7 12:39 6609

Armadillo加壳版本号和保护方式的简单判断方法

fly 活跃值
85
2006-8-7 12:39
6609
Armadillo加壳版本号和保护方式的简单判断方法


Armadillo的使用越来越广泛了,似乎有和AsProtect平分天下的趋势

_____________________________________________________________
一、Armadillo V3.X 的版本判断可以使用Armadillo Exact Version Location Tutorial

Armadillo Exact Version Location Tutorial / MEPHiST0[Unpacking Gods]
看雪论坛精华6
标 题:[转载]快速判断Armadillo壳版本
发信人:yesky1
时 间:2004-08-24,10:32
详细信息:

偶尔看到的,试了一下,感觉比较好用
大概是这样:
设断点 CreateThread 或者SetProcessWorkingSetSize
停下来后,Ctrl+F9返回,
然后右键 Search for -- All Referenced text strings
到text reference窗口,右键 Search for text
选中Entire scope搜索字符串: armVersion
来到这里
Text strings referenced in 01030000..01077FFF, item 57
Address=0103481C
Disassembly=PUSH 106300C
Text string=ASCII " <armVersion xsi:type="xsd:string">%s</armVersion>"
貌似Armadillo的xml格式配置文件?
双击该行来到disassemble窗口,向上拖动一行
看到
01034817 68 44300601 PUSH 1063044 ; ASCII "3.76"
0103481C 68 0C300601 PUSH 106300C ; ASCII " <armVersion xsi:type="xsd:string">%s</armVersion>"
啊哈,这正是Armadillo的版本号,据说此法从Armadillo3.20c到最新版的Armadillo都支持。


_____________________________________________________________
二、Armadillo V4.X 目前还没有发现判断确切版本的方法

不过Armadillo自从V4.0新加了个Anti OllyDBG手段:OutputDebugStringA
OllyDbg在处理调式包含格式串的消息时存在问题,被跟踪的应用程序可以使OllyDbg崩溃,或可能以进程权限执行任意指令。OutputDebugString函数可发送字符串到调试器上,然后OllyDbg会在底端显示相关状态消息,但是如果包含格式串消息,就可能使OllyDbg崩溃。
Armadillo以前的版本没有此种Anti,自V4.0始才有。

Armadillo Find Protected 目前可以识别出某些版本号,其特征码数据库还在完善中。

_____________________________________________________________
三、其实Armadillo版本判断并不重要,重要的是搞清楚其保护方式

1、Aramdillo单进程的都是标准壳

2、双进程的有标准壳更多是CopyMem-II。需要跟踪调试才能知道,如何跟踪?看N多Armadillo脱壳教程再跟随练习就明白了

3、CopyMem-II需要父进程解码子进程

4、Nanomites肯定是双进程,Debugger-Blocker or CopyMem-II
The Nanomites provide additional protection against memory-dumping for your programs. They will protect your program even if it is somehow stripped out of the SoftwarePassport/Armadillo shell. If your program can use the Debugger-Blocker or CopyMem-II, it should be able to use Nanomites as well. Besides enabling this option, you must mark sections within your program where Nanomites are permitted to reside and won't cause any speed problems, and use a custom build of the Armadillo engine. This option can only be used with the Debugger-Blocker or CopyMem-II protections.

Nanomites需要配合SDK才能使用。被保护程序的子进程中某些跳转被改成Int3,执行到此会产生异常。父进程接管异常后返回子进程应该如何跳转的结果,这样就使得调试和脱壳的难度大大增加了。

5、Code Splicing和Import Table Elimination需要你去看。ArmInline修复这些很方便,虽然有些bug

6、研究一下Aramdillo's ARMHELP.chm、UserGuide.chm、API.chm,会大有裨益的

_____________________________________________________________
四、强烈推荐:Armadillo Find Protected

vel的Armadillo Find Protected可以识别出Armadillo的保护方式,vel将会成为另位Armadillo杀手。
Armadillo Find Protected V1.3
http://www.unpack.cn/viewthread.php?tid=4820

<------- 01-07-2006 15:44:33 ------->
*\Armadillo.exe
!- Protected Armadillo
Version 4.30a (Public Build)
Protection system (Professional)
!- <Protection Options>
Debug-Blocker
CopyMem-II
Enable Import Table Elimination
Enable Nanomites Processing
Enable Memory-Patching Protections
!- <Backup Key Options>
Main Key Only, No Backup Keys
!- <Compression Options>
Best/Slowest Compression
!- <Other Options>



_____________________________________________________________
         ,     _/
        /| _.-~/            \_     ,        青春都一晌
       ( /~   /              \~-._ |\
       `\\  _/                \   ~\ )          忍把浮名
   _-~~~-.)  )__/;;,.          \_  //'
  /'_,\   --~   \ ~~~-  ,;;\___(  (.-~~~-.        换了脱壳轻狂
`~ _( ,_..--\ (     ,;'' /    ~--   /._`\
  /~~//'   /' `~\         ) /--.._, )_  `~
  "  `~"  "      `"      /~'`\    `\\~~\   
                         "     "   "~'  ""
   
                    By :  fly
              http://www.unpack.cn
                2006.01.31 20:00
                2006.08.07 12:00

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
立秋
作者:刘言史

兹晨戒流火,
商飙早已惊。
云天收夏色,
木叶动秋声。

很久没写东西了
立秋之日凉风至
整理了一下以前的资料,或许有些用处
2006-8-7 12:42
0
雪    币: 152
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢老大指点~
2006-8-7 14:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
哈哈,刚好要用到,多谢老大。
2006-8-7 19:55
0
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
支持一下老大,看了你的文章,学了不少东西,现在穿山甲的壳大多数已经可以脱了,只是ASPR的壳有点难度,看了你的好多文章,还是有好多地方不明白,要是能做的详细点的就好了~!~!
2006-8-8 22:32
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
好文!!!
2006-8-8 22:35
0
雪    币: 250
活跃值: (105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持! fly 再来个 4.xx  id patch 大法吧
2006-8-12 01:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
下了备用,感谢楼主!
2006-8-12 08:41
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
Armadillo Find Protected不能查dll
2006-8-12 10:56
0
雪    币: 226
活跃值: (179)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
顶一下^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2006-8-12 11:23
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
今天才注意到这个帖子,真的好感动
记得很久以前我在论坛问过怎样判断arm的确切版本,当时fly简单的回答了一下,现在fly写了这么详细东西,谢谢~~~~
2006-8-12 11:48
0
雪    币: 624
活跃值: (2223)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
发现Armadillo V3.75版
好像也有Anti OllyDBG
是不是FI测出来的是错的?
用Armadillo Exact Version Location Tutorial
在ASCII "   <armVersion xsi:type="xsd:string">%s</armVersion>"
附近看不到版本号.
2006-8-12 14:42
0
雪    币: 141
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
不少人现在改用Themida了,我等菜鸟没辙了
2006-8-12 15:01
0
雪    币: 7
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
14
学习
2006-8-12 17:19
0
雪    币: 538
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
又学习了
2006-8-13 00:20
0
游客
登录 | 注册 方可回帖
返回
//