首页
社区
课程
招聘
[求助]Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks 脱壳问题!
发表于: 2007-6-28 13:15 7369

[求助]Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks 脱壳问题!

2007-6-28 13:15
7369
Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks 脱壳问题!
一个DLL是这个壳!我也看了很多文章但是始终是到不了!
我的步骤是以下的几步!望高手只点!
1.打开OD载入
提示如下异常!

点确定后SHIFT+F9后到这里!!!
10075E94  \> \C2 0C00       RETN 0C
10075E97 >/$  55            PUSH EBP                                 ;  SHIFT+F9后到这里!!!
10075E98  |.  8BEC          MOV EBP,ESP
10075E9A  |.  53            PUSH EBX
10075E9B  |.  8B5D 08       MOV EBX,DWORD PTR SS:[EBP+8]
10075E9E  |.  56            PUSH ESI
10075E9F  |.  8B75 0C       MOV ESI,DWORD PTR SS:[EBP+C]
10075EA2  |.  57            PUSH EDI
10075EA3  |.  8B7D 10       MOV EDI,DWORD PTR SS:[EBP+10]
10075EA6  |.  85F6          TEST ESI,ESI
10075EA8  |.  75 09         JNZ SHORT winscard.10075EB3
10075EAA  |.  833D 28170910>CMP DWORD PTR DS:[10091728],0
10075EB1  |.  EB 26         JMP SHORT winscard.10075ED9
10075EB3  |>  83FE 01       CMP ESI,1
10075EB6  |.  74 05         JE SHORT winscard.10075EBD
10075EB8  |.  83FE 02       CMP ESI,2
10075EBB  |.  75 22         JNZ SHORT winscard.10075EDF
10075EBD  |>  A1 38170910   MOV EAX,DWORD PTR DS:[10091738]
10075EC2  |.  85C0          TEST EAX,EAX
10075EC4  |.  74 09         JE SHORT winscard.10075ECF

下一步就是找到 Magic Jump
但是我始终是找不到!
我的方法是!
下断点 BP GetModuleHandleA+5  ,Shift+F9 运行,看到:
7C80B6A6    837D 08 00      CMP DWORD PTR SS:[EBP+8],---断在这里
7C80B6AA    74 18           JE SHORT kernel32.7C80B6C4
7C80B6AC    FF75 08         PUSH DWORD PTR SS:[EBP+8]
7C80B6AF    E8 C0290000     CALL kernel32.7C80E074
7C80B6B4    85C0            TEST EAX,EAX
7C80B6B6    74 08           JE SHORT kernel32.7C80B6C0
堆栈显示:
堆栈 SS:[0012F000]=0012F004, (ASCII "C:\WINDOWS\system3\ntdll.dll")
右下角窗口显示的是:
0012EFF8  /0012F114
0012EFFC  |74683BEE  返回到 74683BEE 来自 kernel32.GetModuleHandleA
0012F000  |0012F004  ASCII "C:\WINDOWS\system32\ntdll.dll"
0012F004  |575C3A43
到这里后我继续SHIFT+F9看到:

0012F000  /0012F11C
0012F004  |74683BEE  返回到 74683BEE 来自 kernel32.GetModuleHandleA
0012F008  |0012F00C  ASCII "C:\WINDOWS\system32\imm32.dll"
0012F00C  |575C3A43

0012EF4C  /0012F068
0012EF50  |74683BEE  返回到 74683BEE 来自 kernel32.GetModuleHandleA
0012EF54  |0012EF58  ASCII "C:\WINDOWS\system32\KERNEL32"
0012EF58  |575C3A43

00DEF478  /00DEF594
00DEF47C  |7365D4A4  返回到 7365D4A4 来自 kernel32.GetModuleHandleA
00DEF480  |00DEF484  ASCII "C:\WINDOWS\system32\ntdll.dll"
00DEF484  |575C3A43

要是我再:SHIFT+F9程序就运行起来了!
到了
1003D000  /.  55            PUSH EBP-----------------------------------到了这里!
1003D001  |.  8BEC          MOV EBP,ESP
1003D003  |.  83EC 0C       SUB ESP,0C
1003D006  |.  8B45 10       MOV EAX,DWORD PTR SS:[EBP+10]
1003D009  |.  50            PUSH EAX
1003D00A  |.  E8 6D8D0300   CALL <JMP.&MSVCRT.operator new>
1003D00F  |.  83C4 04       ADD ESP,4
1003D012  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
1003D015  |.  8B4D F8       MOV ECX,DWORD PTR SS:[EBP-8]
1003D018  |.  894D FC       MOV DWORD PTR SS:[EBP-4],ECX
1003D01B  |.  8B55 0C       MOV EDX,DWORD PTR SS:[EBP+C]

要是我在这里取消断点!
7C80B6A6    837D 08 00      CMP DWORD PTR SS:[EBP+8],0  ------取消断点

00DEECEC  /00DEEE08
00DEECF0  |74683BEE  返回到 74683BEE 来自 kernel32.GetModuleHandleA
00DEECF4  |00DEECF8  ASCII "C:\WINDOWS\system32\KERNEL32"
00DEECF8  |575C3A43

按Alt+F9 返回,出现以下窗口内容:

74683BE8    FF15 78116874   CALL DWORD PTR DS:[74681178]             ; kernel32.GetModuleHandleA
74683BEE    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
74683BF1    E8 A6D8FFFF     CALL 7468149C
74683BF6    C9              LEAVE
74683BF7    C2 0400         RETN 4
74683BFA    90              NOP
74683BFB    90              NOP
74683BFC    90              NOP
74683BFD    90              NOP
74683BFE    90              NOP
74683BFF    8BFF            MOV EDI,EDI
74683C01    55              PUSH EBP
74683C02    8BEC            MOV EBP,ESP
74683C04    837D 0C 00      CMP DWORD PTR SS:[EBP+C],0
74683C08    56              PUSH ESI
74683C09    57              PUSH EDI
74683C0A    BF 05010000     MOV EDI,105
74683C0F    8BF1            MOV ESI,ECX
74683C11    57              PUSH EDI
74683C12    56              PUSH ESI
74683C13    0F85 151B0000   JNZ 7468572E
74683C19    FF15 88106874   CALL DWORD PTR DS:[74681088]             ; kernel32.GetSystemDirectoryA
74683C1F    3BC7            CMP EAX,EDI
74683C21    8986 08010000   MOV DWORD PTR DS:[ESI+108],EAX
74683C27    0F83 0C1B0000   JNB 74685739
74683C2D    85C0            TEST EAX,EAX
74683C2F    74 41           JE SHORT 74683C72
74683C31    03C6            ADD EAX,ESI
74683C33    8078 FF 5C      CMP BYTE PTR DS:[EAX-1],5C
74683C37    74 09           JE SHORT 74683C42
74683C39    C600 5C         MOV BYTE PTR DS:[EAX],5C
74683C3C    FF86 08010000   INC DWORD PTR DS:[ESI+108]
74683C42    53              PUSH EBX
74683C43    FF75 08         PUSH DWORD PTR SS:[EBP+8]
74683C46    FF15 28116874   CALL DWORD PTR DS:[74681128]             ; kernel32.lstrlenA
74683C4C    8BD8            MOV EBX,EAX
74683C4E    8B86 08010000   MOV EAX,DWORD PTR DS:[ESI+108]
74683C54    2BF8            SUB EDI,EAX
74683C56    3BFB            CMP EDI,EBX
74683C58    0F86 EA1A0000   JBE 74685748
74683C5E    57              PUSH EDI
74683C5F    FF75 08         PUSH DWORD PTR SS:[EBP+8]
74683C62    03C6            ADD EAX,ESI
74683C64    50              PUSH EAX
74683C65    FF15 84106874   CALL DWORD PTR DS:[74681084]             ; kernel32.lstrcpynA
74683C6B    019E 08010000   ADD DWORD PTR DS:[ESI+108],EBX
74683C71    5B              POP EBX
74683C72    8B86 08010000   MOV EAX,DWORD PTR DS:[ESI+108]
74683C78    5F              POP EDI
74683C79    5E              POP ESI
74683C7A    5D              POP EBP
74683C7B    C2 0800         RETN 8
74683C7E    68 80000000     PUSH 80
74683C83    FF15 18106874   CALL DWORD PTR DS:[74681018]             ; msvcrt.malloc
74683C89    3BC6            CMP EAX,ESI
74683C8B    59              POP ECX
74683C8C    A3 D8206C74     MOV DWORD PTR DS:[746C20D8],EAX
74683C91  ^ 0F84 74E3FFFF   JE 7468200B
74683C97    8930            MOV DWORD PTR DS:[EAX],ESI
74683C99    A1 D8206C74     MOV EAX,DWORD PTR DS:[746C20D8]
74683C9E    68 C0236C74     PUSH 746C23C0
74683CA3    68 B8236C74     PUSH 746C23B8
74683CA8    A3 D4206C74     MOV DWORD PTR DS:[746C20D4],EAX
74683CAD    E8 11000000     CALL 74683CC3                            ; JMP 到 msvcrt._initterm
74683CB2    FF05 B0206C74   INC DWORD PTR DS:[746C20B0]
74683CB8    59              POP ECX
74683CB9  ^ E9 EAD8FFFF     JMP 746815A8
74683CBE    90              NOP

到这里我就进行不下去了!找不到  Magic Jump
不知道是不是我的方法的问题还是这个DLL的问题!
是不是比较特殊!
我把原始文件放上来!你们看看问题是否一样!
并没有申请脱壳的意思!
我用脚本也行!
很是奇怪!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 44229
活跃值: (19950)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
这个DLL,你用OD一加载,就跑起来了(它没有在入口点暂停),运行过程遇到异常,就会出现如图所示的错误。
此时,你不要Shitf+f9,而是GetModuleHandleA设断,设好断Shitf+f9继续运行,会来到:

00985CE1 8B0D AC409B00 mov ecx, dword ptr [9B40AC]
00985CE7 89040E mov dword ptr [esi+ecx], eax
00985CEA A1 AC409B00 mov eax, dword ptr [9B40AC]
00985CEF 391C06 cmp dword ptr [esi+eax], ebx
00985CF2 75 16 jnz short 00985D0A
00985CF4 8D85 B4FEFFFF lea eax, dword ptr [ebp-14C]
00985CFA 50 push eax
00985CFB FF15 BC629A00 call dword ptr [9A62BC] ; kernel32.LoadLibraryA
00985D01 8B0D AC409B00 mov ecx, dword ptr [9B40AC]
00985D07 89040E mov dword ptr [esi+ecx], eax
00985D0A A1 AC409B00 mov eax, dword ptr [9B40AC]
00985D0F 391C06 cmp dword ptr [esi+eax], ebx
00985D12 0F84 2F010000 je 00985E47 //Magic Jump

剩下的就简单了

另外,看区块名,感觉这个DLL被VMProtect加密处理过了。
2007-6-28 13:29
0
雪    币: 148
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
machenglin .ARM killman@
2007-6-28 13:31
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢啊!我在研究一下!不懂的再问大家哈!
2007-6-28 14:05
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢啊!我在研究一下!不懂的再问大家哈!
2007-6-28 14:12
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢上面的大哥!但是问题又来了
我找到了这里但是运行不到  Magic Jump 这里
001290BC   00A25CE1  返回到 00A25CE1 来自 kernel32.GetModuleHandleA
001290C0   0012920C  ASCII "kernel32.dll"

我是在这里用  ALT+F9返回但是到不了Magic Jump 这里啊!
这里是取消断点后按ALT+F9把!
好象没断啊!
2007-6-28 14:18
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢上面的!我上面的弄做到了!下面就是第二步获得重定位信息了!
不懂再找你们哈!谢谢
2007-6-28 14:51
0
雪    币: 255
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
PKPM的模拟;不知道那个版本的。应该是2005版本。
2007-6-28 15:09
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我来到!Magic Jump改JMP
按照你说的!取消断点
shift+f9就是一片红啊!
到了
00A31A7C    F62D AA0D4E34   IMUL BYTE PTR DS:[344E0DAA]
00A31A82    F3:             PREFIX REP:                              ; 段寄存器修饰
00A31A83    8E32            MOV SEG?,WORD PTR DS:[EDX]               ; 未定义的段寄存器
00A31A85    16              PUSH SS
00A31A86    AB              STOS DWORD PTR ES:[EDI]

这里!
奇怪!无法继续下一步了!
老大们!能不能做个详细点的呀!
感觉这个DLL和其他的不一样!
用以前帖子的方法行不通啊!
2007-6-28 15:13
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
哈哈是的!过期了的版本!
脱来耍耍!
2007-6-28 15:14
0
雪    币: 255
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
有VM就不用看了。关键的注册部分都VM了。这个应该是J的东东。这是他的风格。
2007-6-28 15:35
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
只是想脱脱看!方法是什么样的!
我现在到输入表这里卡住了!
(因为已经修改了Magic Jump,所以现在可以得到完整的输入表。随便从程序找个API调用:
008710FD     FF15 20408700       call dword ptr ds:[874020]; kernel32.GetVersion
在转存中跟随874020)
我找了一个API调用但是怎么在转存中跟随啊!
这里我弄不懂了!那位老大指点一下啊!
2007-6-28 15:57
0
雪    币: 255
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
要想学,随便用ARM加个什么东东可以跟。要看其他的mm_dillodie足够了。
2007-6-28 16:12
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
因为我现在加壳的DLL就他了!哈哈
2007-6-28 16:20
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
多看多学习阿
2007-6-28 19:12
0
雪    币: 212
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
[QUOTE=梵天;328711]只是想脱脱看!方法是什么样的!
我现在到输入表这里卡住了!
(因为已经修改了Magic Jump,所以现在可以得到完整的输入表。随便从程序找个API调用:
008710FD     FF15 20408700       call dword ptr ds:[874020]; kernel32...[/QUOTE]

我的东东?没看,有点像,如果是,脱了也是残废一个,这样你会搞不清是否脱对了。
od里左下窗口crtl+G输入874000,然后左下窗口右键选“长型”里的“地址”,显示的就是输入表了。
2007-6-29 01:33
0
雪    币: 55
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢哈!没想到这个帖子引来这么多老大!我只想脱脱看!这个软件的注册没在壳里我知道的!
2007-6-29 02:00
0
游客
登录 | 注册 方可回帖
返回
//