我了解较旧的 Procmon 及其前身(filemon、regmon 等)使用虚拟驱动程序来挂钩内核。但是,Patchguard 在 64 位 Vista+ 上阻止 SSDT 挂钩等。
据我了解,Procmon 现在使用 minifilter 驱动程序进行文件 IO 监控,使用 ETW 进行网络监控。但是,我不清楚它如何监控注册表访问和进程/图像/线程事件?它是否也对这些使用 ETW?
我了解较旧的 Procmon 及其前身(filemon、regmon 等)使用虚拟驱动程序来挂钩内核。但是,Patchguard 在 64 位 Vista+ 上阻止 SSDT 挂钩等。
据我了解,Procmon 现在使用 minifilter 驱动程序进行文件 IO 监控,使用 ETW 进行网络监控。但是,我不清楚它如何监控注册表访问和进程/图像/线程事件?它是否也对这些使用 ETW?
内核中有很多用于监控支持的回调(从 xp 开始):
注册表-> 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
在 xp 上是一些限制,但由于 vista 他们功能齐全。无需为任何监控活动修补任何内部表。