LiK*_*Kao 6 linux bare-metal objdump disassembly
我目前正在构建一个可执行的裸机,它包含一些包含代码的特殊部分.但是,当我这样做时,objdump -d
我只获取.text
和.init.text
部分的代码.该联机帮助页objdump
仅表示在使用该-d
选项时"仅拆解那些预计包含说明的部分" .这些是哪些部分,以及如何objdump
解释要解码的部分?我知道我也可以使用该-D
选项来获得所有部分的完整解码,但这通常比我需要的要多得多.
objdump
内部用于libbfd
获取部分信息.objdump
传递一个回调bfd_map_over_sections()
调用每个部分的回调.调用时,libbfd
将a传递asection *
给具有成员的回调type
.如果类型包含标志,SEC_CONTENTS | SEC_CODE
则在传递选项objdump
时会对其进行反汇编-d
.
进入libbfd
是相当困难的,我希望类型检测取决于架构,但我希望我至少给了你正确的指针.(可能在有更多时间的时候我会深入研究并扩展答案)..
顺便说一句,如果您需要一个脚本来过滤掉objdump -D
您可能会使用的感兴趣的部分sed
,如下所示:
# ------------Place section names here ---------------vvv
objdump -D object.o | sed -rn '/Disassembly of.*\.(comment|text)/{:a;p;n;/Disassembly of/!ba}'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
212 次 |
最近记录: |