ELF文件结构描述
ELF Header 文件头 |
.text |
.data |
.bss |
other sections 其他段 |
Section header table 段表 |
String Tables 字符串表 |
Symbol Tables 符号表 |
ELF目标文件最前部是ELF文件头,包含描述整个文件属性
比如 ELF文件版本号,目标机器型号,程序入口地址等,接下来就是ELF文件各个段,其中与段有关的主要结构就是段表,该表描述了ELF文件包含所有段的信息,比如段名,段的长度,在文件中的偏移,读写权限及段的其他属性
ELF文件头
定义了
ELF魔数,总共四个字节,分别为0x7f,0x45,0x4c,0x46,第一个字节为ASCLL字符里面的DEL控制符,后面三个字节刚好是ELF这三个字母的ASCLL码。魔数用来确认文件类型,操作系统在加载可执行文件的时候会确认魔数是否正确,如果不正确就拒绝加载
文件机器字节长度,
数据存储方式,
版本,
运行平台,
ABI版本,
ELF重定位类型,
硬件平台,
硬件平台版本,
入口地址,规定ELF程序的入口虚拟地址,操作系统在加载完该程序后从这个地址开始执行进程指令。可重定位文件一般没有入口地址,则这个值为0
程序头入口和长度,
段表的位置和长度,
段的数量
等