ELF文件结构重点详解

  • Header(头部):ELF header在文件开始处描述了整个文件的组织,如程序头表的位置和数量,节头表的位置和数量,等
  • Program header table(程序头表):指出怎样创建进程映像(指出Load segment的位置),含有每个program header的入口
  • Section(节区):Section提供了目标文件的各项信息(如指令、数据、符号表、重定位信息等)
  • Section header table(节头表):section header table包含每一个section的入口,给出名字、大小等信息
    在这里插入图片描述
    ELF可执行文件的内部信息,定位与细节关系说明:
    在这里插入图片描述
    ELF header、Program header table 和 Section header table 都是结构体。通过结构体内部数值记录信息的位置,结构体之间环环相扣,构成此ELF文件的轮廓,记录且定位整个文件的所有信息。而了解整个ELF文件的第一步且重要的一步是了解ELF header。

头部结构体:
在这里插入图片描述
ELF文件的头部记录了很多信息,而程序头表的数量与位置,和节头表的位置与数量的记录,准确地表明了此ELF文件内部信息分布的框架。

程序头表结构体:
在这里插入图片描述
程序头表结构体记录了该段的类型,与该段是否需要加载至内存,和在加载至内存中的那个位置等一系列信息。其中p_type的值如果是load,则表明这段信息是我们所需要签名的 Load segment 段。

节头表结构体:
在这里插入图片描述
节头表指向节区,并且节头表记录了该节区的名字,类型,位置,长度等诸多信息。SHT_SHLIB为节头表的sh_type的保留值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值