文章目录

  • 一、ELF 文件当前版本号
  • 二、操作系统 ABI 信息
  • 三、ABI 版本
  • 四、文件头校验
  • 五、文件头长度信息
  • 六、ELF 文件类型 ( 动态库文件 )
  • 七、ELF 文件对应 CPU 架构
  • 八、ELF 目标文件版本
  • 九、可执行程序起始地址
  • 十、程序头偏移量
  • 十一、节区头偏移量
  • 十二、处理器特定标志
  • 十三、ELF 文件头大小
  • 十四、ELF 程序头入口大小
  • 十五、ELF 程序头入口个数
  • 十六、ELF 文件节区头入口大小
  • 十七、ELF 文件节区头入口个数
  • 十八、字符表序号

一、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 序号的节区 , 就是字符表节区 ;

【Android 逆向】ELF 文件格式总结 ★★★相关推荐

  1. 【Android 逆向】ELF 文件格式 ( 程序头数据 | 节区头数据 | 动态符号表 )

    文章目录 一.程序头数据 二.节区头数据 三.动态符号表 一.程序头数据 在上一篇博客 [Android 逆向]ELF 文件格式 ( ELF 程序头入口大小 | ELF 程序头入口个数 | ELF 文 ...

  2. 【Android 逆向】ELF 文件格式 ( ELF 文件头 | ELF 文件头标志 | ELF 文件位数 | ELF 文件大小端格式 )

    文章目录 一.ELF 文件简介 二.ELF 文件头 三.ELF 文件头标志 四.ELF 文件位数 五.ELF 文件大小端格式 一.ELF 文件简介 在上一篇博客 [Android 逆向]ELF 文件格 ...

  3. 【Android 逆向】ELF 文件格式 ( ELF 文件简介 | ELF 文件结构 )

    文章目录 一.ELF 文件简介 二.ELF 文件结构 一.ELF 文件简介 ELF 文件是 Executable and Linkable Format ( 可执行 和 可链接 格式 ) 的文件 ; ...

  4. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中创建 Python 程序 | 导入 ELFFile 库 | 解析 ELF 文件 )

    文章目录 一.PyCharm 中创建 Python 程序 二.导入 ELFFile 依赖库 三. 解析 ELF 文件 四. 博客源码 一.PyCharm 中创建 Python 程序 在 PyCharm ...

  5. 【Android 逆向】APK 文件格式 ( Android 应用安装 | Zip 文件格式 | 使用 Python 代码提取 APK 文件 )

    文章目录 一.Android 应用安装 二.APK 文件格式 三.使用 Python 提取 APK 文件 一.Android 应用安装 APK 是 Android 应用的安装文件 , 现在也有 AAB ...

  6. 【Android 逆向】使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )

    文章目录 一.创建 Capstone 反汇编解析器实例对象 二.设置 Cs 汇编解析器显示细节 一.创建 Capstone 反汇编解析器实例对象 使用 Capstone 反汇编框架 , 首先创建 Ca ...

  7. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

    文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...

  8. 【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )

    文章目录 一.Android 逆向方法 1.静态逆向解析 2.函数调用分析 3.动态运行跟踪 4.运行日志分析 5.文件格式解析 6.敏感信息分析 7.网络信息监控 8.软件动态调试 9.环境伪装模拟 ...

  9. android中so文件格式详解,[原创]一 Android ELF系列:ELF文件格式简析到linker的链接so文件原理分析...

    Android ELF系列:ELF文件格式简析和linker的链接so文件原理分析 Android ELF系列:实现一个so文件加载器 Android ELF系列:手写一个so文件(包含两个导出函数) ...

  10. Android 逆向分析大全

    转载:Android 逆向分析大全:https://www.jianshu.com/p/a12d04fc748f 1. 概述 1.1 分析步骤 通用逆向分析步骤 1. 了解该模块正向编程相关方法 2. ...

最新文章

  1. python实现卡方(Chi-Squared Test)相关性检验
  2. Arch Linux PDF格式文件无法显示中文
  3. 图神经网络:方法与应用 | 一文展望,四大待解问题
  4. 怎么取消任意Windows窗口总在最前
  5. 数据分析与挖掘实战-基于水色图像的水质评价
  6. java比ios慢_Android为什么比iOS慢
  7. C# 全角半角相互转换
  8. 关于Oracle与MySQL的使用总结
  9. java调用FFmpeg及mencoder转换视频为FLV并截图
  10. CMU Deep Learning 2018 by Bhiksha Raj 学习记录(8)
  11. perl和python的相互调用
  12. Tests for normality正态分布检验
  13. Monitor(二分,二维前缀和板子记录)
  14. 【久远讲算法】栈——后进先出的数据结构
  15. 读一封汶川地震的信:亲爱的,我要和别人结婚了
  16. 微信小程序canvas绘制圆形头像
  17. 协同工作平台功能说明书
  18. 苹果微信分身版ios_苹果手机ios14系统微信分身地址安装教程
  19. 王兴的无限游戏和美团的三维文明世界|一点财经
  20. 不论你技术多牛,这13条职场“潜规则”,越早知道越好!

热门文章

  1. js获取本月第几周和本年第几周
  2. linux运维实战练习
  3. NodeList 和 HTMLCollection
  4. 说说Thread.Sleep(0)的那些奇怪的事
  5. 表达式解析执行器 IKExpression
  6. 如何利用CSS给同一个网页中的超链接设置设置不同的样式?
  7. 按值传递按引用传递按地址传递
  8. 数学:拓展中国剩余定理
  9. 【NOIP2013模拟】黑魔法师之门
  10. 20162309单步追踪数组及查找课下补分博客