《CSAPP》 可重定位目标文件格式

2023-05-31,,

可重定位目标文件

ELF文件

ELF头以一个16字节的序列开始,这个序列描述了生成该文件的系统的字的大小字节顺序。ELF头剩下的部分包含帮助链接器语法分析和解释目标文件的信息。其中包括ELF头的大小、目标文件类型、机器类型、节头部表的文件偏移,以及节头部表中的条目大小和数量。
夹在ELF头和节头部表之间的都是节。一个典型的ELF目标文件包括:

.text
已编译程序的机器代码
.rodata
只读数据
.data
已初始化的全局C变量
.bss
未初始化的全局C变量。在目标文件中这个节不占据实际的空间,仅仅是一个占位符。
.symtab
一个符号表,它存放在程序中定义和引用的函数和全局变量的信息。
.rel.text
一个.text节中位置的列表
.rel.data
被模块引用或定义的任何全局变量的重定位信息。
.debug
一个调试符号表。只有以-g选项调用编译驱动程序才会得到这张表。
.line
原始C源程序中的行号和.text节中机器指令之间的映射。只有以-g选项调用编译驱动程序时才会得到这张表。
.strtab
一个字符串表,内容包括.symtab和.debug节中的符号表,以及节头部中的节名字。字符串表就是以null结尾的字符串序列。

《CSAPP》 可重定位目标文件格式的相关教程结束。

《《CSAPP》 可重定位目标文件格式.doc》

下载本文的Word格式文档,以方便收藏与打印。