在Windows Server 2008上,我有一个实例,其中有人正在写入应用程序的指令内存。有人写的大部分是零,每16到32个字节散布一个不同的标记字节,没有模式。我非常确定,为了写入指令存储器,有人必须拨打VirtualProtect
。我也很确定它是另一个应用程序(可能是病毒扫描程序)。
有没有办法跟踪VirtualProtect
的内核调用?
是否有另一种方法可以找出谁可能正在解锁和/或写入指令空间?
我查看了WinDbg
和Performance Monitor
答案 0 :(得分:0)
如果您想知道什么进程正在调用VirtualProtectEx(),则需要将DLL注入到每个正在运行的进程中,并钩住VirtualProtectEx(),然后可以记录所有结果。
您可以使用AppInit DLL机制来执行此操作,这使每个进程都可以加载您指定的DLL。为了方便挂接,您可以使用MS Detours。