获取Windows可执行文件的功能

时间:2013-02-20 19:39:48

标签: .net windows reflection executable

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

如果您需要完整的签名信息,可以选择这些。

  • 管理:您可以使用Reflection
  • COM:导出COM对象的一些二进制文件将支持IDispatch,这将允许您查询公开的API。
  • 除此之外,您还必须转到调试符号。如前所述,二进制文件不需要存储签名数据,因此它们不会保留它。您可以使用DIA SDK查询.PDB文件,请记住,大多数开发人员都不会提供完整的符号文件。
  • 如果您没有符号,那么任何导出函数的名称都是您将获得的最接近的函数(并且正是当符号不可用时调试器所依赖的函数)。要以编程方式访问它,请参阅PE COFF规范。