【问题标题】:Capture Portable Executable (PE) EXE internal function call [closed]捕获可移植可执行文件(PE)EXE内部函数调用[关闭]
【发布时间】:2026-02-18 03:40:01
【问题描述】:

如何捕获/记录 EXE 文件的所有本地函数调用?API 监控工具捕获 windows API 函数调用,我想捕获本地函数调用,例如当用户单击某个按钮时。

问候,

【问题讨论】:

  • 您要查找的工具称为“调试器”。
  • 当然这叫调试器。我想和 API 监控工具一样。用于捕获特定事件的函数调用的实用程序。
  • @JemoGlemo 所以基本上......一个调试器。

标签: windows debugging portable-executable apimonitor


【解决方案1】:

API 监视器之所以起作用,是因为它很容易判断 CPU 控制何时从进程转移到操作系统。您要求的是监视 CPU 指令指针何时在同一进程内存空间内从一个地方移动到另一个地方。执行此操作的工具称为调试器。 Windows 上的调试器示例包括 Visual Studio、WinDbg 或 NTSD。

按照难度递增的顺序,您可以:

1) 将您想要的遥测数据添加到源代码并重新编译可执行文件。

2) 如果您有构建符号(通常是 PDB 文件),请连接调试器并在您感兴趣的函数上设置断点/跟踪点。

3) 如果您没有来源,那么任务实际上与 #2 相同,但要困难得多。您仍然连接一个调试器,但现在您将自己跟踪程序以确定哪些内存地址对应于您想要的功能,然后设置断点。

【讨论】:

  • 是的,我没有源代码。不需要设置断点,任务是将执行的每个本地函数调用记录在EXE文件中并保存到日志文件中。该实用程序应在运行时附加到 EXE。我想我必须开发一个自定义实用程序来做我想做的事。