ELF文件查看利器之readelf和objdump用法
Android在NDK开发工具中提供了readelf,用来帮助开发者查看编译后目标文件的组成结构和具体内容。
常用的有以下几个功能选项:
1)-h或者--file-header
显示在ELF文件头里包含的所有信息,:
同样是显示ELF文件头的信息,readelf比objdump要详细的多。
2)-l或者--program-headers或者--segments
显示程序头表信息,包扩有几个段,每个段的属性,以及每个段中包含有哪几个节(Section):
3)-S或者--section-headers或者--sections
显示节区表内的所有信息,包括每个节的属性,注意这里是用的是大写的“S”:
4)-t或者--section-details
用来显示所有节的详细信息,感觉上但从信息量上来说,和前面的“-S”没有什么大的不同:
5)-e或者--headers
显示所有头的信息,包括ELF文件头、程序头和节头,也就是“-h -l -S”的组合。
6)-s或者--syms或者--symbols
显示符号表的信息,包含静态符号表(.symtab)和动态符号表(.dynsym):
如果只关心动态符号表,可以直接使用“--dyn-syms”。
7)-r或者--relocs
显示所有重定位入口的信息,例如:
8)-d或者--dynamic
显示动态节区的内容
9)-x或者--hex-dump=<number|name>
显示某个节区的二进制码,具体哪个节可以用该节的编号或者名字来指定,例如“-x .text”:
总体看来,就察看ELF内容来说,readelf和objdump在很多方面还是非常相似的,可以互补。
但是如果想看ELF文件中的汇编代码,还是objdump更强一点。
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”节区中的内容。
原文:https://blog.csdn.net/roland_sun/article/details/36649155
ELF文件查看利器之readelf和objdump用法相关推荐
- android objdump 用法,ELF文件查看利器之objdump用法
Android在NDK开发工具中提供了objdump,用来帮助开发者查看编译后目标文件的组成结构和具体内容. 常用的有以下几个功能选项: 1)-a或者--archive-headers 这个参数起到的 ...
- linux elf 文件查看工具 readelf
Android在NDK开发工具中提供了readelf,用来帮助开发者查看编译后目标文件的组成结构和具体内容. 常用的有以下几个功能选项: 1)-h或者--file-header 显示在ELF文件头里包 ...
- Python爬虫利器之Beautiful Soup的用法,以及实例!
可以利用 pip 来安装: pip install beautifulsoup4 源代码: import requests r = requests.get("https://python1 ...
- 几个命令查看ELF文件的“秘密”
首发:公众号[编程珠玑] 作者:守望先生 网站:https://www.yanbinghu.com/2019/10/13/54745.html 前言 在Linux中,可执行文件的格式是ELF格式,而有 ...
- GCC的编译过程以及其同盟成员和ELF文件的分析
文章目录 一.GCC的同盟成员介绍 1.GCC的介绍 2.同盟成员之Binutils 3.同盟成员之C 运行库 二.GCC的详细编译过程 1.编译的简介 2.预处理(Preprocessing) 3. ...
- 使用readelf和objdump查看ELF常见段
文章目录 一.查看可重定位目标文件中的段 二.查看静态链接中的段 三.查看动态链接中的段 四.readelf常用命令 一.查看可重定位目标文件中的段 可重定位目标文件中给出了其中常见的段,解释了每个段 ...
- readelf命令和ELF文件详解
ELF(Executable and Linking Format)是一个定义了目标文件内部信息如何组成和组织的文件格式.内核会根据这些信息加载可执行文件,内核根据这些信息可以知道从文件哪里获取代码, ...
- 使用readelf分析一个elf文件完整结构
编译器编译源代码后生成的文件叫目标文件: 从结构上来说与可执行文件一致,只是还没有经过动态链接的过程,有符号还没有被调整.与真正可执行文件稍有区别. 可执行文件格式涵盖了程序的编译.链接.装载和执行的 ...
- readelf和ldd分析elf文件
1. elf 文件格式 linux系统中,gcc编译器编译出的object文件.可执行文件都属于elf文件. elf文件由三个部分组成:elf header.program headers|secti ...
最新文章
- mysql $区别_mysql 与oracle区别
- 《搜索引擎-信息检索实践》7.2.1 分类应用与检索/BM25检索模型
- [转]ESP8266使用详解
- makefile多目录的.c 格式.cpp混合编译
- Acwing第 27 场周赛【完结】
- AssetManager (资源路径+当前手机配置信息)
- 开发大会上,前微软CEO放出的狠话!.NET开发随时起飞,你准备好了吗?
- 图文详解mina框架
- 小鹏P5预售价公布:16-23万元 自动驾驶软件单独购买
- TMS320C55x的指令系统
- SQL ISNULL 函数
- oracle去除逗号函数,oracle逗号分隔函数
- php转换emoji表情为图片输出小程序,微信小程序中使用emoji表情相关
- 华尔街为何热捧优酷网?
- 边框虚线html代码是,网页虚线代码/表格边框虚线代码大全
- 【UI】优秀的网站欣赏以及分析
- Gvim开发环境配置笔记--Windows篇(转)
- Curator的基本使用
- 必看:重装操作系统的20条原则
- 求助FC上的一个c++代码实现丧心病狂的走迷宫小游戏!
热门文章
- 三国游戏(贪心算法)
- cpuz检测硬件真假_重磅!亚马逊首推智能眼镜和戒指,昨夜甩出15款硬件,Echo家族爆发...
- Python实现生命游戏(Game of Life)
- 50etf期权对冲策略怎么玩?
- SQL跟踪步骤--图文演示
- Java项目:局域网内实现中控(远程开关机)
- 外文文献看不懂——知云文献翻译神器送给你
- mysql官方示例employees数据导入
- 全网最详细软件测试基础知识,零基础自学的【建议收藏】
- 《安富莱嵌入式周报》第300期:几百种炫酷灯阵玩法, USB Web网页固件升级,波士顿动力整活,并联二极管问题,VisualStudio升级,STM32C0