对于 Win32 可移植可执行文件 (PE)
- 如何获取使用的类列表
- 如何获取给定类的偏移量
一个类没有偏移量——它的方法有偏移量。如果 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 加载时自动提取这些符号。