| 
注册时间2006-7-3
阅读权限20
最后登录1970-1-1UID17356 以武会友  
 
 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 遇到问题需要关闭。我们对此引起的不便表示抱歉。
 
 前面的都对!到这一步就出错啦!我那里不对?
 | 
 |