Android安全之ELF文件格式浅析

admin 2022年3月29日09:53:36评论0 views字数 1501阅读5分0秒阅读模式

背景

Android安全之ELF文件格式浅析

Android开发或安全攻防过程中都离不开和so文件进行打交道,so文件也就是ELF文件的格式。

由于so文件基于C、C++进行开发的,那么可以进行做安全防护方面的强度也比较高。因此很多apk中的 核心功能或数据都是放在so文件上去实现的。同时很多的加固和脱壳防护也都是基于ELF文件格式进行的。

ELF理论基础

Android安全之ELF文件格式浅析

ELF 文件是 Executable and Linkable Format ( 可执行 和 可链接 格式 ) 的文件 ;链接 一般是在编译阶段 , 执行 一般是在运行阶段 ; 在这两个阶段都会用到 ELF 格式的文件。

ELF文件是linux下的二进制文件,也相当于windows下的PE文件,Android系统里的dll文件。

它是Linux下可执行文件,共享库文件和目标文件的统一格式。Elf里面还有许多其它的信息,这些信息有些是编译时有用的,我们常称它们为节(Section),有些是操作系统装载应用时用的,们常称它们为段(Program)。

根据看待ELF文件的不同方式,ELF文件可以分为链接视图和装载视图。

Android安全之ELF文件格式浅析

ELF 文件由以下部分组成 :

1、ELF 文件头

2、ELF 程序头部表 : ELF 程序头 会告知 节区头部表的位置;

3、节区头部表 : 节区头部表 会告知 ELF 文件中有多少个节区 , 一般节区头部表它一般都在ELF文件尾部。

ELF文件头

Android安全之ELF文件格式浅析

ELF文件开始处是一个ELF 头部(ELF Header),用来描述整个文件的组织。节区部分包含连接视图的大量信息:指令、数据、符号表、重定位信息等等。

ELF 文件的特点 : ELF 文件是以 7F 45 4C 46 开头 , 其中 7F 是一个二进制标志 , 45 4C 46 是 ELF 字符对应的 ASCII 码。

下图通过010 Editor工具结合ELFTemplate.bt 可以很清晰的解析出ELF文件中的文件头部结构,上部分是ELF头部的十六进制数据,下部分是ELF头部的结构体中变量的填充值数据。

Android安全之ELF文件格式浅析

下图是android系统下的elf.h文件中定义的文件头的结构体数据,一个是32位的一个是64位的。

Android安全之ELF文件格式浅析

Android安全之ELF文件格式浅析

ELF程序头部表

Android安全之ELF文件格式浅析

程序头部表(Program Header Table),若是存在的话,告诉系统如何建立进程映像。用来构造进程映像的目标文件必须具备程序头部表,可重定位文件不须要这个表。

下图通过010 Editor工具结合ELFTemplate.bt 可以很清晰的解析出ELF文件中的程序头结构数据。

Android安全之ELF文件格式浅析

下图是android系统下的elf.h文件中定义的程序头的结构体数据,一个是32位的一个是64位的。

Android安全之ELF文件格式浅析

ELF节区头部表

Android安全之ELF文件格式浅析

节区头部表(Section Heade Table)包含了描述文件节区的信息,每一个节区在表中都有一项,每一项给出诸如节区名称、节区大小这类信息。用于连接的目标文件必须包含节区头部表,其余目标文件能够有,也能够没有这个表。

下图通过010 Editor工具结合ELFTemplate.bt 可以很清晰的解析出ELF文件中的区段头结构数据

Android安全之ELF文件格式浅析

下图是android系统下的elf.h文件中定义的区段头的结构体数据,一个是32位的一个是64位的。

Android安全之ELF文件格式浅析

Android安全之DEX文件格式浅析  

移动端安全开发、移动端安全、网络安全视频课程
(1).移动安全App安全检测、渗透测试、风控、隐私合规、加固防护、病毒逆向的视频课程

(2).Android系统Framework、驱动、内核等模块的定制开发和Android APP开发以及鸿蒙APP开发的视频课程

(3).网络安全漏洞挖掘、Web安全、渗透测试、病毒逆向、溯源反制等系列视频课程

以上视频课程会在近期发布,欢迎各位扫码关注"哆啦安全"公众号、视频号

Android安全之ELF文件格式浅析

原文始发于微信公众号(哆啦安全):Android安全之ELF文件格式浅析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月29日09:53:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Android安全之ELF文件格式浅析https://cn-sec.com/archives/848622.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息