前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android 逆向】ELF 文件格式总结 ★★★

【Android 逆向】ELF 文件格式总结 ★★★

作者头像
韩曙亮
发布2023-03-29 19:55:55
4860
发布2023-03-29 19:55:55
举报

文章目录

一、ELF 文件当前版本号


ELF 文件头第 6 字节 : 版本信息 ;

在这里插入图片描述
在这里插入图片描述

二、操作系统 ABI 信息


ELF 文件头 第 7 字节 : 操作系统 ABI 信息 ;

在这里插入图片描述
在这里插入图片描述

三、ABI 版本


ELF 文件头 第 8 字节 : ABI 版本 ; 00 表示没有版本 ;

在这里插入图片描述
在这里插入图片描述

四、文件头校验


ELF 文件头 第 9 ~ 14 字节 : 6 字节的校验位 , 此处全部为 00 , 没有校验信息 ;

在这里插入图片描述
在这里插入图片描述

五、文件头长度信息


ELF 文件头 第 15 字节 : 长度信息 , 值为 00 , 没有实际使用 ;

在这里插入图片描述
在这里插入图片描述

六、ELF 文件类型 ( 动态库文件 )


ELF 文件头 第 16 ~ 17 字节 : ELF 文件类型 , 动态库文件 / 可执行文件 / 静态库文件 / 链接文件 ; 03 00 表示该 ELF 文件是动态库文件 ;

03 00 小端格式 , 低位在低地址 , 值为 3 ;

在这里插入图片描述
在这里插入图片描述

七、ELF 文件对应 CPU 架构


ELF 文件头 第 18 ~ 19 字节 : ELF 文件对应的 CPU 架构体系 , x86 / arm / mips ; 03 00 表示该 ELF 文件对应的 CPU 架构师 x86 架构 ;

03 00 小端格式 , 低位在低地址 , 值为 3 ;

在这里插入图片描述
在这里插入图片描述

八、ELF 目标文件版本


ELF 文件头 第 20 ~ 23 字节 : 目标文件版本 ; 默认值 1 ;

01 00 00 00 小端格式 , 低位在低地址 , 值为 1 ;

在这里插入图片描述
在这里插入图片描述

九、可执行程序起始地址


ELF 文件头 第 24 ~ 27 字节 : 如果 ELF 是可执行文件 , 应该从哪个地址开始执行代码 ; 该值在可执行 ELF 文件中才有意义 , 动态库文件没有意义 ;

00 00 00 00 小端格式 , 低位在低地址 , 值为 0 ;

当前解析的 ELF 文件是动态库文件 , 该值没有实际意义 , 设置 0 默认值 ;

动态库并不能独立执行 , 需要由外部加载执行 ;

在这里插入图片描述
在这里插入图片描述

十、程序头偏移量


ELF 文件头 第 28 ~ 31 字节 : 程序头偏移量 ; 程序头的位置 , 从整个 ELF 文件的第 0 字节开始计数 ;

34 00 00 00 小端格式 , 低位在低地址 , 值为 0x34 , 转为十进制为 52 ;

该值说明程序头的起始位置是 ELF 文件的第 0x34 字节位置 ;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十一、节区头偏移量


ELF 文件头 第 32 ~ 35 字节 : 节区头偏移量 ; 节区头的位置 , 从整个 ELF 文件的第 0 字节开始计数 ;

0C 41 00 00 小端格式 , 低位在低地址 , 值为 0x410C , 转为十进制为 16652 ;

该值说明节区头的起始位置是 ELF 文件的第 0x410C 字节位置 ;

在这里插入图片描述
在这里插入图片描述

十二、处理器特定标志


ELF 文件头 第 36 ~ 39 字节 : 处理器特定标志 ; 默认为 0 ;

00 00 00 00 小端格式 , 低位在低地址 , 值为 0 ;

在这里插入图片描述
在这里插入图片描述

十三、ELF 文件头大小


ELF 文件头 第 40 ~ 41 字节 : ELF 文件头大小 ; 一般是 52 字节 ;

34 00 小端格式 , 低位在低地址 , 值为 52 ;

在这里插入图片描述
在这里插入图片描述

十四、ELF 程序头入口大小


ELF 文件头 第 42 ~ 43 字节 : ELF 程序头入口大小 ; 一般是 32 字节 ;

20 00 小端格式 , 低位在低地址 , 值为 32 ;

在这里插入图片描述
在这里插入图片描述

如下图所示 , 程序头是由 7 个入口组成 , 每个入口大小是 32 字节 ;

在这里插入图片描述
在这里插入图片描述

十五、ELF 程序头入口个数


ELF 文件头 第 44 ~ 45 字节 : ELF 程序头入口个数 ; 这里是 7 个 ;

07 00 小端格式 , 低位在低地址 , 值为 7 ;

在这里插入图片描述
在这里插入图片描述

如下图所示 , 程序头是由 7 个入口组成 , 每个入口大小是 32 字节 ;

在这里插入图片描述
在这里插入图片描述

十六、ELF 文件节区头入口大小


ELF 文件头 第 46 ~ 47 字节 : ELF 文件节区头入口大小字节数 ; 一般是 40 个字节 ;

28 00 小端格式 , 低位在低地址 , 值为 40 ;

在这里插入图片描述
在这里插入图片描述

下图选中的部分 , 就是一个节区头入口的大小 , 有 21 个节区头入口 , 每个节区头入口大小 40 字节 ;

在这里插入图片描述
在这里插入图片描述

十七、ELF 文件节区头入口个数


ELF 文件头 第 48 ~ 49 字节 : ELF 文件节区头入口个数 ; 这里是 21 个 ;

15 00 小端格式 , 低位在低地址 , 值为 21 ;

在这里插入图片描述
在这里插入图片描述

下图选中的部分 , 就是一个节区头入口的大小 , 有 21 个节区头入口 , 每个节区头入口大小 40 字节 ;

在这里插入图片描述
在这里插入图片描述

十八、字符表序号


ELF 文件头 第 50 ~ 51 字节 : ELF 文件 字符表序号 ; 这里是 20 ;

14 00 小端格式 , 低位在低地址 , 值为 20 ;

在这里插入图片描述
在这里插入图片描述

节区中 , 专门有一个节区用于存放字符表 , 这里的 20 序号的节区 , 就是字符表节区 ;

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、ELF 文件当前版本号
  • 二、操作系统 ABI 信息
  • 三、ABI 版本
  • 四、文件头校验
  • 五、文件头长度信息
  • 六、ELF 文件类型 ( 动态库文件 )
  • 七、ELF 文件对应 CPU 架构
  • 八、ELF 目标文件版本
  • 九、可执行程序起始地址
  • 十、程序头偏移量
  • 十一、节区头偏移量
  • 十二、处理器特定标志
  • 十三、ELF 文件头大小
  • 十四、ELF 程序头入口大小
  • 十五、ELF 程序头入口个数
  • 十六、ELF 文件节区头入口大小
  • 十七、ELF 文件节区头入口个数
  • 十八、字符表序号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档