linux下的elf结构,ELF结构详细分析(1)---elf32_hdr

ELF(Executable and Linkable Format)可执行和可链接格式是一种对象文件格式,分为三种类型:

a.可重定位目标文件:包含了适合用来链接其他目标文件的代码和数据,从而创建出可执行或可共享的目标文件

b.可执行目标文件:包含用于执行的程序,该文件规定了exec如何创建一个程序的进程映像

c.共享目标文件:包含用来在两个上下文之间链接的代码和数据

注:可重定位目标文件和共享目标文件用于程序链接,可执行目标文件用于程序执行

因为对于目标文件两种用途,因此目标文件的组织结构有两种:一种是用于链接的链接格式,另一种是用于执行的执行格式.

在详解这两种格式之前,先列出ELF文件中常用的数据类型(格式)

3d15f8103d3155bf7d8bac3d6b52d4e0.png

这两种格式中,ELF头部都位于文件的开始部分,位置固定,描述了该文件的组织情况,下面是它的具体内容

elf32_hdr(一个52个字节):

7ab10ac0f7d7f78fe1199d5d4255bf95.png

下面详细描述其中的内容(不加说明,值全是16进制):

1. e_ident,ident估计是identity的缩写,身份识别的意思.

这是一个总大小为16字节的数据,每个元素是占一个字节的unsigned char

a3399bb00bff4f8716facd5b206d6e2a.png

2. e_type:表示文件属于下面的哪一种类型

77aabb30626e9a47e6dc173bf433f5de.png

3. e_machine:表示体系结构

4. e_version:目前版本

5. e_entry:程序入口地址

6. e_phoff:程序头部表的文件偏移,00000000表示没有程序头部表

7. e_shoff:节区头部表的文件偏移

8. e_flags:处理器特定标记

9. e_ehsize:elf头部长度,值是0034,表示十进制52

10.e_phentsize:程序头部表(段头部表)一个表项的大小

11.e_phnum:程序头部表表项数量

12.e_shentsize:节区头部表一个表项的大小

13.e_shnum:节区头部表表项数量

14.e_shstrndx:保存着节名字的节(section)对应的表项在节区头部表中的索引

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值