查看elf文件各个节段信息的方法
①objdump命令
-a、 --存档头显示存档头信息
-f、 --文件头显示整个文件头的内容
-p、 --私有头显示对象格式特定的文件头内容
-P、 --私有=选择,选择。。。显示对象格式特定内容
-h、 --[节-]标题显示节标题的内容
-x、 --所有标题显示所有标题的内容
-d、 --反汇编可执行部分的显示汇编程序内容
-D、 --分解所有节的所有显示汇编程序内容
--disassemble=<sym>显示<sym>中的汇编程序内容
-S、 --源代码与反汇编混合使用
-s、 --完整内容显示请求的所有节的完整内容
-g、 --调试在对象文件中显示调试信息
-e、 --调试标记使用ctags样式显示调试信息
-G、 --stabs显示(原始形式)文件中的任何stabs信息
-W[lliaprmffsortutgackk]或
--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,
=frames interp,=str,=loc,=Ranges,=pubtypes,
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,
=地址,=cu U索引,=链接,=跟随链接]
在文件中显示DWARF信息
--ctf=节显示节的ctf信息
-t、 --符号显示符号表的内容
-T、 --动态符号显示动态符号表的内容
-r、 --重新记录显示文件中的重定位项
-R、 --dynamic reloc显示文件中的动态重定位项
@<file>从<file>读取选项
-v、 --版本显示此程序的版本号
-i、 --支持的信息列表对象格式和体系结构
-H、 --帮助显示此信息
②readelf命令
-a——全部等同于-h-l-S-S-r-d-V-a-I
-h——文件头显示ELF文件头
-l——程序头显示程序头
--分段--程序头的别名
-S—节标题显示节的标题
--节的别名--节头
-g——截面组显示截面组
-t—节详细信息显示节详细信息
-e——相当于-h-l-S的标题
-s--syms显示符号表
--符号--符号的别名
--dyn syms显示动态符号表
-n—注释显示核心注释(如果存在)
-r—relocs显示重新定位(如果存在)
-u—展开显示展开信息(如果存在)
-d—动态显示动态部分(如果存在)
-V—版本信息显示版本部分(如果存在)
-A——特定于架构的显示特定于架构的信息(如果有)
-c—存档索引显示存档中的符号/文件索引
-D—显示符号时使用动态使用动态节信息
-x—十六进制转储=<number | name>
将节<number | name>的内容转储为字节
-p—字符串转储=<number | name>
将节<number | name>的内容转储为字符串
-R—重新定位转储=<number | name>
将节<number | name>的内容转储为重新定位的字节
-z—卸载前对解压缩部分进行解压缩
-w[lliaprmffsortutgackk]或
--调试转储[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,
=frames interp,=str,=loc,=Ranges,=pubtypes,
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,
=地址,=cu U索引,=链接,=跟随链接]
显示DWARF调试节的内容
--dwarf depth=N不显示深度N或更大的模具
--dwarf start=N显示模具以N开始,深度相同
或更深
--ctf=<number | name>显示节中的ctf信息<number | name>
--ctf父项=<number | name>
使用节<number | name>作为CTF父级
--ctf符号=<数字|名称>
使用节<number | name>作为CTF外部符号选项卡
--ctf字符串=<number | name>
使用节<number | name>作为CTF外部strtab
-I——桶列表长度直方图显示
-W—允许输出宽度超过80个字符
@<file>从<file>读取选项
-H—帮助显示此信息
-v--version显示readelf的版本号