跟踪Windows API调用

| 我目前正在使用.NET / Python中的工具来监视系统上的某些事件,例如编写特定的注册表项或使用特殊名称创建文件。 我评估了许多可能性,而且由于我不必关心WinXP的支持,因此我使用Windows的事件跟踪来获取所有文件和注册表活动的实时流,并且此方法工作正常(通过消耗来自NT内核记录器)。 现在,我必须扩展我的工具,以监视对某些Windows API函数(例如
WriteProcessMemory
NtUnmapViewOfSection
VirtualAllocEx
)的所有调用。我找到了很多工具,可以跟踪单个进程中的所有API调用,但是挂接所有进程不是一个好主意,不是吗? 现在,我想知道是否有可能使用ETW。内核是否提供任何提供程序来通知我API调用?如果没有,我还能做什么? 简介:如果要捕获API调用,是否必须挂接每个进程?     
已邀请:
一般来说,拦截系统API调用有两种方法:用户模式或内核模式拦截。对于用户模式API拦截,您将必须挂接每个进程,以准确捕获/重定向对所需API函数的每个调用。内核模式拦截可避免钩住每个进程的需要,但也需要高级的底层知识(以及交叉签名的代码签名证书才能在内核模式下运行代码)。 有许多可用的库可提供API挂钩功能,但我相信所有已知的库都主要在用户模式下工作,即要求将系统范围的DLL注入到进程中。     

要回复问题请先登录注册