- UID
- 40471
注册时间2007-12-6
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2019-12-9 12:34 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
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 00E78744 ASCII "VirtualAlloc"
我们主要看堆栈 来寻找返回时机 FLY大侠说的;
继续SHIFT+F9,断下 看堆栈;
000684A4 00E63654 /CALL 到 GetModuleHandleA 来自 00E6364E
000684A8 00E77474 \pModule = "kernel32.dll"
000684AC 00E78738 ASCII "VirtualFree"
继续SHIFT+F9 断下 然后ALT+F9 返回
00E4ABC2 A1 E4C9E700 mov eax,dword ptr ds:[E7C9E4]
00E4ABC7 391C06 cmp dword ptr ds:[esi+eax],ebx
00E4ABCA 75 16 jnz short 00E4ABE2
00E4ABCC 8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
00E4ABD2 50 push eax
00E4ABD3 FF15 E020E700 call dword ptr ds:[E720E0] ; kernel32.LoadLibraryA
00E4ABD9 8B0D E4C9E700 mov ecx,dword ptr ds:[E7C9E4]
00E4ABDF 89040E mov dword ptr ds:[esi+ecx],eax
00E4ABE2 A1 E4C9E700 mov eax,dword ptr ds:[E7C9E4]
00E4ABE7 391C06 cmp dword ptr ds:[esi+eax],ebx
00E4ABEA 0F84 32010000 je 00E4AD22 ; Magic jump 改je->jmp
00E4ABF0 33C9 xor ecx,ecx
00E4ABF2 8B07 mov eax,dword ptr ds:[edi]
00E4ABF4 3918 cmp dword ptr ds:[eax],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 已经上传!~ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|