【嵌入式ARM汇编基础】-ELF文件格式内部结构详解(三)
ELF文件格式内部结构详解(三)
文章目录
- ELF文件格式内部结构详解(三)
- 12、动态部分和动态加载
- 13、依赖加载(需要)
- 14、程序重定位
- 14.1 静态重定位
- 14.2 动态重定位
- 14.3 全局偏移表 (GOT)
- 14.4 过程链接表 (PLT)
12、动态部分和动态加载
ELF 文件格式中的 .dynamic 部分用于指示加载器如何链接并准备执行二进制文件。
我们可以使用 readelf -d 命令详细查看 ELF 文件的动态部分。
这些段由加载器处理,最终生成一个可运行的程序。与我们见过的其他表一样,每个条目都有对应的类型,详细说明了如何解释它,以及其数据相对于动态段起始位置的位置。
令人困惑的是,动态头文件还维护着自己的符号表和字符串表,它们独立于 ELF 文件的主字符串表和符号表。它们的位置由 STRTAB 和 SYMTAB 表项指定,其大小分别由 STRSZ 字段(以字节为单位的字符串表大小)和 SYMENT 字段(动态符号表中的符号条目数)决定。