-
-
[原创]内功修炼之路—链接深入剖析
-
2015-10-6 15:48
6504
-
接着之前的文章,由于需要,对Linker这部分进行了比较深入的学习,主要是基于Linux ELF文件格式,本文参考了程序员的自我修养,深入理解计算机系统第七章链接,Linker & Loader, 和网上博客相关资源,Android Linker的源码版本是4.2.2. 在此与大家共享,也请大家多多指正~ (限于水平,难免会有错误、疏漏之处,请大家见谅)
下面是文章的目录架构:
Contents
一、 ELF文件格式 2
1. ELF Header 3
2. Section Header Table 4
3. ELF重定位表(.rel.data or .rel.text) 6
4. ELF符号表(.symtab) 7
二、静态链接基础 8
1. 链接时重定位(Relocation) 9
2. 重定位表(Relocation Table) 10
3. 指令修正 11
三、动态链接基础 12
1. 可执行文件的装载 12
2. 动态链接之地址无关代码(PIC Position-independent Code) 15
3. 动态链接之延迟绑定(PLT Procedure Linkage Table) 16
4. 动态链接相关结构 18
5. 动态链接的步骤与实现 20
四、Android Dynamic Linker(基于Android 4.2.2源码剖析) 21
1. 初始启动代码: 21
2. Bootstrap:_linker_init 21
3. soinfo_link_image 25
4. 加载依赖共享库 29
5. 可执行映像的重定位操作 33
6. 扫尾 35
看雪学院推出的专业资质证书《看雪安卓应用安全能力认证 v1.0》(中级和高级)!