88688 发表于 2009-10-1 09:49

菜鸟也脱强壳穿山甲4.x (最适合新手练习.一看就会

菜鸟也脱穿山甲4.x (适合新手练习)

这是个查找具有相同的属性的文件的小软件,你是否经常下载许多资料,是否有过下载重复的时候。查找重复文件可以清除相同的文件.在深度和宝藏网有破解版的.今天我不是破解它,而是来脱掉大名鼎鼎的穿山甲4.x.遇到过Armadillo的朋友应该知道,它是有点变态的。。中文意思“穿山甲”,可想而知,是很难脱的。

首先介绍一下Armadillo的一些版本以及保护方式、线程情况吧!
1:版本
   1.xx--2.xx
   3.0a--3.61
   3.75
   3.78
   4.x

2:保护方式
   标准方式
   非标准方式======>Armadillo CopyMem-ll +Debug-Blocker

3:线程
   单线程
   双线程

上面三种特征都可以两两组合,或者是三三组合。。变化方式之多,可见一斑!下面我将做下总结!希望能够起到抛砖引玉的作用!

保护方式判断:如果你用脱标准壳的方法去脱不行的话,那么就很有可能是非标准版。
线程的判断:运行程序,打开系统的任务管理器,看看有几个同名进程。当燃最多是两个,不会有三个.目前国内有许多游戏外挂都是用它来加密的...
————————————————————————————————————————————
脱壳前的准备:▲

1、OD设置忽略所有的异常,用隐藏插件隐藏OD!▲

2、思想准备:Armadillo对断点的检测非常严格,所以我们在设置断点的时候要尽量去使用“硬件执行”▲

3、概念准备:使用PEID的Armadillo的版本检测一般没那么准确,fi的版本检测还是要强一些

4、Magic Jump:跳转的跨越段一般比较大!(返回时机一定要对!)

5:返回的时机:1、返回的地址是系统领空

2、Shift+F9过程当中,时间缓冲比较大才停下(得自己体会一下)▲
都准备好咯吧!那大家就跟我来脱掉它吧!
————————————————————————————————————————————
一:   首先用PEID来查壳:Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks

OD载入:

00473000 >60            pushad
00473001    E8 00000000   call SearchRe.00473006
00473006    5D            pop ebp
00473007    50            push eax
00473008    51            push ecx
00473009    0FCA            bswap edx
0047300B    F7D2            not edx
0047300D    9C            pushfd
0047300E    F7D2            not edx
00473010    0FCA            bswap edx
00473012    EB 0F         jmp short SearchRe.00473023
00473014    B9 EB0FB8EB   mov ecx,EBB80FEB

这是入口,不要动,在命令窗口输入:bp OpenMutexA   意思就是双变单(使程序把自己当成子进程运行)
SHIFT+F9运行后,停在了这里:0047C5C3    F0:             prefix lock:

0047C5C4    F0:C7         ???                              ; 未知命令
0047C5C6    C8 64678F       enter 6764,8F
0047C5CA    06            push es
0047C5CB    0000            add byte ptr ds:,al
0047C5CD    83C4 04         add esp,4
0047C5D0    C3            retn
0047C5D1    03C5            add eax,ebp
0047C5D3    C3            retn
0047C5D4    B9 EA7A0000   mov ecx,7AEA
0047C5D9    C3            retn
0047C5DA    B8 661A0000   mov eax,1A66
0047C5DF    C3            retn

大家注意到OD的左下角了没有啊?看看那里有什么提示,看到了吧!提示有异常,这时打开OD的选项菜单:异常→添加最近异常→确定→钩选“同时忽略以下指定的....”→确定。就OK 了.

这时再来SHIFT+F9运行:

7C80EA1B >8BFF            mov edi,edi
7C80EA1D    55            push ebp
7C80EA1E    8BEC            mov ebp,esp
7C80EA20    51            push ecx
7C80EA21    51            push ecx
7C80EA22    837D 10 00      cmp dword ptr ss:,0
7C80EA26    56            push esi
7C80EA27    0F84 66530300   je kernel32.7C843D93
7C80EA2D    64:A1 18000000mov eax,dword ptr fs:
7C80EA33    FF75 10         push dword ptr ss:
7C80EA36    8DB0 F80B0000   lea esi,dword ptr ds:
7C80EA3C    8D45 F8         lea eax,dword ptr ss:
7C80EA3F    50            push eax

(看一下是你们运行后是不是停在这里,如果没有的话,那就是刚刚哪步没照我说的做吧!从新来过吧....)

前面下的BP断点先不要管它,按CTRL+G,输入:00401000(确定)回车,来到一处空白的代码处:

00401000    0000            add byte ptr ds:,al
00401002    0000            add byte ptr ds:,al
00401004    0000            add byte ptr ds:,al
00401006    0000            add byte ptr ds:,al
00401008    0000            add byte ptr ds:,al
0040100A    0000            add byte ptr ds:,al
0040100C    0000            add byte ptr ds:,al
0040100E    0000            add byte ptr ds:,al
00401010    0000            add byte ptr ds:,al
00401012    0000            add byte ptr ds:,al
00401014    0000            add byte ptr ds:,al
00401016    0000            add byte ptr ds:,al
00401018    0000            add byte ptr ds:,al
0040101A    0000            add byte ptr ds:,al

看一下自己的哦!反汇编栏双击00401000反汇编栏,在弹出的窗口输入:如下

pushad
pushfd
push 13FDB0
xor eax,eax
push eax
push eax
call kernel32.CreateMutexA
popfd
popad
jmp kernel32.OpenMutexA

输入后:

00401000    60            pushad
00401001    9C            pushfd
00401002    68 B0FD1300   push 13FDB0                        ; ASCII "944::DA79836537"
00401007    33C0            xor eax,eax
00401009    50            push eax
0040100A    50            push eax
0040100B    E8 2FD9407C   call kernel32.CreateMutexA
00401010    9D            popfd
00401011    61            popad
00401012- E9 04DA407C   jmp kernel32.OpenMutexA
00401017    90            nop

注意:只是反汇编栏的代码.截图01..右键→在此处新建EIP,提示:是.

然后F9直接运行.返回这里:

7C80EA1B >8BFF            mov edi,edi
7C80EA1D    55            push ebp
7C80EA1E    8BEC            mov ebp,esp
7C80EA20    51            push ecx
7C80EA21    51            push ecx
7C80EA22    837D 10 00      cmp dword ptr ss:,0
7C80EA26    56            push esi
7C80EA27    0F84 66530300   je kernel32.7C843D93
7C80EA2D    64:A1 18000000mov eax,dword ptr fs:
7C80EA33    FF75 10         push dword ptr ss:

取消前面下的断点.再CTRL+G来到00401000处,选上我们前面修改的,点右键→撤消全部修改,让它们变回原来的样子.

这样,下的第一个断点的任务就完成了.
————————————————————————————————————---——————
二:避开Anti(OD的一个漏洞,穿山甲就是用这个漏洞来反调式器的)   命令:heOutputDebugStringA
SHIFT+F9运行后断在这里:
7C859D78 >68 34020000   push 234
7C859D7D    68 A0A0857C   push kernel32.7C85A0A0
7C859D82    E8 3F87FAFF   call kernel32.7C8024C6
7C859D87    A1 CC46887C   mov eax,dword ptr ds:
7C859D8C    8945 E4         mov dword ptr ss:,eax
7C859D8F    8B4D 08         mov ecx,dword ptr ss:
7C859D92    898D C4FDFFFF   mov dword ptr ss:,ecx
7C859D98    8365 FC 00      and dword ptr ss:,0
7C859D9C    8BC1            mov eax,ecx
7C859D9E    8D70 01         lea esi,dword ptr ds:

我们看堆栽:

0013DC68   00451917/CALL 到 OutputDebugStringA 来自 SearchRe.00451914
0013DC6C   003E09D8\String = "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
0013DC70   00000004
0013DC74   00000000
0013DC78   0045FC43SearchRe.0045FC43
0013DC7C   50000061

在这些“%s%s%s%s%s%s%s%s%s.......”点右键→数据窗口中跟随→到左下角的那个数据窗口出来的第一行点右键→二进制→使用00填充

再F9运行.在这些“%s%s%s%s%s%s%s%s%s.......”点右键→数据窗口中跟随→到左下角的那个数据窗口的第一行点右键→二进制→使用00填充


删除此断点!
————————————————————————-
字数太多.接下楼

[ 本帖最后由 Colaud 于 2008-8-10 18:50 编辑 ]
附件
Colaud穿山甲1.jpg (109.94 KB)
2008-8-10 18:45



Colaud 穿山甲2.jpg (136.62 KB)
2008-8-10 18:50

310608900 发表于 2009-10-1 10:26

学习一下。。。

wqaq1992 发表于 2009-10-1 11:25

这个是天草 老大的 笔记吧汗

wogeshange 发表于 2009-10-1 11:59

这个要好好研究一下,呵呵

11212122 发表于 2009-10-1 14:17

额....三人行的笔记。。。

310608900 发表于 2009-10-8 11:05

我来看看,不错。。。

mjaoun 发表于 2009-10-10 11:52

看不懂啊 哎......菜鸟的我改曾什么学起啊!!谁给我说下学习脱壳必须先学习什么啊?

bob123 发表于 2009-10-11 10:42

这个。。。4.x的没这么麻烦。

yxg888 发表于 2009-10-12 08:33

这个要好好研究一下,呵呵

xuemin 发表于 2009-10-12 08:56

学习了 呵呵呵呵
页: [1] 2 3
查看完整版本: 菜鸟也脱强壳穿山甲4.x (最适合新手练习.一看就会