【问题标题】:Extract Raw Machine Code of Function From .o Object File? [duplicate]从.o 目标文件中提取函数的原始机器代码? [复制]
【发布时间】:2018-11-12 01:53:39
【问题描述】:

如何从 .o 目标文件中提取函数的原始机器代码?使用 g++ 从 gnu c++ 构建。文件格式为 32 位可重定位 LSB ELF,架构 i386。有什么想法吗?提前致谢

【问题讨论】:

  • 这是否给出了特定功能的原始机器代码?
  • 点击上面手册页的链接——有一个反汇编选项,你也可以找到一个选项来转储原始字节。请注意,由于 .o 文件尚未链接,因此将有功能/数据地址等的占位符,需要在链接时解析。
  • 参见:readelf

标签: c++ x86 disassembly i386 object-files


【解决方案1】:
objdump -dw mybinary

上述命令始终有效,但如果您在启用调试的情况下编译(即 g++ -g 选项),objdump 会提供更人性化的结果。

【讨论】:

  • 我喜欢objdump -drwC -Mintel-r 提供符号重定位信息,这在 .o 中是必需的,因为外部符号的地址仍然全为零(或者实际上是相对于某个符号的偏移量),而不是真实地址。 -C 是 C++ 名称拆解。
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
相关资源
最近更新 更多