ELF文件查看利器之objdump用法
来源:互联网 发布:知乎app for ios7.0 编辑:程序博客网 时间:2024/05/20 03:37
Android在NDK开发工具中提供了objdump,用来帮助开发者查看编译后目标文件的组成结构和具体内容。
常用的有以下几个功能选项:
1)-a或者--archive-headers
这个参数起到的作用和ar命令相似,用来看一个.a静态库文件中包含了哪些目标文件。
2)-f或者--file-headers
输出目标ELF文件头中包含的信息,例如:
表明这是个ELF文件,支持处理器指令集是armv5te,等等。总体来说,信息量有限。
3)-h或者--[section-]headers
输出目标文件中节表(Section Table)中所包含的所有节头(Section Header)的信息,例如:
可以看到,这个文件共有18个有效节区。从中,我们可以了解到每个节区的名字,大小,和文件头的偏移位置,对齐属性,以及其它的一些属性。
4)-x或者--all-headers
显示目标文件的所有头的信息,包括ELF文件头、程序头(Program Header)和节头(Section Header)。除了这些头之外,还包括动态节区(Dynamic Section)和符号表(Symbol Table)内的信息。例如:
5)-d或者--disassemble
反汇编目标ELF文件中包含可执行指令的哪些节区中的内容,例如:
如果有汇编语言的功底,就可以通过这个命令来探究目标文件中每个函数的实现逻辑,非常的方便。
6)-D或者--disassemble-all
-D与前面的-d类似,唯一的不同是,用-D会反汇编目标ELF文件中的所有内容,而前面的-d只会反汇编可执行代码的部分。
7)-s或者--full-contents
显示目标文件每个节区的二进制完整内容,对应的会显示该内容在目标文件中的偏移位置,还有将内容转换成ASCII码的形式,例如:
8)-S或者--source
混合显示源码和汇编代码,如果编译目标文件的时候指定了-g参数的话,效果会非常明显。否则,和-d参数没有什么区别,事实上-S参数默认包含了-d参数。
9)-t或者--syms
输出目标文件的符号表(Symbol Table),即目标ELF文件中名字叫做.symtab节内的内容。
10)-T或者--dynamic-syms
输出目标文件的动态符号表(Dynamic Symbol Table),即目标ELF文件中名字叫做.dynsym节内的内容,例如:
通过这张表内的信息,可以看出由本ELF文件中导出的符号,和需要从别的动态库中导入的符号。如果第三列显示“*UND*”表明这个符号在本ELF文件中未定义,也就是说这个符号要从别的动态库中导入,其它的情况表明这个符号由本ELF文件中定义。
11)-r或者--reloc
显示目标文件的静态重定位入口。
12)-R或者--dynamic-reloc
显示目标文件的动态重定位入口,例如:
这个参数仅仅对于动态目标文件有意义,比如动态库文件(.so)。
13)-j或者--section=<NAME>
表示只显示名字为“NAME”节区中的内容。
- 顶
- 0
- ELF文件查看利器之objdump用法
- ELF文件查看利器之objdump用法
- ELF文件查看利器之objdump用法
- ELF文件查看利器之readelf用法
- 对比objdump与readelf (elf 文件查看)
- 研究ELF文件的工具objdump&readelf
- objdump查看目标文件构成
- 如何查看ELF文件
- objcopy、 objdump作用 、(bin文件和ELF文件区别)
- Shell之objdump用法简介
- 分析elf文件的利器(常用命令)
- 分析elf文件的利器(常用命令)
- 分析elf文件的利器(常用命令)
- Objdump查看依赖so动态库文件
- objdump -p 查看库文件版本信息
- 查看ELF 文件版本信息
- [转载]objdump readref 查看elf的各节段的信息/运行时
- objdump用法
- 理解CNN
- 码农小汪-SPringMVC-基本的理解MVC 降低耦合性~依赖性
- Linux常用命令(关机与用户登录查看)
- 如何混合编译C语言和C++
- MySQL中关于JSON你不得不知道的那些事!
- ELF文件查看利器之objdump用法
- Android 7.0 WebView加载https出现空白页
- J2EE的TOMCAT服务器报The servlets named [x] and [y] are both mapped to the url-pattern[z] which is not per
- c++中关于SQLite中文乱码的解决方法
- Android ANR 分析解决方法
- SQLlite在安卓中的基本详解和简单使用
- ora 12541无监听程序
- 汉朝历史脉络图
- E/eglCodecCommon: **** ERROR unknown type 0x3a616572 (glSizeof,80)