在Win32二进制文件中获取类偏移量

时间:2012-06-22 01:29:15

标签: c++ winapi

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

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

1 个答案:

答案 0 :(得分: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时自动提取这些符号。