楼主帮忙看一下:
我找这楼主的方法:
用到的断点,我提前下好了(按照楼主的方法)
大约过了60多个SEH,还有一个 kernel32.IsDebuggerPresent,(检查od的)
来到断点 kernel32.CreateThread:如下{
0012FFA8 00374799 /CALL 到 CreateThread 来自 00374793
0012FFAC 00000000 |pSecurity = NULL
0012FFB0 00000000 |StackSize = 0
0012FFB4 00374761 |ThreadFunction = 00374761( 由于系统不同,我的是windows XP pack 1,这个地址不同)
0012FFB8 77E614C7 |pThreadParm = kernel32.77E614C7
0012FFBC 00000000 |CreationFlags = 0
0012FFC0 00374824 \pThreadId = 00374824
}
之后:bp 00374761
找到 cmp eax,4C505845;
00375106 25 5F5F5F5F and eax,5F5F5F5F
0037510B 3D 4558504C cmp eax,4C505845
00375110 - 75 FE jnz short 00375110(我改为jz short 00375110)
00375112 61 popad
改好了,可以拦截断点了;
然后下code区段内存断点;,并没有直接来到OEP???????????
而是来到这里:
004220FF A4 movs byte ptr es:[edi],byte ptr ds:[esi](这并不是OEP,虽然系统不同,但这差别太大,楼主帮偶看一下)?????????
00422100 B3 02 mov bl,2
00422102 E8 6D000000 call PEQuake.00422174
00422107 ^ 73 F6 jnb short PEQuake.004220FF
00422109 33C9 xor ecx,ecx
0042210B E8 64000000 call PEQuake.00422174
00422110 73 1C jnb short PEQuake.0042212E
00422112 33C0 xor eax,eax
00422114 E8 5B000000 call PEQuake.00422174
00422119 73 23 jnb short PEQuake.0042213E
0042211B B3 02 mov bl,2
0042211D 41 inc ecx
楼主帮偶看一下,谢谢,感激不尽