一种基于相似类型匹配估算的SQLite删除数据恢复方法

文档序号:8543808阅读:197来源:国知局
一种基于相似类型匹配估算的SQLite删除数据恢复方法
【技术领域】
[0001] 本发明设及一种数据恢复技术,特别是一种SQLite删除数据恢复方法。
【背景技术】
[0002] 数据恢复是指通过技术手段,将保存在台式机硬盘、笔记本硬盘、存储磁带库、移 动硬盘、U盘、书包存储卡、Mp3等等设备上丢失的电子数据进行抢救和恢复的技术。
[0003] 近年来,通信技术不断发展,智能手机的应用日益普及。然而,W手机为作案工具 的高科技犯罪现象也越来越多。所W,在取证、侦查过程中对手机移动终端的数据进行分析 显得尤为重要。公安部口迫切需要获取手机中的联系人、通话记录、短消息、电子邮件、社交 活动等用户信息数据,尽可能对已经删除的联系人、通话记录、短信等进行恢复,W帮助相 关部口进行调查取证。
[0004] 目前,An化oitIOS移动终端大多都支持SQLite数据库。SQLite是轻量型、小 嵌入式的关系型数据库,且其代码开源。它被认为具有高可靠性,是因为SQLite遵循数 据库事务正确执行的ACID(Atomicity原子性、Consisten巧一致性、Isolation隔离性、 Dur油ility持久性)四个基本要素。支持S化标准,主要针对存储简单数据的软件或嵌入 式设备而专口设计的数据库。由于它占用资源非常的低,能够支持Windows/Linux/化ix 等主流的操作系统并且能够跟很多程序语言相结合,还有ODBC接口,同样比起Mysql、 化stgreS化两个数据库管理,它的处理速度更快。在数字取证过程中,经常出现移动设备上 的联系人、通话记录、短消息等用户信息已经删除的情况。该些用户信息大多存储在SQLite 数据库中。
[0005] W下简要介绍一下SQLite数据库文件格式。
[0006] SQLite有3类数据库。除内存数据库外,S化ite把每个数据库(main或temp)都 存储到一个单独的文件中。SQLite数据库文件由固定大小的"页(page)"组成。页的大 小可W在512~32768之间(包含该两个值,必须是2的指数),默认大小为1024个字节 QKB)。页大小可W在数据库刚刚创建时设置,一旦创建了数据库对象之后,该个值就不能 再改变了。数据库中所有的页从1开始顺序编号。在具体的实现中,页号用4字节来表示, 并限制最大页号不得超过2'31。第1个页被称为pagel,第二个页被称为page2,W此类推。 页的类型可W是;Btree页、空闲页(化ee)或溢出页。一个数据库文件中可能没有空闲页 或溢出页,但必然有化ree页。Btree为一种树结构,又可W分为B-tree或B+tree,每一种 树的结点又区分为内部页和叶子页。一个SQLite数据库文件由多个多重化ree构成。每 个化ree占用至少一个完整的页,每个页是化ree的一个结点。每个表或索引的第1个页 称为根页,所有表或索引的根页编号都存储在系统表sqlite_master中,并且其中系统表 sqlite_master的根页为pagel。系统表sqlite_master保存了数据库的schema信息即概 要信息。SQLite数据库中第一个页永远都是化ree页。pagel的前100个字节是一个对数 据库文件进行描述的头文件。它包括数据库的版本、格式的版本、页大小、编码等。具体格 式如表1 ;
[0007]表1[000引
【主权项】
1. 一种基于相似类型匹配估算的SQLite删除数据恢复方法,其特征在于:包括以下步 骤: 步骤1、读入SQLite数据库文件并获得自由块,提取与待恢复数据单元属于同一表中 的未被删除的正常数据单元,获取正常数据单元中的Type区域中的Type字段,得到Data 区域对应的每个Data字段的数据类型和长度; 步骤2、判断待恢复数据单元所属的自由块中是否为仅包含一个不完整的数据单元的 自由块;若是,则转入步骤3 ;否则,转入步骤4 ; 步骤3、判断自由块的长度是否大于预设长度,若大于预设长度,则转到步骤4;若小于 等于预设长度,则判断待恢复数据单元的Data区域完全被覆盖,结束本方法; 步骤4、利用相似类型检测的方法,确定自由块中每个数据单元的Type字段的位置划 分出各个数据单元并恢复每个数据单元的Data区域。
2. 根据权利要求1所述的基于相似类型匹配估算的SQLite删除数据恢复方法,其特征 在于:所述步骤4按照以下步骤顺序进行: 步骤4. 1、从自由块中的第i个字节位置开始,判断当前位置的Type字段与步骤1中获 得的正常数据单元的相应位置的Type字段所代表的数据类型是否一致;若数据类型一致, 则判断相似类型检测成功;若数据类型不一致,则递增i值并重新判断,直至判断相似类型 检测成功并记录对应的判断起始位置i ; 步骤4. 2、判断待检测的数据单元是否完整,若是完整的数据单元,则转到步骤4. 3,若 是部分完整的数据单元,则转到步骤4. 4 ; 步骤4. 3、在正常数据单元中,利用Type字段计算相应的Data区域总的数据大小并与 自由块中的待恢复的完整的数据单元的Data区域总的数据大小进行比较;若总的数据大 小一致,则确认判断起始位置i正确,转到步骤4. 4 ;若总的数据大小不一致,则确认判断起 始位置i不正确,增加i值后返回步骤4. 1 ; 步骤4. 4、从自由块中的第i个字节的位置开始,根据Type字段里存储的值判断Data 区域数据类型和长度,对紧跟在Type字段后的Data区域数据进行读取,最后存储恢复出的 Data区域的数据完成对一个数据单元的恢复; 步骤4. 5、判断是否存在下一个数据单元,若不存在,则结束本发明,若存在,则确定返 回步骤4. 1,并设置第i个字节位置为紧邻当前数据单元尾部之后的位置处。
3. 根据权利要求1所述的基于相似类型匹配估算的SQLite删除数据恢复方法,其特征 在于:预先设置三种自由块特征规则如下: 特征规则1、自由块仅包含一个不完整的数据单元,其中部分数据被新写入的单元覆 盖; 特征规则2、自由块仅包含一个完整的数据单元; 特征规则3、自由块包含两个以上数据单元; 对步骤1种获得的自由块,根据自由块中字节的多少判断其满足上述哪种特征规则。
4. 根据权利要求1所述的基于相似类型匹配估算的SQLite删除数据恢复方法,其特征 在于:步骤3中所述预设长度为数据单元去除其中的Data区域后的长度。
5. 根据权利要求2所述的一种基于相似类型匹配估算的SQLite删除数据恢复方法,其 特征在于:步骤4中,每个自由块首次判断的起始位置i设置在第5个字节的位置处。
6. 根据权利要求2所述的一种基于相似类型匹配估算的SQLite删除数据恢复方法,其 特征在于:步骤4. 2中,结合自由块所满足的特征规则,对于满足特征规则1的自由块,判断 待检测的数据单元不完整;对于满足特征规则2的自由块,判断待检测的数据单元完整;对 于满足特征规则3的自由块,判断自由块从当前位置起至自由块尾部所提供的空间是否能 够容纳一个完整的数据单元中Type字段和Data区域的总大小,若能够,则判断待检测的数 据单元完整,若不能够,则判断待检测的数据单元不完整。
7. 根据权利要求2所述的一种基于相似类型匹配估算的SQLite删除数据恢复方法,其 特征在于:步骤4.5中,根据自由块中当前数据单元尾部之后剩余的空间判断是否还存在 下一个数据单元。
【专利摘要】本发明公开了一种基于相似类型匹配估算的SQLite删除数据恢复方法。本发明的主要步骤为:首先导入数据库文件,解析sqlite_master表,获取数据表的数据段以及内部页的根页编号,内部页指向叶子页。遍历所有叶子页,获取所有自由块数据。依次读入每个自由块,与至少一种预先设置的自由块的特征规则进行匹配,判断自由块是否具有完整的数据单元。若有完整的数据单元,则精确恢复该自由块,若自由块不完整,则恢复该数据单元中未被覆盖的数据。最后对恢复的已删数据进行解码,恢复已删除的sqlite文件数据。本发明能快速地定位被删的数据单元,适用于自由块中存在多个不连续的数据单元的情形,提高了删除数据的恢复率。
【IPC分类】G06F17-30
【公开号】CN104866610
【申请号】CN201510304010
【发明人】宋宇波, 戚姗姗, 陈飞, 项睿清, 顾荣荣, 浦希益, 胡爱群
【申请人】东南大学
【公开日】2015年8月26日
【申请日】2015年6月4日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1