- UID
- 17356
注册时间2006-7-3
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2022-10-17 10:10 |
---|
签到天数: 131 天 [LV.7]常住居民III
|
一、欺骗代码
下断:BP OpenMutexA,F9运行
7C80EAAB > 8BFF mov edi,edi
7C80EAAD 55 push ebp
7C80EAAE 8BEC mov ebp,esp
7C80EAB0 51 push ecx
7C80EAB1 51 push ecx
7C80EAB2 837D 10 00 cmp dword ptr ss:[ebp+10],0
7C80EAB6 56 push esi
堆栈友好提示:
0012F5B0 004FDDA6 /CALL 到 OpenMutexA 来自 zs.004FDDA0
0012F5B4 001F0001 |Access = 1F0001
0012F5B8 00000000 |Inheritable = FALSE
0012F5BC 0012FBF0 \MutexName = "8DC::DAC9D28748" ★注意这个 12FBF0★
CTRL+G来到 401000,写入如下代码:
00401000 60 pushad
00401001 9C pushfd
00401002 68 F0FB1200 push 12FBF0 ; ASCII "620::DAC9D28748"
00401007 33C0 xor eax,eax
00401009 50 push eax
0040100A 50 push eax
0040100B E8 BFD9407C call kernel32.CreateMutexA
00401010 9D popfd
00401011 61 popad
00401012 - E9 94DA407C jmp kernel32.OpenMutexA
00401017 90 nop
在401000 处新建eip。F9运行,再次中断在 OpenMutexA 处,取消该断点,然后返回401000处,撤消刚才键
入的所有代码。
二、避开IAT加密
下断:He GetModuleHandleA,F9运行 注意堆栈变化:
0012C280 00BD5331 /CALL 到 GetModuleHandleA 来自 00BD532B
0012C284 0012C3BC \pModule = "kernel32.dll"
0012C280 00BD5331 /CALL 到 GetModuleHandleA 来自 00BD532B
0012C284 0012C3BC \pModule = "user32.dll"
0012C280 00BD5331 /CALL 到 GetModuleHandleA 来自 00BD532B
0012C284 0012C3BC \pModule = "MSVBVM60.DLL"
0012BB44 73391BD1 /CALL 到 GetModuleHandleA 来自 73391BCB
0012BB48 7339F7E0 \pModule = "kernel32.dll"
0012BB4C 73391B70 返回到 73391B70 来自 73391B9C
0012BB38 7339282A /CALL 到 GetModuleHandleA 来自 73392824
0012BB3C 7339F80C \pModule = "KERNEL32"
0012BB2C 733931DC /CALL 到 GetModuleHandleA 来自 733931D6
0012BB30 00000000 \pModule = NULL
0012C280 00BD5331 /CALL 到 GetModuleHandleA 来自 00BD532B
0012C284 0012C3BC \pModule = "advapi32.dll"
00128844 01345331 /CALL 到 GetModuleHandleA 来自 0134532B
00128848 00128980 \pModule = "kernel32.dll"返回的好时期 alt+f9
0134532B FF15 A4503601 call dword ptr ds:[13650A4] ; kernel32.GetModuleHandleA
01345331 8B0D 60D83601 mov ecx,dword ptr ds:[136D860] ;★返回到这里!★
01345337 89040E mov dword ptr ds:[esi+ecx],eax
0134533A A1 60D83601 mov eax,dword ptr ds:[136D860]
0134533F 393C06 cmp dword ptr ds:[esi+eax],edi
01345342 75 16 jnz short 0134535A
01345344 8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
0134534A 50 push eax
0134534B FF15 B8503601 call dword ptr ds:[13650B8] ; kernel32.LoadLibraryA
01345351 8B0D 60D83601 mov ecx,dword ptr ds:[136D860]
01345357 89040E mov dword ptr ds:[esi+ecx],eax
0134535A A1 60D83601 mov eax,dword ptr ds:[136D860]
0134535F 393C06 cmp dword ptr ds:[esi+eax],edi
01345362 0F84 AD000000 je 01345415 ; Magic Jump
01345368 33C9 xor ecx,ecx
0134536A 8B03 mov eax,dword ptr ds:[ebx]
0134536C 3938 cmp dword ptr ds:[eax],edi
0134536E 74 06 je short 01345376
01345370 41 inc ecx
01345371 83C0 0C add eax,0C
01345374 ^ EB F6 jmp short 0134536C
将 01345362 0F84 AD000000 je 01345415改为:
01345362 0F84 AD000000 jmp 01345415
然后取消GetModuleHandleA断点
三、内存断点**直抵OEP
Alt+M 查看内存,在401000段 下“内存访问断点”,F9运行:
zs.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。
前面的都对!到这一步就出错啦!我那里不对? |
|