首页
社区
课程
招聘
[讨论]脱壳的方法不灵了,Armadillo 7.2
发表于: 2011-12-11 23:36 6056

[讨论]脱壳的方法不灵了,Armadillo 7.2

2011-12-11 23:36
6056
某个国外的软件,之前的多个版本都是armadillo 3.78 加壳的,毕竟我是业余的,按照公式,基本搞定,但着一次,遇到麻烦了!

查看 信息如下:
<- 11-12-2011 21:29:44 - [2.0] ->
F:\Crack\CrackTest.exe
Protected Armadillo
<-Find Protect
Protection system (Professional)
<Protection Options>
Standard protection or Minimum protection
<Backup Key Options>
Fixed Backup Keys
<Compression Options>
Best/Slowest Compression
<Other Options>
<-Find Version
Version 7.20 09-04-2010
<- Elapsed Time 00h 00m 00s 703ms ->

确实是Armadillo 加密的,感觉加密强度也不大,但我卡在了,返回程序领空的地方了!

用OD加载被调试的程序后:
0056E000 >  60              pushad
0056E001    E8 00000000     call    0056E006
0056E006    5D              pop     ebp
0056E007    50              push    eax
0056E008    51              push    ecx
0056E009    0FCA            bswap   edx
0056E00B    F7D2            not     edx
0056E00D    9C              pushfd
0056E00E    F7D2            not     edx
0056E010    0FCA            bswap   edx
0056E012    EB 0F           jmp     short 0056E023
0056E014    B9 EB0FB8EB     mov     ecx, EBB80FEB
0056E019    07              pop     es
0056E01A    B9 EB0F90EB     mov     ecx, EB900FEB

此时下硬件断点 HE GetModuleHandleA 并且 F9 开始运行
F9后会提示一个MessageBox对话框,“不知如何回避位于地址005775C5 的命令,请尝试更改EIP 或者忽略程序异常”,点击确定。

按 SHIFT+F9 继续

和以前的版本不同,这个版本会弹出两次或三次MessageBox,但消息框上没有信息,或几个乱码,确认后断在:
00128FAC   00D49CBD  /CALL 到 GetModuleHandleA 来自 00D49CB7
00128FB0   00DE1C28  \pModule = "kernel32.dll"
00128FB4   00DE374C  ASCII "VirtualAlloc"
00128FB8   B2369C52

F9 继续

00128FAC   00D49CDB  /CALL 到 GetModuleHandleA 来自 00D49CD5
00128FB0   00DE1C28  \pModule = "kernel32.dll"
00128FB4   00DE3740  ASCII "VirtualFree"
00128FB8   B2369C52

F9 再继续

00128CF8   00D2EAA4  /CALL 到 GetModuleHandleA 来自 00D2EA9E
00128CFC   00128E74  \pModule = "kernel32.dll"

去除硬件断点:
ALT + F9

找到了传说中的Magic Jump
00D2EB04    8D8D C8FEFFFF   lea     ecx, dword ptr [ebp-138]
00D2EB0A    51              push    ecx
00D2EB0B    FF15 9800DE00   call    dword ptr [DE0098]               ; kernel32.LoadLibraryA
00D2EB11    8B55 F4         mov     edx, dword ptr [ebp-C]
00D2EB14    8B0D D457E000   mov     ecx, dword ptr [E057D4]
00D2EB1A    890491          mov     dword ptr [ecx+edx*4], eax
00D2EB1D    8B55 F4         mov     edx, dword ptr [ebp-C]
00D2EB20    A1 D457E000     mov     eax, dword ptr [E057D4]
00D2EB25    833C90 00       cmp     dword ptr [eax+edx*4], 0
00D2EB29    75 05           jnz     short 00D2EB30                <====NOP 这个一次
00D2EB2B  ^ E9 E9FEFFFF     jmp     00D2EA19
00D2EB30    C785 BCFEFFFF 0>mov     dword ptr [ebp-144], 0

定位到
00D2EB2B  ^ E9 E9FEFFFF     jmp     00D2EA19 回车
再如法炮制来到:
00D2EDBC   /EB 03           jmp     short 00D2EDC1
00D2EDBE   |D6              salc
00D2EDBF   |D6              salc
00D2EDC0   |8F              ???                                      ; 未知命令
00D2EDC1   \8B15 64B0E000   mov     edx, dword ptr [E0B064]

恢复上面的NOP 修改

继续下断点bp CreateThread,F9 运行

7C8106C7 >  8BFF            mov     edi, edi
7C8106C9    55              push    ebp
7C8106CA    8BEC            mov     ebp, esp
7C8106CC    FF75 1C         push    dword ptr [ebp+1C]
7C8106CF    FF75 18         push    dword ptr [ebp+18]
7C8106D2    FF75 14         push    dword ptr [ebp+14]
7C8106D5    FF75 10         push    dword ptr [ebp+10]
7C8106D8    FF75 0C         push    dword ptr [ebp+C]
7C8106DB    FF75 08         push    dword ptr [ebp+8]
7C8106DE    6A FF           push    -1
7C8106E0    E8 D7FDFFFF     call    CreateRemoteThread
7C8106E5    5D              pop     ebp
7C8106E6    C2 1800         retn    18

堆栈如下

012CFD9C   77E5DF36  /CALL 到 CreateThread 来自 RPCRT4.77E5DF30
012CFDA0   00000000  |pSecurity = NULL
012CFDA4   00000000  |StackSize = 0
012CFDA8   77E56C7D  |ThreadFunction = RPCRT4.77E56C7D
012CFDAC   001735F0  |pThreadParm = 001735F0
012CFDB0   00000000  |CreationFlags = 0
012CFDB4   012CFDC4  \pThreadId = 012CFDC4

这里不同了, CreateThread  并不是来自某个应用程序领空的地址,而是由RPCRT4这个模块来调用,

按照常规的思路  ALT + F9 返回应用程序领空,结果程序死锁了!

OD 没有死,但停在一个ZwReplyWaitReceivePortEx函数中出不来了!

因此不能像以往那样继续找OEP,修复IAT。

有人遇到类似的问题吗? 我该如何继续呢?

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

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 265
活跃值: (84)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我是小白,帮你顶起来哈
2012-1-7 22:22
0
游客
登录 | 注册 方可回帖
返回
//