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

Posted yenkoc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了南京大学计算机基础 ELF和可执行文件格式相关的知识,希望对你有一定的参考价值。

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

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

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

技术图片

 

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

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

技术图片

 

 

 

技术图片

 

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

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

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

技术图片

 

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

 

以上是关于南京大学计算机基础 ELF和可执行文件格式的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )

Android 逆向ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )

可执行文件格式elf和bin

图文并茂 | 例说ELF文件

4月13日总结

链接脚本和可执行文件