【问题标题】:(Windows) Monitoring API calls in C(Windows) 在 C 中监控 API 调用
【发布时间】:2010-10-17 17:53:45
【问题描述】:

是否可以用 C 监控系统上的 API 调用?

【问题讨论】:

    标签: c winapi api


    【解决方案1】:

    在逐个函数的基础上,您可以使用Microsoft Detours。它通过重写函数入口点以指向您的代码来拦截 API 调用。

    【讨论】:

      【解决方案2】:

      API Monitoring Tools 拥有大量 API 监控工具。我使用 PIX 来监控 DirectX 调用。你应该试试Rohitab's Api Monitor

      【讨论】:

        【解决方案3】:

        另一个值得关注的工具是来自 Mark Russinovich 的 ProcessMonitor。但是,它不会监控所有 api 调用。

        【讨论】:

        • 它使用自定义设备驱动程序。
        • 是的,它这样做而不是将 DLL 注入到进程中,因为它引入的古怪问题更少,并且对被检查进程的侵入性更小。但是,这确实意味着您需要比普通用户更多的权限才能运行它。
        【解决方案4】:

        Debugging Tools for Windows 包包含一个名为logexts.dll 的调试器扩展,它可以记录 Win32 API 函数调用。当您不想附加调试器时,它还有一个名为 logger.exe 的单独前端程序。

        【讨论】:

          【解决方案5】:

          虽然它不是免费的,但您可能需要查看API Monitor。它能够记录到 XML 文件,因此您可以通过在您选择的应用程序中读取此文件来确定已调用的 API。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多