最近想跟踪一下SetWindowsHooks一直到内核的执行过程。目标系统是XPSP2(vpc),
我用的方法是用户态跟踪到sysenter时,使用bp nt!KiFastCallEntry.然后执行G,当断在KifastCallEntry后,有时候按F11,或者输入T,结果初夏如下错误
Breakpoint 2 hitnt!KiFastCallEntry:804de6f0 b923000000 mov ecx,23hkd> tAccess violation - code c0000005 (!!! second chance !!!)822b9002 298200000000 sub dword ptr [edx],eax
看起来执行的指令不是mov ecx,23h。这是怎么回事呢。
原来是这样。我记得以前用softice就不会出现这样的问题。好像是把被调试的线程优先级提高。windbg有这样的功能吗或者相似的办法来解决这个问题呢。如果老是想这样发生问题。特别是在未知的OS中的代码,很容易迷路啊。。。
还有一个问题就是 我最后看到调用的系统服务居然是NtUserPeekMessage(本来应该是NtUserSetWindowsHookEx)用。我一直使用的F11(或者输入命令T)。这真让我疑惑。。。