【问题标题】:How to monitor Windows system API calls an application makes?如何监控应用程序进行的 Windows 系统 API 调用?
【发布时间】:2019-06-27 04:25:20
【问题描述】:

我正在尝试构建一个应用程序,该应用程序将程序进行的 Windows 系统 API 调用作为输入。为此,我需要一种方法来实时记录任何程序进行的 API 调用。

我尝试过使用 NtTrace,但它似乎无法在不同系统之间提供一致的结果。我尝试使用基于 GUI 的 API 监视器,但它们对我的应用程序来说相当沉重和缓慢。

有没有其他方法可以实现这一目标?也许是 Python 或 C++ 库可以做到这一点?

【问题讨论】:

  • “我需要一种方法来实时记录任何程序进行的 API 调用”——这本身就是一个项目!看看你是否可以通过检测一些输出/工件来解决这个问题,比如“找到打开的窗口”、“写入磁盘的文件”等。如果你选择这样做,这可能会有所帮助 - codeproject.com/Articles/44326/…codeproject.com/Articles/2082/API-hooking-revealed跨度>
  • 啊该死的! NtTrace 确实很有用,但它会减慢应用程序的速度,这是我不希望这样做的。我会查看您发布的链接。再次感谢!

标签: python c++ windows winapi


【解决方案1】:

Detours 是一个用于在 Windows 上监视和检测 API 调用的软件包。

Detours 是一个用于在 Windows 上监视和检测 API 调用的软件包。 Detours 已被许多 ISV 使用,也被 Microsoft 的产品团队使用。 Detours 现在可在标准开源许可证 (MIT) 下使用。这简化了使用 Detours 的程序员的许可,并允许社区使用开源工具和流程支持 Detours

Detours 与 Windows NT 系列操作系统兼容:Windows NT、Windows XP、Windows Server 2003、Windows 7、Windows 8 和 Windows 10。它不能被 Window Store 应用程序使用,因为Detours 需要这些应用程序不可用的 API。此 repo 包含 Detours 的 4.0.1 版本的源代码。

以源码形式分发:https://github.com/microsoft/Detours

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多