获取Windows可执行文件的函数



我正在寻找从Windows程序集(exe、dll、ocx)中枚举检索函数的解决方案。我相信WMI中有一些工具,但我找不到。它必须接近.NET的System.Reflection函数,但我需要独立分析Windows可执行文件平台,System.Reflective仅适用于.NET应用程序。

反射是某些语言的一个特性。一般的可执行文件或二进制文件可能不包含(太多)有关内部函数的信息。

PE格式的二进制文件确实列出了导出的函数(尽管不一定要按名称)。您可以使用Visual Studio附带的名为dumpbin的命令行工具来查看这些内容。例如,dumpbin /exports将列出导出的函数。

如果您想要完整的签名信息,以下是您的选项。

  • 托管:可以使用反射
  • COM:一些导出COM对象的二进制文件将支持IDispatch,这将允许您查询公开的API
  • 对于其他一切,您将不得不转到调试符号。如前所述,二进制文件不需要存储签名数据,因此它们不会保留这些数据。您可以使用DIA SDK来查询.PDB文件,但请记住,大多数开发人员不会提供完整的符号文件
  • 如果你没有符号,那么任何导出函数的名称都是最接近的(当符号不可用时,调试器也会依赖它)。要通过程序访问,请参阅PE COFF规范

相关内容

  • 没有找到相关文章