对于 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 时自动提取这些符号。
关于c++ - 获取 Win32 二进制文件中的类偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149134/