我目前正在开发一个.NET/Python工具,用于监视系统上的某些事件,例如写入特定的注册表键或创建带有特殊名称的文件。
经过评估,由于我不必关心WinXP支持,因此我使用Windows事件跟踪来获取所有文件和注册表活动的实时流,这很好用(通过从NT内核记录器中消耗事件)。
现在,我需要扩展我的工具以监视对某些Windows API函数的所有调用,例如WriteProcessMemory
,NtUnmapViewOfSection
或VirtualAllocEx
。我找到了许多工具,可以追踪单个进程的所有API调用,但是挂钩所有进程不是一个好主意,对吧?
现在我想知道是否有可能使用ETW来做这件事。 内核提供了任何通知我API调用的提供程序吗? 如果没有,我还能做什么?
总结:如果我想捕获API调用,我是否必须挂钩每个单独的进程?