Android手机数据恢复方法研究综述

时间:2022-08-20 04:47:27

Android手机数据恢复方法研究综述

摘 要: 如何从已删除或损坏的数据中提取与恢复数据是手机取证的重要课题之一。研究了Android手机的SQLite数据存储结构和寻址Btree页的树形结构,通过遍历叶子页的方法来恢复已删除数据;介绍了国内外数据恢复方法研究现状,为进一步研究Android手机数据恢复提供参考。

关键词: 手机取证; Android手机; 数据存储; 数据恢复

中图分类号:TP309 文献标志码:A 文章编号:1006-8228(2017)04-29-03

Abstract: How to extract and recover data from deleted or corrupted data is one of the most important issues in mobile phone forensics. This paper studies the SQLite data storage structure and the addressing of the Btree page tree structure of Android mobile phone, to recovery the deleted data by traversing the leaf pages. The research status of domestic and foreign data recovery methods are introduced, which provide the reference for the further research of Android mobile phone data recovery.

Key words: mobile phone forensic; Android mobile phone; data storage; data recovery

0 引言

随着移动通信技术的发展和智能手机的普及,手机犯罪呈高发态势。据Gartner的数据显示[1],2015年Android手机市场占有率高达80%,所以Android手机已经成为主要的数据取证源之一。如何从Android手机中提取和恢复数据,成为司法取证的一个课题。本文主要基于Android系统,归纳主流的手机数据恢复技术,概括国内外研究成果与现状,并对Android手机数据恢复技术发展作了总结与展望。

1 手机数据存储分类

根据Android手机内部存储机制,手机数据存储方式主要分为内部存储和外部存储两种。其中内部存储主要有SIM卡和手机机身内存,外部存储主要有手机外部存储卡。此外,短信服务提供商和移动网络运营商也包含相对应的有效信息。

⑴ SIM卡即手机卡。也称客户识别模块卡,主要用来鉴别网络用户身份信息,存储客户信息等。卡上所有的数据都是以文件的形式存储在卡上相应的数据存储区域,其中SIM卡里存储的数据由四部分组成。第一部分是固定存放的数据。该类数据信息在移动设备被出售之前由SIM卡中心提前写入。包含国际移动用户识别号、鉴权密钥、加密算法等一些固定不变的信息。第二部分是暂时存放的相关网络数据。如LAI(位置区域识别码)、TMSI(移动用户暂时识别码)、禁止接入的公共电话网代码等。第三部分是与业务相关的代码,如PIN(个人识别码)、PUK(解锁码)、计费费率等。第四部分是用户存储的电话号码簿信息。比如手机用户随时输入的电话号码等。

⑵ 手机内存。手机内存分为两块:RAM(动态存储区)和ROM(静态存储区)。其中,动态存储区又称随机存储区,用来临时保存数据,突然断电时会丢失存放的数据信息;静态存储区又称只读存储区,用来存放用户数据文件,对突然出现断电的情况也不受影响,起到保护的作用。

⑶ 手机扩展存储卡。手机扩展存储卡通常使用FAT文件系统,常用的外置存储卡有TF卡、CF卡等,属于闪存卡。手机扩展存储卡是为了扩大手机内存容量,减少手机自身内存占用,一般用来存放大量的音频、视频、图片等文件,如果对这些信息进行恢复,往往也能获得有价值的线索。

2 基于SQLite的数据恢复方法

SQLite数据库在Android手机中应用广泛,具有量级轻、资源占用率低、易移植等优点。在Android系统中,大部分数据存放在SQLite数据库中,比如短消息、通讯录和通话录等,这些数据有较多价值。所以本文以SQLite数据库为研究对象,描述SQLite数据库的存储原理及数据恢复方法。

2.1 SQLite存储原理

从SQLite存储机制来看,页是SQLite数据库的最基本存储单元。SQLite文件主要由一个或几个固定大小的页所构成。页由空闲页、溢出页及Btree页构成。由于SQLite数据库主要采用Btree树形结构,所以SQLite数据库文件主要由多个Btree文件所构成。数据库中第一个页(page 1)永远是Btree页。第一页的前100个字节作为“文件头”,描述数据库文件的版本、格式的版本、页大小、编码等所有创建数据库时设置的永久性参数信息。SQLite稻菘馕募头结构如表1所示。

其中恢复删除的一个重要前提就是定位删除数据的位置。通常的方法是根据Btree叶内部存储机制和树形逻辑结构,定位出存放在SQLite的底层数据信息。根据Btree页的树状逻辑形状可知,Btree页从上至下由根页、内部页、叶子页组成。Btree页的根页和内部页仅作为数据结构的路径导航,并不存储数据信息。包含关键字的数据区域指针指向下一个树形路径的页。在叶子页,记录和页按键值顺序排列,以便数据遍历结果,同时根页和内部页均指向下一层路径的页。所以,对被删除数据进行数据恢复的一般方法是:首先找到删除数据所在的根页,然后根据内部页的地址,搜索到叶子页的地址,因为被删除数据的信息是存储在叶子页上面的,最后通过遍历叶子页的方法提取到已删除的数据信息。Btree页的树形结构如图1所示。

上一篇:建筑学专业美术写生实习教学机制的探讨 下一篇:融媒体时代背景下,广播要积极寻求突破之路