0

对于 Win32 可移植可执行文件 (PE)

  • 如何获取使用的类列表
  • 如何获取给定类的偏移量
4

1 回答 1

2

一个类没有偏移量——它的方法有偏移量。如果 PE 文件是 DLL,并且导出了一个类,则可以从导出的函数表中获取其方法的偏移量。名称将被破坏。修改方案是特定于编译器和版本的。

您可以使用 DUMPBIN 工具(Visual Studio 或 Platform SDK 提供)来查看导出表。IIRC,它甚至可以为您解开名称。如果您想以编程方式执行此操作,请使用 ImageHlp API 中的函数 -ImageLoad()等等。

没有很好的方法来获取未导出的类方法的偏移量。

此外,可以在 MAP 文件、调试符号或 PDB 文件中找到偏移量。如果它是第三方产品,那么您很可能无法使用这些产品。

重新编辑:Microsoft DLL。Microsoft 通过 Microsoft Symbol Server 为他们的许多文件(Win32 和 .NET)提供调试符号。自 v. 2005 以来的 Visual Studio 可以在 DLL 加载时自动提取这些符号。

于 2012-06-22T01:41:30.103 回答