星空网 > 软件开发 > 操作系统

ELF Format 笔记(十四)—— 段内容

ilocker:关注 Android 安全(新手) QQ: 2597294287

一个段 (segment) 由一个或多个节 (section) 组成,但这对 android linker 是透明的,linker 在加载程序时没有用到节信息。所以对于一个 so 文件,修改 ELF Header 中和节有关的成员 (e_shoff、e_shentsize、e_shnum) 不会影响程序运行。

文本段 (也叫代码段) 包含只读指令和数据,通常包含如下这些节:

ELF Format 笔记(十四)—— 段内容images/loading.gif' data-original="http://images2015.cnblogs.com/blog/763648/201511/763648-20151124180141515-656123620.png" /> 

通常 android so 的第一个 LOAD 段就是文本段:

ELF Format 笔记(十四)—— 段内容

数据段包含可写的数据和指令,通常包括如下这些节:

ELF Format 笔记(十四)—— 段内容

通常 android so 的第二个 LOAD 段就是数据段:

ELF Format 笔记(十四)—— 段内容

.got 和 .plt 节保存的信息用于支援“位置无关代码”,在动态链接的过程中会修改 .got 节。

.bss 节的类型是 SHT_NOBITS,表示在文件中不占空间。但 .bss 在段的内存映像中是占用空间的,通常位于段的末尾,用于存放未初始化的全局变量,所以数据段的 p_memsz 会比 p_filesz 大一些。




原标题:ELF Format 笔记(十四)—— 段内容

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流