取证 安全 手记

安卓手机数据电子取证分析工具RawAnalyzer开发手记

准备工作

直接通过物理方法读取出来的手机数据表现为数字电信号,经过计算机处理后,手机存储芯片的数据被转换为计算机可以识别的有效文件(下称“手机镜像文件”)。

与计算机硬盘数据类似,通常情况下,绝大多数Android手机镜像文件的开头512字节为MBR主引导记录+DPT分区表+结束标志,即采用DOS分区(部分Android手机可能保留一定字节,扇区大小不同,甚至使用GPT分区)。那么我们将根据目前广泛使用的DOS分区的数据结构,开发出一款能够提取手机镜像文件中关键数据的工具(下称“RawAnalyzer”),方便我们日常对手机数据进行电子取证分析。

由于Android基本上采用EXTX文件系统,该文件系统在Linux上广泛使用,而Windows系统原生并不支持,因此RawAnalyzer的开发选择在Linux环境下。至于开发语言,我们使用目前比较流行的Python,界面开发使用QT。

分区及文件系统

开发前需要了解手机镜像文件的数据结构,也就是了解分区及文件系统。

DOS分区通常位于第一扇区,由三部分组成,分别是占446字节的MBR主引导记录(00 - 1BD)、占64字节的DPT分区表(1BE - 1FD)和占2字节的DOS分区结束标志(1FE - 1FF)。这个扇区被称为MBR主引导记录扇区。

MBR主引导记录扇区的数据结构

分区表项的数据结构

EXTX文件系统是EXT2、EXT3和EXT4的统称,现在普遍使用EXT3和EXT4。EXTX被分为若干个块组,每个块组的结构基本相同。一个块组由超级块、块组描述符表、块位图、i-节点位图、i-节点表和数据区。块组的基本信息存放在超级块中,超级块总是位于块组的2-3号扇区,占用1024字节。

EXTX超级块的数据结构

开发过程

使用WinHex打开测试用的手机镜像文件,参照MBR主引导记录、分区表项和EXT超级块的数据结构,对镜像文件进行人工分析。

使用Python编写RawAnalyzer,在编写的同时,使用该手机镜像文件对程序进行测试。

工具介绍

打开镜像文件前,列表框为空白

打开镜像文件后,列表框列出镜像文件的所有分区

“打开文件”:打开手机镜像文件,打开失败时,列表框为空。 “保存磁盘文件”:将选中分区保存为分区镜像文件 “挂载磁盘文件”:将选定分区镜像文件挂载至选定目录 “卸载磁盘文件”:卸载选定分区镜像文件 “一键提取安卓数据”:提取安卓数据至选定目录,提取失败时,无数据输出

结语

安卓手机数据电子取证分析工具RawAnalyzer经过测试,可以用于安卓手机镜像文件的数据分析,该工具功能虽不多,但是可以自动对手机镜像进行电子取证分析,在一定程度上提高取证的效率。由于测试条件有限以及各种镜像文件格式不一致,工具可能存在分析失败的情况,这需要后期对工具进一步地改进。


标签: 取证 安全 手记

Comments