一、EnableWindow 反跟踪
代码:--------------------------------------------------------------------------------
003B0233 56 push esi
003B0234 FFD7 call edi
003B0236 8985 94394000 mov dword ptr ss:[ebp+403994],eax; USER32.EnableWindow
003B023C 6A 00 push 0//改为:push 1 ★
003B023E FFB5 A4394000 push dword ptr ss:[ebp+4039A4]
003B0244 FFD0 call eax ; USER32.EnableWindow
003B0246 E8 0A000000 call 003B0255
--------------------------------------------------------------------------------
EnableWindow这函数为何会成为反跟踪,不解?有请fly道明。。。
我这里也是XP和OD1.1b,按你的步骤一一顺序照做,到了这里出问题(出问题的地方强行Dump还是可以的):
花指令晃眼。Ctrl+B 在当前位置下搜索16进制值:9D EB 找到在0040B030处
代码:--------------------------------------------------------------------------------
0040B02D 83C4 04 add esp,4
0040B030 9D popfd//下断,F9断下 [这个偶也能到达,接着就单步F7往下走。]
0040B031 EB 01 jmp short eXcalibu.0040B034
0040B034 33C0 xor eax,eax
0040B036 64:8F00 pop dword ptr fs:[eax]
0040B039 83C4 0C add esp,0C
0040B03C E8 01000000 call eXcalibu.0040B042
0040B042 58 pop eax
0040B043 9D popfd
0040B044 61 popad
0040B045 E8 15000000 call eXcalibu.0040B05F [到这就出问题了,光标停在这行指令,OD说无法调试,当然下面的就无法进行下去了!]
0040B057 68 203A4000 push eXcalibu.00403A20
0040B05C EB 01 jmp short eXcalibu.0040B05F
--------------------------------------------------------------------------------
在0040B062处中断几次就走到OEP啦 [奇怪:fly请问你没有在0040B062处下断,为何来个“中断几次就走到OEP”?上面偶已经不能动了,在此处下断也没用]
代码:--------------------------------------------------------------------------------
0040B05F 58 pop eax
0040B060 40 inc eax
0040B061 50 push eax ; eXcalibu.00403A21
0040B062 C3 retn
//返回00403A21 飞向光明之巅!:-)
--------------------------------------------------------------------------------