我了解旧的Procmon及其前身(filemon, regmon等)使用虚拟驱动程序来挂钩内核。然而,Patchguard可以防止64位Vista+上的SSDT挂钩等。
这是我的理解,Procmon现在使用一个迷你过滤器驱动程序文件IO监控和ETW网络监控。但是,我不清楚它如何监控注册表访问和进程/图像/线程事件?它也使用ETW吗?
内核中有一堆监控支持的回调:
-
registry -> http://msdn.microsoft.com/en-us/library/windows/hardware/ff545879(v=vs.85).aspx
-
进程/图像/线程通知- PsSetCreateProcessNotifyRoutineEx/PsSetLoadImageNotifyRoutine/PsSetCreateThreadNotifyRoutine -> http://msdn.microsoft.com/en-us/library/windows/hardware/ff559917(v=vs.85).aspx
- 对象管理器回调句柄监控-> http://msdn.microsoft.com/en-us/library/windows/hardware/ff558692(v=vs.85).aspx
有一些限制,但自vista以来它们功能齐全。无需为任何监视活动修补任何内部表