求助Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks脱壳
OD 载入下断点 HE OutputDebugStringA
Shift+F9 运行,中断下来。看堆栈:
0006E904 00E61F05/CALL 到 OutputDebugStringA 来自 00E61EFF
0006E908 0006F22C\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"
出现这个说明这个DLL是经过Armadillo 4.X压缩过
进行脱壳
1、寻找Magic Jump
设置Ollydbg忽略所有的异常选项。老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志
清除断点后OD 重新载入
下断点 BP GetModuleHandleA,Shift+F9 运行中断后,注意看堆栈:
000684A4 00E63637/CALL 到 GetModuleHandleA 来自 00E63631
000684A8 00E77474\pModule = "kernel32.dll"
000684AC 00E78744ASCII "VirtualAlloc"
我们主要看堆栈 来寻找返回时机FLY大侠说的;
继续SHIFT+F9,断下看堆栈;
000684A4 00E63654/CALL 到 GetModuleHandleA 来自 00E6364E
000684A8 00E77474\pModule = "kernel32.dll"
000684AC 00E78738ASCII "VirtualFree"
继续SHIFT+F9 断下然后ALT+F9 返回
00E4ABC2 A1 E4C9E700 mov eax,dword ptr ds:
00E4ABC7 391C06 cmp dword ptr ds:,ebx
00E4ABCA 75 16 jnz short 00E4ABE2
00E4ABCC 8D85 B4FEFFFF lea eax,dword ptr ss:
00E4ABD2 50 push eax
00E4ABD3 FF15 E020E700 call dword ptr ds: ; kernel32.LoadLibraryA
00E4ABD9 8B0D E4C9E700 mov ecx,dword ptr ds:
00E4ABDF 89040E mov dword ptr ds:,eax
00E4ABE2 A1 E4C9E700 mov eax,dword ptr ds:
00E4ABE7 391C06 cmp dword ptr ds:,ebx
00E4ABEA 0F84 32010000 je 00E4AD22 ; Magic jump 改je->jmp
00E4ABF0 33C9 xor ecx,ecx
00E4ABF2 8B07 mov eax,dword ptr ds:
00E4ABF4 3918 cmp dword ptr ds:,ebx
00E4ABF6 74 06 je short 00E4ABFE
00E4ABF8 41 inc ecx
00E4ABF9 83C0 0C add eax,0C
00E4ABFC^ EB F6 jmp short 00E4ABF4
00E4ABFE 8BD9 mov ebx,ecx
00E4AC00 C1E3 02 shl ebx,2
00E4AC03 53 push ebx
下段 bp GetTickCount两次后返回但是却找不到
命令行 特征码
push eax
xchg cx,cx
pop eax
stc
高手给点意见,程序是DLL 已经上传!~ 看看这篇吧
https://www.chinapyg.com/viewthread.php?tid=42116&extra=page%3D1
页:
[1]