论文部分内容阅读
由于具有轻量级、速度快和可靠性强等特点,SQLite数据库被广泛用于智能移动终端和嵌入式设备中存储用户和应用程序信息,也自然成为数字取证研究重要的数据源。在目前SQLite数据库版本不断更新的情况下,如何进行有效恢复SQLite数据库中的数据已经成为一个重点和热点问题。本文针对基于预写日志的SQLite数据库历史版本恢复方法开展研究,并在此基础上提出了一种恢复删除记录和检测篡改行为的方法。研究的主要内容如下:首先,提出了一种基于SQLite预写日志的数据库历史版本重构方法。根据SQLite数据页结构特征从手机镜像中定位有效数据页,利用组织结构特征拼接数据页,重构SQLite数据库文件;同时,通过研究预写日志机制、日志结构、日志随机数、存储分片等特征,从手机镜像中提取有效的预写日志数据页,拼接成预写日志文件;然后把重构出的数据库文件和预写日志文件看成一个完整事务的提交粒度,判断每个事务所影响的数据页,并重构出不同版本的历史数据库文件。基于真实手机的实验结果表明,本文提出的方法可以有效地提取出SQLite数据库文件和预写日志文件,通过与原文件的比较分析,其准确率均达到了 100%,并重构出数据库历史版本。其次,提出了一种基于SQLite历史版本恢复技术的恢复删除记录并检测篡改行为方法。针对已重构出的历史版本文件,通过分析各个版本之间存储记录的差异实现了一种删除记录的恢复和篡改行为的检测方法。基于真实手机的实验结果表明,本文提出的方法可以有效地恢复删除记录并检测篡改行为。在检查点发生前,其准确率和召回率均达到了 100%,比基于SQLite自由块的恢复方法提高了 100%;而在检查点发生后,其准确率达到了100%,召回率达到了 76%以上,比基于SQLite自由块的恢复方法分别提高了 41%和59%以上。综上,本文针对基于预写日志的SQLite数据库恢复问题进行研究,提出了基于SQLite预写日志的历史版本重构方法;在分析重构出的版本文件差异的基础之上,又提出了一种基于SQLite历史版本的删除记录的恢复和篡改行为的检测的方法;通过实验验证了所提出方法的有效性和可行性。本文的研究成果为SQLite恢复技术研究提供了 一条新思路。