南京大学计算机基础 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 文件结构 )