作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我目前正在用 C 实现自己的 objdump。
对于我的 -s
选项,我必须显示 ELF 文件各部分的全部内容。
我做得很好,但我展示的部分比“真正的”objdump 多。
事实上,它并没有输出.bss
。 , .shstrtab
, .symtab
和 .strtab
部分。
我正在查看 sh_flags
Shdr
上的值结构,但我找不到任何逻辑...
为什么 objdump -s <ELF file>
不显示这些部分?
最佳答案
Why objdump -s does not shows these sections ?
Objdump 基于 libbfd
,它抽象掉了 ELF 的许多复杂性,并且是在对象往往仅具有三个部分时编写的。
因此,objdump
非常不足。除了不向您显示(某些)现有部分之外,它还可能“合成”根本不存在的部分,并执行其他奇怪的技巧。这更像是一个 libbfd
错误——它的抽象层根本不告诉 objdump 关于“丢失”的部分。
TL;DR:不要使用 objdump
。请改用 readelf
。
关于c - 为什么 objdump 不显示 .bss、.shstratab、.symtab 和 .strtab 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22160621/
我目前正在用 C 实现自己的 objdump。 对于我的 -s选项,我必须显示 ELF 文件各部分的全部内容。 我做得很好,但我展示的部分比“真正的”objdump 多。 事实上,它并没有输出.bss
我是一名优秀的程序员,十分优秀!