0
A
回答
2
一个类没有偏移量 - 它的方法有偏移量。如果PE文件是一个DLL,并且导出了一个类,则可以从导出的函数表中获取其方法的偏移量。名字将被改变。 mangling方案是编译器和版本特定的。
您可以使用DUMPBIN工具(Visual Studio或Platform SDK提供)来观察导出表。 IIRC,它甚至可以为你取消名字。如果您想以编程方式执行此操作,请使用ImageHlp API中的函数 - ImageLoad()
等等。
有没有好办法获得非出口类方法的偏移量。
此外,偏移可以在MAP文件或调试符号或PDB文件中找到。如果它是第三方产品,那么最有可能的是,这些产品将无法供您使用。
编辑re:Microsoft DLLs。 Microsoft通过Microsoft Symbol Server为他们的许多文件(Win32和.NET)提供调试符号。 Visual Studio自2005年以来可以在加载DLL时自动拖动这些符号。
相关问题
- 1. 使用SqlDataReader获取二进制数据
- 2. 使用NSFetchRequest获取二进制数据
- 3. 从二进制获取位
- 4. 使用SVM进行二进制分类
- 5. 使用LSTM进行二进制分类
- 6. Win32 ::串行二进制通信
- 7. 使用类的二进制搜索树
- 8. 使用C++获取一个进程的cpu使用(win32)
- 9. 使用PHP读取二进制文件
- 10. 无法获取图标从二进制
- 11. Hazelcast IMap以二进制形式获取
- 12. libpq:获取二进制日期
- 13. 转换为二进制 - 获取IndexOutOfBoundsException
- 14. 从HBase获取二进制数据
- 15. 获取从二进制面膜(分割)
- 16. 从二进制文件获取datetime
- 17. 从iPhone获取二进制文件
- 18. 如何从png获取二进制代码使用javascript
- 19. 使用二进制掩码获取感兴趣的区域itk
- 20. 使用Java从COM端口获取Arduino二进制文件
- 21. 如何使用redux-observable正确地获取二进制映像?
- 22. 如何使用eclipse C++获取二进制文件?
- 23. 使用XMLHttpRequest在Firefox扩展中获取二进制数据
- 24. 从外部库的二进制文件中获取类
- 25. 从二进制文件获取值类型c#
- 26. 如何用Win32 ASM做二进制文件I/O?
- 27. 过滤使用二进制
- 28. 使用二进制搜索
- 29. 使用二进制信号
- 30. 十进制到二进制(二进制)
当你说没有好的方法,那么有一种方法,但它不容易吗?我已经得到了exe和dll的导出函数。 – xybrek
有没有不好的方法:)除非明确保留(例如在调试符号或MAP文件中),否则C++类名在编译和链接后会丢失。即使你反汇编了这个文件,你也可以看到函数的开始和结束位置,但是你永远不会知道该函数的编译时间名称是什么。 C++不是一种反映的语言。 –
顺便说一句,我得到了类偏移的想法是从这里的答案:http://stackoverflow.com/questions/11126547/reading-win32-variables,从你说的这意味着从这个建议的解决方案是错误的? – xybrek