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