gpt4 book ai didi

.net - 跟踪 Windows API 调用

转载 作者:行者123 更新时间:2023-11-28 17:53:24 25 4
gpt4 key购买 nike

我目前正在使用 .NET/Python 中的工具来监视系统上的某些事件,例如编写特定的注册表项或创建具有特殊名称的文件。

我评估了很多可能性,因为我不必关心 WinXP 支持,我正在使用 Windows 事件跟踪来获取所有文件和注册表事件的实时流,这工作正常(通过消费事件来自 NT 内核记录器)。

现在,我必须扩展我的工具来监控对某些 Windows API 函数的所有调用,例如 WriteProcessMemoryNtUnmapViewOfSectionVirtualAllocEx。我发现有很多工具可以让我跟踪来自单个进程的所有 API 调用,但 Hook 所有进程并不是一个好主意,对吗?

现在我想知道是否有可能为此使用 ETW。内核是否提供任何通知我 API 调用的提供程序?如果没有,我还能做什么?

总结:如果我想捕获 API 调用,是否必须 Hook 每个进程?

最佳答案

一般来说,拦截系统API调用有两种方式;用户模式或内核模式拦截。对于用户模式 ​​API 拦截,您必须 Hook 每个进程以准确捕获/重定向对所需 API 函数的每次调用。内核模式拦截避免了 Hook 每个进程的需要,但也需要高级的底层知识(以及交叉签名的代码签名证书以在内核模式下运行您的代码)。

有许多可用的库将提供 API Hook 功能,但我相信我所知道的所有库都主要在用户模式下工作,即需要将系统范围的 DLL 注入(inject)到进程中。

关于.net - 跟踪 Windows API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5652908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com