南京大学计算机基础 ELF和可执行文件格式

1.可重定位目标文件格式

主要是由ELF头,一些节比如.text节,.rodata节,.data节,.bss节等,前面是只读的,后面是可读可写的,加上一个节头表

1.1 ELF头里面主要包含了16字节的标识信息,文件类型,机器类型,节头表偏移,节头表的表项大小以及个数,以及程序的入口地址,就是第一句执行的代码

南京大学计算机基础 ELF和可执行文件格式

 

 好像和PE文件差不多的构成。。。不过PE的格式更加复杂了。。。过几天看看撸个PE解析器或者ELF的解析器

1.2.节头表存储着节的名字,访问方式,偏移,以及到虚拟地址的地址。

南京大学计算机基础 ELF和可执行文件格式

 

 

 

南京大学计算机基础 ELF和可执行文件格式

 

1.3. 可执行文件的ELF头差别

本质也没差别,只是程序的入口地址改成虚拟地址了,因为可重定位的无法加载,所以程序入口无意义,然后程序头表地址也添加上去了,因为程序头表主要描述的是映射关系,可重定位文件由于不加载,所以就被设置为零了,

链接成可执行文件时,就要添加上去了,同时程序头表,就在ELF头后面

南京大学计算机基础 ELF和可执行文件格式

 

 剩下就是映射到虚拟地址里面了

 

上一篇:解决0.5px在部分机型上面的兼容显示


下一篇:linux_ELF静态注入