CN103778259A - 基于Sqlite3实现智能手机数据恢复的方法 - Google Patents

基于Sqlite3实现智能手机数据恢复的方法 Download PDF

Info

Publication number
CN103778259A
CN103778259A CN201410073724.9A CN201410073724A CN103778259A CN 103778259 A CN103778259 A CN 103778259A CN 201410073724 A CN201410073724 A CN 201410073724A CN 103778259 A CN103778259 A CN 103778259A
Authority
CN
China
Prior art keywords
data
page
file
sqlite3
deleted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410073724.9A
Other languages
English (en)
Inventor
吴松洋
何俊峰
王旭鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Third Research Institute of the Ministry of Public Security
Original Assignee
Third Research Institute of the Ministry of Public Security
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Third Research Institute of the Ministry of Public Security filed Critical Third Research Institute of the Ministry of Public Security
Priority to CN201410073724.9A priority Critical patent/CN103778259A/zh
Publication of CN103778259A publication Critical patent/CN103778259A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Abstract

本发明涉及一种基于Sqlite3实现智能手机数据恢复的方法,其中包括对所述的智能手机进行ROOT操作后取出所述的智能手机中Sqlite3数据库的DB文件;查找所述的DB文件中存在的所有表以及各个表对应的导航页和数据页;判断各个所述的表的数据页中是否有被删除的数据;针对有被删除数据情况的数据页查找其被删除的数据并重建各条数据的指针。采用该种基于Sqlite3实现智能手机数据恢复的方法,提出一种基于Sqlite3的智能手机数据恢复方法,依据从智能手机中获得的Sqlite3数据库文件,通过对数据存储规律的分析,提出相应的恢复规则,还原对应的数据库文件,方法应用简便,提高了数据恢复的效率,能直接为司法取证以及实际工作需求提供有效的帮助,适用于大规模推广应用。

Description

基于Sqlite3实现智能手机数据恢复的方法
技术领域
本发明涉及数据处理领域,尤其涉及智能手机系统Sqlite3数据库中数据恢复领域,具体是指一种基于Sqlite3实现智能手机数据恢复的方法。
背景技术
目前采用Andriod和IOS操作系统的手机已经是市场主流,是人们生活工作必不可少的。智能手机的迅速普及为人们带来的巨大的便利,手机存储了极多的个人信息,目前手机已经成为人们日常生活的必需品。Sqlite3数据库被以上两种操作系统采用(但不限于这两种操作系统),用于存储短信、通讯录、通话记录、QQ聊天记录以及微信通讯记录等等。这些数据文件包含巨大的信息,无论相关的应用程序是否被删除,只要Sqlite3的数据库文件存在,我们就能有效的找回大量的有效信息。
在司法取证方面,涉及到对智能手机的取证工作,包括对被删除的短信、被删除的通话记录、QQ聊天记录等的恢复工作。在国内,目前针对智能手机的取证工作主要还是以人为观察为主,耗时耗力而且很容易出错以及漏掉重要的信息,而针对智能手机的取证还没有成熟的技术手段来解决该问题。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现依据Sqlite数据库的设计原理、直接从数据库文件读取数据、通过对数据存储规律的分析、还原对应的数据库文件、适用于大规模推广应用的基于Sqlite3实现智能手机数据恢复的方法。
为了实现上述目的,本发明的基于Sqlite3实现智能手机数据恢复的方法具有如下构成:
该基于Sqlite3实现智能手机数据恢复的方法,其主要特点是,所述的方法包括以下步骤:
(1)对所述的智能手机进行ROOT操作后取出所述的智能手机中Sqlite3数据库的DB文件;
(2)查找所述的DB文件中存在的所有表以及各个表对应的导航页和数据页;
(3)判断各个所述的表的数据页中是否有被删除的数据;
(4)针对有被删除数据情况的数据页查找其被删除的数据并重建各条数据的指针。
较佳地,所述的查找所述的DB文件中存在的所有表以及各个表对应的导航页和数据页,包括以下步骤:
(21)查找所述的DB文件中存在的所有表;
(22)查找各个所述的表的导航页;
(23)根据各个所述的表的文件页的标志位字节查找各个所述的表的数据页。
更佳地,所述的根据各个所述的表的文件页的标志位字节查找各个所述的表的数据页,具体为:
根据各个所述的表的文件页的标志位字节的值判断各个所述的文件页的类别,如果标志位字节值为0X0D或0X0A,则该标志位字节对应的文件页为数据页,如果标志位字节值为0X05或0X02,则该标志位字节对应的文件页为内部页。
较佳地,所述的针对有被删除数据情况的数据页查找其被删除的数据,具体为:
针对有被删除数据情况的数据页,依据复原算法查找该数据页中被删除的数据。
更佳地,所述的重建各条数据的指针,具体为:
恢复各条被删除的数据前面正确的指针地址并重建该有被删除数据情况的数据页开头的各条数据的指针。
较佳地,所述的步骤(4)之后,还包括以下步骤:
(5)校验数据恢复后的DB文件是否正确以及恢复效果。
更佳地,所述的步骤(5)之后,还包括以下步骤:
(6)导出数据恢复后的DB文件或直接展示所述的数据恢复后的DB文件中所需要的数据信息。
采用了该发明中的基于Sqlite3实现智能手机数据恢复的方法,具有如下有益效果:
本发明解决了现有技术中存在的不足,提出一种基于Sqlite3的智能手机数据恢复方法,依据从智能手机中获得的Sqlite3数据库文件,依据Sqlite3数据库的设计原理,直接从Sqlite3数据文件读取数据,通过对数据存储规律的分析,提出相应的恢复算法(规则),还原对应的数据库文件,方法应用简便,数据恢复完整且提高了数据恢复的效率,能直接为司法取证以及实际工作需求提供有效的帮助,适用于大规模推广应用。
附图说明
图1为本发明的基于Sqlite3实现智能手机数据恢复的方法的流程图。
图2为本发明的基于Sqlite3实现智能手机数据恢复的方法在恢复指针过程中文件的页头示意图。
图3为本发明的基于Sqlite3实现智能手机数据恢复的方法在恢复指针过程中0X0396处的单元的数据示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的技术方案为:对待取证手机进行ROOT操作以后,取出其中的Sqlite3数据库DB文件,对其数据分析复原,包括对文件每页的格式分析,判断需要进行恢复操作的页,对已删除数据的复原找回,重构生成复原后的DB文件,通过该DB文件能获取被删除的数据。
如图1所示,本发明的基于Sqlite3实现智能手机数据恢复的方法包括以下步骤:
(1)对智能手机进行ROOT操作,获取管理员权限后,导出智能手机中Sqlite3数据库的DB文件;
(2)按照既定的复原算法,扫描读入DB文件,进行数据分析,逐步查找DB文件中存在的所有Table(表)以及各个表对应的页,即拥有每一个表以及其对应的导航页和数据页;
具体包括以下三个子步骤:
(21)查找DB文件中存在的所有表;
(22)查找各个表的导航页;
(23)根据各个表的文件页的标志位字节查找各个表的数据页。
DB文件中以Page(页)为基本单元存储数据,其中文件页有一个标志位字节确定它的分类,主要分为:如果是B+tree的叶子页,该字节值为0X0D,如果是B+tree的内部页,该字节值为0X05,如果是B-tree的叶子页,该字节值为0X0A,如果是B-tree的内部页,该字节值为0X02。DB文件中的数据都存储在0x0D以及0x0A的叶子页中。所以只需对叶子页进行处理即可。(处理匹配规则)。因此根据各个表的文件页的标志位字节的值可以判断各个文件页的类别,如果标志位字节值为0X0D或0X0A,则该标志位字节对应的文件页为数据页,如果标志位字节值为0X05或0X02,则该标志位字节对应的文件页为内部页。
(3)针对每一个Table,针对其数据页,依据复原算法,判断各个表的数据页中是否有被删除的数据;
(4)针对有被删除数据情况的数据页,依据复原算法查找该数据页中被删除的数据,恢复各条被删除的数据前面正确的指针地址并重建该有被删除数据情况的数据页开头的各条数据的指针。
执行下面删除语句:delete from foods where id=5;
文件的页头内容如图2所示。观察0X0396处的单元,数据如图3所示。
此时通过复原算法恢复0x0396处的指针以及对每页开头的指针进行恢复即可找回被删除的数据。
(5)校验数据恢复后的DB文件是否正确以及恢复效果。
(6)导出数据恢复后的DB文件或直接展示数据恢复后的DB文件中所需要的数据信息。
采用了该发明中的基于Sqlite3实现智能手机数据恢复的方法,具有如下有益效果:
本发明解决了现有技术中存在的不足,提出一种基于Sqlite3的智能手机数据恢复方法,依据从智能手机中获得的Sqlite3数据库文件,依据Sqlite3数据库的设计原理,直接从Sqlite3数据文件读取数据,通过对数据存储规律的分析,提出相应的恢复算法(规则),还原对应的数据库文件,方法应用简便,数据恢复完整且提高了数据恢复的效率,能直接为司法取证以及实际工作需求提供有效的帮助,适用于大规模推广应用。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (7)

1.一种基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的方法包括以下步骤:
(1)对所述的智能手机进行ROOT操作后取出所述的智能手机中Sqlite3数据库的DB文件;
(2)查找所述的DB文件中存在的所有表以及各个表对应的导航页和数据页;
(3)判断各个所述的表的数据页中是否有被删除的数据;
(4)针对有被删除数据情况的数据页查找其被删除的数据并重建各条数据的指针。
2.根据权利要求1所述的基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的查找所述的DB文件中存在的所有表以及各个表对应的导航页和数据页,包括以下步骤:
(21)查找所述的DB文件中存在的所有表;
(22)查找各个所述的表的导航页;
(23)根据各个所述的表的文件页的标志位字节查找各个所述的表的数据页。
3.根据权利要求2所述的基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的根据各个所述的表的文件页的标志位字节查找各个所述的表的数据页,具体为:
根据各个所述的表的文件页的标志位字节的值判断各个所述的文件页的类别,如果标志位字节值为0X0D或0X0A,则该标志位字节对应的文件页为数据页,如果标志位字节值为0X05或0X02,则该标志位字节对应的文件页为内部页。
4.根据权利要求1所述的基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的针对有被删除数据情况的数据页查找其被删除的数据,具体为:
针对有被删除数据情况的数据页,依据复原算法查找该数据页中被删除的数据。
5.根据权利要求4所述的基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的重建各条数据的指针,具体为:
恢复各条被删除的数据前面正确的指针地址并重建该有被删除数据情况的数据页开头的各条数据的指针。
6.根据权利要求1所述的基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的步骤(4)之后,还包括以下步骤:
(5)校验数据恢复后的DB文件是否正确以及恢复效果。
7.根据权利要求6所述的基于Sqlite3实现智能手机数据恢复的方法,其特征在于,所述的步骤(5)之后,还包括以下步骤:
(6)导出数据恢复后的DB文件或直接展示所述的数据恢复后的DB文件中所需要的数据信息。
CN201410073724.9A 2014-03-03 2014-03-03 基于Sqlite3实现智能手机数据恢复的方法 Pending CN103778259A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410073724.9A CN103778259A (zh) 2014-03-03 2014-03-03 基于Sqlite3实现智能手机数据恢复的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410073724.9A CN103778259A (zh) 2014-03-03 2014-03-03 基于Sqlite3实现智能手机数据恢复的方法

Publications (1)

Publication Number Publication Date
CN103778259A true CN103778259A (zh) 2014-05-07

Family

ID=50570494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410073724.9A Pending CN103778259A (zh) 2014-03-03 2014-03-03 基于Sqlite3实现智能手机数据恢复的方法

Country Status (1)

Country Link
CN (1) CN103778259A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035839A (zh) * 2014-06-12 2014-09-10 上海交通大学 Android系统隐私数据恢复实现方法
CN105488173A (zh) * 2015-12-01 2016-04-13 四川效率源信息安全技术股份有限公司 一种360浏览器历史记录的恢复提取方法
CN106649617A (zh) * 2016-11-30 2017-05-10 四川秘无痕信息安全技术有限责任公司 一种解析WindowsPhone手机短信数据结构的方法
CN106844607A (zh) * 2017-01-16 2017-06-13 重庆邮电大学 一种适用于非整型主键与空闲块合并的SQLite数据恢复方法
CN107025229A (zh) * 2016-01-29 2017-08-08 四川效率源信息安全技术股份有限公司 基于浏览器客户端应用程序的脱机文件痕迹检测的方法
CN107193871A (zh) * 2017-04-12 2017-09-22 腾讯科技(深圳)有限公司 数据库修复方法及装置
CN107332974A (zh) * 2017-05-23 2017-11-07 成都联宇云安科技有限公司 一种在未备份数据的情况下恢复安卓手机通讯录和短信数据的方法
CN108563535A (zh) * 2018-04-27 2018-09-21 四川巧夺天工信息安全智能设备有限公司 一种对MySQL数据库全库的恢复方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064764A (zh) * 2012-12-28 2013-04-24 盘石软件(上海)有限公司 一种快速恢复安卓手机删除信息的取证方法
CN103473147A (zh) * 2012-06-06 2013-12-25 网秦无限(北京)科技有限公司 一种移动终端数据恢复的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473147A (zh) * 2012-06-06 2013-12-25 网秦无限(北京)科技有限公司 一种移动终端数据恢复的方法和系统
CN103064764A (zh) * 2012-12-28 2013-04-24 盘石软件(上海)有限公司 一种快速恢复安卓手机删除信息的取证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSDN425: ""SQLite数据库文件分析"", 《HTTP://WENKU.BAIDU.COM/VIEW/23966A35F111F18583D05A34.HTML》 *
王随刚等: ""基于SQLite3的Android手机数据恢复技术的研究"", 《警察技术》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035839A (zh) * 2014-06-12 2014-09-10 上海交通大学 Android系统隐私数据恢复实现方法
CN105488173A (zh) * 2015-12-01 2016-04-13 四川效率源信息安全技术股份有限公司 一种360浏览器历史记录的恢复提取方法
CN107025229A (zh) * 2016-01-29 2017-08-08 四川效率源信息安全技术股份有限公司 基于浏览器客户端应用程序的脱机文件痕迹检测的方法
CN106649617A (zh) * 2016-11-30 2017-05-10 四川秘无痕信息安全技术有限责任公司 一种解析WindowsPhone手机短信数据结构的方法
CN106844607A (zh) * 2017-01-16 2017-06-13 重庆邮电大学 一种适用于非整型主键与空闲块合并的SQLite数据恢复方法
CN106844607B (zh) * 2017-01-16 2020-05-12 重庆邮电大学 一种适用于非整型主键与空闲块合并的SQLite数据恢复方法
CN107193871A (zh) * 2017-04-12 2017-09-22 腾讯科技(深圳)有限公司 数据库修复方法及装置
CN107193871B (zh) * 2017-04-12 2018-10-16 腾讯科技(深圳)有限公司 数据库修复方法及装置
CN107332974A (zh) * 2017-05-23 2017-11-07 成都联宇云安科技有限公司 一种在未备份数据的情况下恢复安卓手机通讯录和短信数据的方法
CN108563535A (zh) * 2018-04-27 2018-09-21 四川巧夺天工信息安全智能设备有限公司 一种对MySQL数据库全库的恢复方法

Similar Documents

Publication Publication Date Title
CN103778259A (zh) 基于Sqlite3实现智能手机数据恢复的方法
CN103955530B (zh) 一种在线重复数据删除系统的数据重建优化方法
CN105138652A (zh) 一种企业关联关系识别方法及系统
CN103793298A (zh) 实现Android手机信息读取的方法
CN104331487A (zh) 日志的处理方法及装置
US20140207820A1 (en) Method for parallel mining of temporal relations in large event file
CN104199967A (zh) 一种手机文件的恢复方法及装置
CN105095211A (zh) 多媒体数据的获取方法和装置
CN102682024B (zh) 未残缺jpeg文件碎片重组的方法
CN103679012A (zh) 一种可移植可执行文件的聚类方法和装置
CN105808609A (zh) 一种信息点数据冗余的判别方法和设备
CN105068889B (zh) 恢复Ext3/Ext4中已彻底删除文件的方法
CN104199963A (zh) HBase数据备份恢复的方法和装置
CN102609462A (zh) 一种通过提取sql模板对海量sql压缩存储的方法
CN103164515A (zh) 计算机系统涉密文件知识库搜索方法
CN103488998A (zh) 一种基于神经网络和图像处理技术的身份证识别方法
CN105912636A (zh) 一种基于Map/Reduce的ETL数据处理方法和装置
CN104636242A (zh) 一种基于Linux操作系统的系统日志自动删除重复内容的方法
CN104301681A (zh) 一种监控视频的恢复方法和装置
CN103177022A (zh) 一种恶意文件搜索方法及装置
CN106843908A (zh) 数据综合采集方法及系统
CN105447168A (zh) Mp4格式的碎片文件恢复与重组的方法
US8341538B1 (en) Systems and methods for reducing redundancies in quality-assurance reviews of graphical user interfaces
CN104408097A (zh) 一种基于字符段热更新的混合索引方法及系统
CN104978241A (zh) 一种cow类型文件系统的数据恢复方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140507