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作者讲授!