首页
社区
课程
招聘
哪位朋友对Armadillo 1.xx - 2.xx 之脱壳有心得的,可以指导指导吗?
发表于: 2006-8-1 21:29 5415

哪位朋友对Armadillo 1.xx - 2.xx 之脱壳有心得的,可以指导指导吗?

2006-8-1 21:29
5415
收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
2
把论坛的精华文章看完,我包你啥心得也有了!
2006-8-1 21:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
关于Armadillo的看了不少,就是大多数文章对于查找MAGIC JMP的时候讲的不清楚,好象都有点凭经验的感觉。还有就是最后LOADPE 和IMPORT REC的时候也有点问题,好象没他们说的那么简单,不同程序还是有差别的!
2006-8-1 21:53
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 hawker 发布
关于Armadillo的看了不少,就是大多数文章对于查找MAGIC JMP的时候讲的不清楚,好象都有点凭经验的感觉。还有就是最后LOADPE 和IMPORT REC的时候也有点问题,好象没他们说的那么简单,不同程序还是有差别的!


比较有规律,多跟踪几个。
GetModuleHandleA出来后,大多情况下会有一个LoadLibraryA,然后下面一个跳转。

00BA6798    FF15 C860BC00   call    [BC60C8]                         ; kernel32.GetModuleHandleA
00BA679E    8B0D 1C42BD00   mov     ecx, [BD421C]
00BA67A4    89040E          mov     [esi+ecx], eax
00BA67A7    A1 1C42BD00     mov     eax, [BD421C]
00BA67AC    391C06          cmp     [esi+eax], ebx
00BA67AF    75 16           jnz     short 00BA67C7
00BA67B1    8D85 B4FEFFFF   lea     eax, [ebp-14C]
00BA67B7    50              push    eax
00BA67B8    FF15 9060BC00   call    [BC6090]                         ; kernel32.LoadLibraryA 注意这个
00BA67BE    8B0D 1C42BD00   mov     ecx, [BD421C]
00BA67C4    89040E          mov     [esi+ecx], eax
00BA67C7    A1 1C42BD00     mov     eax, [BD421C]
00BA67CC    391C06          cmp     [esi+eax], ebx
00BA67CF    0F84 2F010000   je      00BA6904                       //长跳转,即MAGIC JMP
2006-8-1 22:12
0
雪    币: 152
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢斑竹,学习中。。。
2006-8-1 23:46
0
雪    币: 147
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
斑竹能否指点一下带KEY的怎么操作?有什么规律?看了论坛的几篇文章,都不能解决问题.
2006-8-2 08:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
试了不少次,都没出现斑竹所说的那段代码。我是在出现
/CALL 到 GetModuleHandleA 来自 00FA9AF1\pModule = "advapi32.后再碰到GetModuleHandleA/pModule = NULL是返回的,看了下面的代码,实在不确定哪里算是MAGIC JMP,惭愧!
7C80B52B    55              PUSH EBP
7C80B52C    8BEC            MOV EBP,ESP
7C80B52E    837D 08 00      CMP DWORD PTR SS:[EBP+8],0
7C80B532    74 18           JE SHORT kernel32.7C80B54C
7C80B534    FF75 08         PUSH DWORD PTR SS:[EBP+8]
7C80B537    E8 682D0000     CALL kernel32.7C80E2A4
7C80B53C    85C0            TEST EAX,EAX
7C80B53E    74 08           JE SHORT kernel32.7C80B548
7C80B540    FF70 04         PUSH DWORD PTR DS:[EAX+4]
7C80B543    E8 F4300000     CALL kernel32.GetModuleHandleW
7C80B548    5D              POP EBP
7C80B549    C2 0400         RETN 4
7C80B54C    64:A1 18000000  MOV EAX,DWORD PTR FS:[18]
7C80B552    8B40 30         MOV EAX,DWORD PTR DS:[EAX+30]
7C80B555    8B40 08         MOV EAX,DWORD PTR DS:[EAX+8]
7C80B558  ^ EB EE           JMP SHORT kernel32.7C80B548
7C80B55A    90              NOP
7C80B55B    90              NOP
7C80B55C    90              NOP
7C80B55D    90              NOP
7C80B55E    90              NOP
7C80B55F    8BFF            MOV EDI,EDI
7C80B561    55              PUSH EBP
7C80B562    8BEC            MOV EBP,ESP
7C80B564    81EC 40060000   SUB ESP,640
7C80B56A    837D 08 01      CMP DWORD PTR SS:[EBP+8],1
7C80B56E    A1 CC36887C     MOV EAX,DWORD PTR DS:[7C8836CC]
7C80B573    53              PUSH EBX
7C80B574    56              PUSH ESI
7C80B575    8B75 0C         MOV ESI,DWORD PTR SS:[EBP+C]
7C80B578    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
7C80B57B    0F84 49D20000   JE kernel32.7C8187CA
7C80B581    837D 08 02      CMP DWORD PTR SS:[EBP+8],2
7C80B585    75 0E           JNZ SHORT kernel32.7C80B595
7C80B587    E8 1E000000     CALL kernel32.7C80B5AA
7C80B58C    84C0            TEST AL,AL
7C80B58E    74 05           JE SHORT kernel32.7C80B595
7C80B590    E8 11F70000     CALL kernel32.7C81ACA6
2006-8-2 17:19
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
8
看地址:7C80B52B
这些都是系统DLL的代码。
自己用Armadillo加个壳,跟一下就明白了。
注意:不要将断点设在GetModuleHandleA的第一句上
2006-8-2 17:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
郁闷,还是找不准CTRL+F9的时机,没人说是什么时候啊。。
2006-8-2 19:53
0
雪    币: 217
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你给出具体代码看看
2006-8-2 20:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不是有脱壳工具吗
2006-8-2 23:29
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
12
最初由 hawker 发布
郁闷,还是找不准CTRL+F9的时机,没人说是什么时候啊。。


我知道的有2个,一个据说比较老的壳:
OD载入,bp GetModuleHandleA+7,注意堆栈,见到user32.dll后第一个null(代码出现在程序领空)就返回:
bp GetModuleHandleA+7
0012DED4  /0012DF10
0012DED8  |00DA4711    返回到 00DA4711 来自 KERNEL32.GetModuleHandleA
0012DEDC  |00DBD818    ASCII "user32.dll"
0012DEE0  |0012F55C

...

0012DF10  /0012F444
0012DF14  |00DB1FCB    返回到 00DB1FCB 来自 KERNEL32.GetModuleHandleA
0012DF18  |012214A0    ASCII "kernel32.dll"
0012DF1C  |0012F55C

0012DEF4  /0012DF0C
0012DEF8  |00DA4B74    返回到 00DA4B74 来自 KERNEL32.GetModuleHandleA
0012DEFC  |00000000             //程序领空第一个null

可以返回了:
00DA4B74      8B4D 08            mov ecx,dword ptr ss:[ebp+8]   ; KERNEL32.77E60000
00DA4B77      3BC8               cmp ecx,eax
00DA4B79      75 07              jnz short 00DA4B82
00DA4B7B      B8 18D3DB00        mov eax,0DBD318
00DA4B80      EB 30              jmp short 00DA4BB2
00DA4B82      393D D8D7DB00      cmp dword ptr ds:[DBD7D8],edi
00DA4B88      B8 D8D7DB00        mov eax,0DBD7D8
00DA4B8D     /74 0C              je short 00DA4B9B              ; MAGIC JUMP

另一个:
OD载入,bp GetModuleHandleA+7,注意堆栈:
001294FC  /0012EC44
00129500  |01217105  返回到 01217105 来自 kernel32.GetModuleHandleA
00129504  |0122BC1C  ASCII "kernel32.dll"
00129508  |0122CEC4  ASCII "VirtualAlloc"
  
001294FC  /0012EC44
00129500  |01217122  返回到 01217122 来自 kernel32.GetModuleHandleA
00129504  |0122BC1C  ASCII "kernel32.dll"
00129508  |0122CEB8  ASCII "VirtualFree"

中间可能还有些断点,我们关注的是kernel32.dll
  
00129260  /00129500
00129264  |01205FC9  返回到 01205FC9 来自 kernel32.GetModuleHandleA
00129268  |001293B4  ASCII "kernel32.dll"

返回:
00D66A5F     8B0D D855D900     mov ecx,dword ptr ds:[D955D8]
00D66A65     89040E            mov dword ptr ds:[esi+ecx],eax
00D66A68     A1 D855D900       mov eax,dword ptr ds:[D955D8]
00D66A6D     393C06            cmp dword ptr ds:[esi+eax],edi
00D66A70     75 16             jnz short 00D66A88
00D66A72     8D85 B4FEFFFF     lea eax,dword ptr ss:[ebp-14C]
00D66A78     50                push eax
00D66A79     FF15 DCA0D800     call dword ptr ds:[D8A0DC]          ; KERNEL32.LoadLibraryA
00D66A7F     8B0D D855D900     mov ecx,dword ptr ds:[D955D8]
00D66A85     89040E            mov dword ptr ds:[esi+ecx],eax
00D66A88     A1 D855D900       mov eax,dword ptr ds:[D955D8]
00D66A8D     393C06            cmp dword ptr ds:[esi+eax],edi
00D66A90     0F84 AD000000     je 00D66B43                        ; MAGIC JUMP
2006-8-3 05:49
0
雪    币: 147
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
同意楼上的见解!!!
看来楼上对此壳很有研究,有时间能否指点一二?
最近脱一个带KEY的ARM壳遇到困难.
QQ:420317164
HONGZHIYAO@HOTMAIL.COM
2006-8-3 07:55
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
14
最初由 hongzhiyao 发布
同意楼上的见解!!!
看来楼上对此壳很有研究,有时间能否指点一二?
最近脱一个带KEY的ARM壳遇到困难.
QQ:420317164
HONGZHIYAO@HOTMAIL.COM


研究谈不上,都是前辈们走过的路。
带key的,搜索精华区,讲的n详细了。
2006-8-3 18:11
0
游客
登录 | 注册 方可回帖
返回
//