专利名称:一种恢复移动终端已删除sqlite文件的方法及装置的制作方法
技术领域:
本发明涉及数据恢复技术领域,尤其涉及一种恢复移动终端已删除sqlite文件的方法及装置。
背景技术:
电子数据恢复是指通过技术手段,将原保存在台式机硬盘、笔记本硬盘、服务器硬盘、存储磁带库、移动硬盘、数码存储卡等存储介质上且已经丢失的电子数据进行抢救和恢复的技术。在于电子数据取证中,数据恢复的作用尤其重要。
目前,针对iOS移动智能终端,在电子数据取证过程中,经常碰到由于用户删除了设备上的QQ、飞信、微博等应用程序而导致取证时无法获取用户的联系人、聊天记录等信息的问题。这些数据大都存储在sqlite文件中,iOS从文件系统恢复的文件数量有限。目前,对于一般的虽损坏但还能正常开机运行的移动终端,可以通过移动终端提供的通讯协议提取相关数据存储文件,进而对已删除文件进行数据恢复,但是这种方法只能恢复还保存在存储文件中的数据,比如对于用户使用常规方法执行的记录删除动作而言,这些已删除的记录只是被标记为删除状态,但实际上该记录还保存在用于保存记录的原文件里,因此通过移动终端提供的通讯协议提取相关数据存储文件的这种恢复方法正确恢复数据的前提是用于保存记录的原文件未被删除。显然,对于数据文件本身的应用程序已被卸载或目标文件已被其他辅助通讯工具删除的情况,目标文件无法恢复。
发明内容
本发明提供一种恢复移动终端已删除sqlite文件的方法及装置,用于解决现有技术中无法恢复移动终端上已被卸载的应用程序的sqlite文件数据的问题,本发明提供的恢复已删除sqlite文件的方法及装置可获取移动终端上所有已删除sqlite文件未被覆盖的页碎片内有效数据,具有恢复成功率高及恢复完整性高的特点。本发明提供的一种恢复移动终端已删除sqlite文件的方法,包括预先设置若干种sqlite页特征规则,当检测到移动终端时,执行以下步骤首先,获取当前移动终端的镜像文件;随后,解析所述当前移动终端的镜像文件,并设置搜索区域;接着根据所述搜索区域内的数据特征调用至少一种预先设置的sqlite页特征规则,以所述sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,获得当前移动终端上已删除的sqlite文件页碎片;最后,对当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据。优选地,上述方法中,所述解析当前移动终端的镜像文件,并设置搜索区域,包括判断是否能够解析当前移动终端的镜像文件?若是,则获取当前移动终端的镜像文件的未分配簇区域,并将所述当前移动终端的镜像文件的未分配簇区域作为搜索区域;否则将当前移动终端的全镜像文件作为搜索区域。优选地,上述方法中,在所述根据所述搜索区域内的数据特征调用至少一种预先设置的sqlite页特征规则,以所述sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,获得当前移动终端上已删除的sqlite文件页碎片之前,还包括步骤设置大小为sqlite页大小的搜索块。此时所述以sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,包括以所述搜索块为单位将所述搜索区域分块,分别以被调用的每个sqlite页特征规则为匹配依据、按照预定搜索顺序对搜索区域内的所有搜索块内的数据进行匹配。
优选地,上述方法中,对于被调用的每个sqlite页特征规则,所述按照预定搜索顺序对搜索区域内的所有搜索块内的数据进行匹配包括步骤A :按照所述预定搜索顺序扫描第一个搜索块;步骤B :判断当前搜索块的头部特征是否是当前被调用的sqlite页特征规则所指定的 sqlite页头特征?若是,则执行步骤C ;否则执行步骤E ;步骤C :判断当前搜索块内的数据是否能和当前被调用的sqlite页特征规则所指定的数据特征相匹配,如果输出当前搜索块内数据,并执行步骤D,否则执行步骤E ;步骤D :判断搜索区域内的全部搜索块是否都已按照所述预定搜索顺序匹配完成?若是,则结束针对当前被调用的sqlite页特征规则的数据匹配流程;否则,执行步骤E ;步骤E :按照所述预定搜索顺序扫描下一个搜索块,将所述下一个搜索块作为当前搜索块,并返回执行步骤B。
优选地,上述方法中,所述对当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据,包括对所述当前移动终端已删除的sqlite文件页碎片内的有用信息进行解码,并识别解码后各有用信息之间的关联关系,得到有效数据信息。其中,所述有用信息包括已删除的sqlite文件页碎片内的表、字段和记录信息;所述有效数据信息包括已删除的sqlite文件页碎片内未被覆盖的数据库管理信息和数据库数据。
本发明实施例还提供一种恢复移动终端已删除sqlite文件的装置,包括镜像获取单元、镜像解析单元、页规则调用单元、第一页规则匹配单元、第二页规则匹配单元、…、 第N页规则匹配单元和sqlite解析单元;所述N为大于等于2的正整数;所述第一页规则匹配单元至第N页规则匹配单元中的每个页规则匹配单元内预先存储有一种sqlite页特征规则,且所述第一页规则匹配单元至第N页规则匹配单元中的任意两个页规则匹配单元中存储的sqlite页特征规则不同;所述镜像获取单元用于获取当前移动终端的镜像文件并将其提供给所述镜像解析单元;所述镜像解析单元用于解析所述当前移动终端的镜像文件,设置搜索区域,并将所述当前移动终端的镜像文件以及所设置的搜索区域提供给所述页规则调用单元;所述页规则调用单元用于根据所述搜索区域内的数据特征调用所述第一页规则匹配单元至第N页规则匹配单元中的至少一个页规则匹配单元,并将所述搜索区域提供给被调用的各页规则匹配单元;被所述页规则调用单元调用的各页规则匹配单元用于以自身所存储的sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,获得当前移动终端上已删除的一种sqlite文件页碎片并提供给所述sqlite解析单元;所述 sqlite解析单元用于对收到的所有当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据。
优选地,当所述镜像解析单元支持解析所述当前移动终端的镜像文件时,所述镜像解析单元获取当前移动终端的镜像文件的未分配簇区域,并将所述当前移动终端的镜像文件的未分配簇区域设置为所述搜索区域;当所述镜像解析单元不支持解析所述当前移动终端的镜像文件时,所述镜像解析单元将当前移动终端的全镜像文件设置为所述搜索区域。优选地,所述镜像解析单元还用于设置大小为当前移动终端的系统文件块大小的搜索块,并将所设置的搜索块提供给所述页规则调用单元;所述页规则调用单元还用于将收到的所述搜索块提供给被调用的各页规则匹配单元;被所述页规则调用单元调用的各页规则匹配单元首先用于以所述搜索块为单位将所述搜索区域分块,然后分别以自身所存储的sqlite页特征规则为匹配依据、按照预定搜索顺序对搜索区域内的所有搜索块内的数据进行匹配。优选地,所述sqlite解析单元进一步用于对当前移动终端上已删除的sqlite文件页碎片内的有用信息进行解码,得到有效数据信息;所述有用信息包括已删除的sqlite文件页碎片内的表、字段和记录信息;所述有效数据信息包括已删除的sqlite文件页碎片内未被覆盖的数据库管理信息和数据库数据。·
与现有技术相比,本发明提供的技术方案基于移动终端镜像文件对已被卸载的应用程序的sqlite文件进行文件页碎片恢复,该方案不仅限于sqlite文件已删除的情况,可获取所有已删除sqlite文件未被覆盖的页碎片内有效数据,具有恢复成功率高、恢复更完整的特点。
图I是本发明实施例提供的一种恢复移动终端已删除sqlite文件的方法流程 图2是采用本发明提供的方法搜索某移动终端镜像文件的未分配簇区域得到的bree页示例;
图3是本发明实施例提供的一种恢复移动终端已删除sqlite文件的装置结构示意
图4A是某个移动终端删除sqlite文件前该文件内的部分数据示意;
图4B是将图4A所示移动终端的sqlite文件删除后采用本发明提供的方案恢复的对应于图4A所示部分的sqlite文件数据。
具体实施例方式以下结合附图,具体说明本发明实施例。图I所示为本发明实施例提供的一种恢复移动终端已删除sqlite文件的方法流程图,包括
Si:获取当前移动终端的镜像文件。若此步骤中无法获取当前移动终端镜像文件,则直接结束流程。S2 :解析当前移动终端的镜像文件,并设置搜索区域。此步骤中,首先判断是否能够采用预先设置的解析方法解析当前移动终端的镜像文件?若是,则获取当前移动终端的镜像文件的未分配簇区域,并将当前移动终端的镜像文件的未分配簇区域作为搜索区域;否则,将当前移动终端的全镜像文件作为搜索区域。所述当前移动终端的全镜像文件即为当前移动终端的整个镜像文件。
S3:根据上一步骤中设置好的搜索区域内的数据特征调用至少一种预先设置的 sqlite页特征规则,以所述sqlite页特征规则作为匹配依据对搜索区域内的数据进行匹配,获得当前移动终端上已删除的sqlite文件页碎片。其中,每种sqlite页特征规则对应于一种特定类型的sqlite文件页碎片,即任意两种sqlite页特征规则能够从搜索区域内匹配出的sqlite文件页碎片的类型不同。若S2中设置的搜索区域为当前移动终端镜像文件的未分配簇区域,则根据所述预先设置的sqlite页特征规则,对当前移动终端镜像文件的未分配簇区域内的数据进行已删除的sqlite文件页碎片匹配;若S2中设置的搜索区域为当前移动终端的全镜像文件,则根据所述预先设置的sqlite页特征规则,对当前移动终端的全镜像文件内的数据进行已删除的sqlite文件页碎片匹配。
S4 :对当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据。
显然,在图I所示方法开始执行之前,需要先检测到需要恢复sqlite文件的移动终端时,才能执行图I所示的方法。
较佳地,上述恢复已删除sqlite文件的方法中,S3之前还包括步骤根据当前移动终端系统文件块大小设置搜索块的大小。其中,由于默认情况下移动终端的文件系统块大小是sqlite页大小的整数倍,因此将搜索块的大小设置为sqlite页大小。此时S3具体包括以搜索块为单位将搜索区域分块,分别以被调用的每个sqlite页特征规则为匹配依据对搜索区域内的各搜索块内的数据进行分块匹配,获得当前移动终端上已删除的sqlite 文件页碎片。其中,对搜索区域内的数据进行分块匹配的搜索顺序根据预先设置的搜索顺序进行,例如,可对搜索区域内的数据采用步进式的分块搜索方法进行匹配,步进式的分块搜索方法即假设搜索区域包括2个未分配簇区域,每个未分配簇区域大小为1024字节,搜索块大小设置为512字节,则搜索区域被分为4个搜索块,对于当前被调用的sqlite页特征规则而言,按照预定搜索顺序,依次对搜索区域内的所有搜索块内的数据进行匹配。搜索顺序根据具体需要设置,不仅限于步进式,此处不再多做描述。
具体分块匹配流程为步骤A :按照预定搜索顺序扫描第一个搜索块;步骤B :对于当前搜索块内的数据,首先判断当前搜索块的头部特征是否是当前被调用的sqlite页特征规则所指定的sqlite页头特征,若是,则执行步骤C ;若不是,则执行步骤E。
步骤C :判断当前搜索块内的数据是否能和当前被调用的sqlite页特征规则所指定的数据特征相匹配,若是,则输出当前搜索块内数据,并执行步骤D,否则执行步骤E。
步骤D :判断搜索区域内的全部搜索块是否都已按照所述预定搜索顺序匹配完成?若是,则结束针对当前被调用的sqlite页特征规则的数据匹配流程,得到由搜索区域内的若干个搜索块内的数据所组成的针对当前被调用的sqlite页特征规则的已删除的 sqlite文件页碎片;否则,执行步骤E ;步骤E :按照所述预定搜索顺序跳至扫描下一个搜索块,将所述下一个搜索块作为当前搜索块,并返回执行步骤B。
上述流程中,由于步骤B中判断出的当前搜索块内的数据的头部特征和当前被调用的sqlite页特征规则的sqlite页头特征一样并不代表对应于该头部特征的数据就是sqlite页数据,这些数据还可能是其他文件类型的碎片(例如也可能是doc、png、excel等各种文件类型的碎片)数据,因此若当前搜索块内的数据的头部特征是当前sqlite页特征规则所指定的sqlite页头特征,则需要如步骤C所述进一步判断当前搜索块内对应于该头部特征的数据的特征是否能和当前被调用的sqlite页特征规则所指定的数据特征相匹配,若对应于该头部特征的数据的特征能和当前被调用的sqlite页特征规则所指定的数据特征相匹配,则该头部特征及与其对应的所有数据组成一个sqlite文件页碎片。例如S3中需要获取的sqlite文件页碎片的类型主要是针对btree叶子页,因为btree页是sqlite文件中真正存储数据的页。具体地,如下表I所示在btree页的页头里会标注btree页的类型
表I
权利要求
1.一种恢复移动终端已删除sqlite文件的方法,其特征在于,预先设置若干种sqlite页特征规则,当检测到移动终端时,执行以下步骤 获取当前移动终端的镜像文件; 解析所述当前移动终端的镜像文件,并设置搜索区域; 根据所述搜索区域内的数据特征调用至少一种预先设置的sqlite页特征规则,以所述sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,获得当前移动终端上已删除的sqlite文件页碎片; 对当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据。
2.如权利要求I所述的一种恢复移动终端已删除sqlite文件的方法,其特征在于,所述解析当前移动终端的镜像文件,并设置搜索区域,包括判断是否能够解析当前移动终端的镜像文件?若是,则获取当前移动终端的镜像文件的未分配簇区域,并将所述当前移动终端的镜像文件的未分配簇区域作为搜索区域;否则将当前移动终端的全镜像文件作为搜索区域。
3.如权利要求I或2所述的一种恢复移动终端已删除sqlite文件的方法,其特征在于,在所述根据所述搜索区域内的数据特征调用至少一种预先设置的sqlite页特征规则,以所述sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,获得当前移动终端上已删除的sqlite文件页碎片之前,还包括步骤设置大小为sqlite页大小的搜索块; 所述以sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,包括以所述搜索块为单位将所述搜索区域分块,分别以被调用的每个sqlite页特征规则为匹配依据、按照预定搜索顺序对搜索区域内的所有搜索块内的数据进行匹配。
4.如权利要求3所述的一种恢复移动终端已删除sqlite文件的方法,其特征在于,对于被调用的每个sqlite页特征规则,所述按照预定搜索顺序对搜索区域内的所有搜索块内的数据进行匹配,包括 步骤A :按照所述预定搜索顺序扫描第一个搜索块; 步骤B :判断当前搜索块的头部特征是否是当前被调用的sqlite页特征规则所指定的sqlite页头特征?若是,则执行步骤C ;否则执行步骤E ; 步骤C :判断当前搜索块内的数据是否能和当前被调用的sqlite页特征规则所指定的数据特征相匹配,若是,则输出当前搜索块内数据,并执行步骤D,否则执行步骤E ; 步骤D :判断搜索区域内的全部搜索块是否都已按照所述预定搜索顺序匹配完成?若是,则结束针对当前被调用的sqlite页特征规则的数据匹配流程;否则,执行步骤E ; 步骤E :按照所述预定搜索顺序扫描下一个搜索块,将所述下一个搜索块作为当前搜索块,并返回执行步骤B。
5.如权利要求4所述的一种恢复移动终端已删除sqlite文件的方法,其特征在于,所述对当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据,包括对所述当前移动终端已删除的sqlite文件页碎片内的有用信息进行解码,并识别解码后各有用信息之间的关联关系,得到有效数据信息;其中,所述有用信息包括已删除的sqlite文件页碎片内的表、字段和记录信息;所述有效数据信息包括已删除的sqlite文件页碎片内未被覆盖的数据库管理信息和数据库数据。
6.一种恢复移动终端已删除sqlite文件的装置,其特征在于,包括镜像获取单元、镜像解析单元、页规则调用单元、第一页规则匹配单元、第二页规则匹配单元、…、第N页规则匹配单元和sqlite解析单元;所述N为大于等于2的正整数;所述第一页规则匹配单元至第N页规则匹配单元中的每个页规则匹配单元内预先存储有一种sqlite页特征规则,且所述第一页规则匹配单元至第N页规则匹配单元中的任意两个页规则匹配单元中存储的 sqlite页特征规则不同;所述镜像获取单元用于获取当前移动终端的镜像文件并将其提供给所述镜像解析单元;所述镜像解析单元用于解析所述当前移动终端的镜像文件,设置搜索区域,并将所述当前移动终端的镜像文件以及所设置的搜索区域提供给所述页规则调用单元;所述页规则调用单元用于根据所述搜索区域内的数据特征调用所述第一页规则匹配单元至第N页规则匹配单元中的至少一个页规则匹配单元,并将所述搜索区域提供给被调用的各页规则匹配单元;被所述页规则调用单元调用的各页规则匹配单元用于以自身所存储的sqlite页特征规则作为匹配依据对所述搜索区域内的数据进行匹配,获得当前移动终端上已删除的一种 sqlite文件页碎片并提供给所述sqlite解析单元;所述sqlite解析单元用于对收到的所有当前移动终端上已删除的sqlite文件页碎片内的数据进行解码,恢复当前移动终端已删除的sqlite文件数据。
7.如权利要求6所述的一种恢复移动终端已删除sqlite文件的装置,其特征在于,当所述镜像解析单元支持解析所述当前移动终端的镜像文件时,所述镜像解析单元获取当前移动终端的镜像文件的未分配簇区域,并将所述当前移动终端的镜像文件的未分配簇区域设置为所述搜索区域;当所述镜像解析单元不支持解析所述当前移动终端的镜像文件时, 所述镜像解析单元将当前移动终端的全镜像文件设置为所述搜索区域。
8.如权利要求7所述的一种恢复移动终端已删除sqlite文件的装置,其特征在于,所述镜像解析单元还用于设置大小为sqlite页大小的搜索块,并将所设置的搜索块提供给所述页规则调用单元;所述页规则调用单元还用于将收到的所述搜索块提供给被调用的各页规则匹配单元;被所述页规则调用单元调用的各页规则匹配单元首先用于以所述搜索块为单位将所述搜索区域分块,然后分别以自身所存储的sqlite页特征规则为匹配依据、按照预定搜索顺序对搜索区域内的所有搜索块内的数据进行匹配。
9.如权利要求8所述的一种恢复移动终端已删除sqlite文件的装置,其特征在于,所述sqlite解析单元进一步用于对当前移动终端上已删除的sqlite文件页碎片内的有用信息进行解码,得到有效数据信息;所述有用信息包括已删除的sqlite文件页碎片内的表、 字段和记录信息;所述有效数据信息包括已删除的sqlite文件页碎片内未被覆盖的数据库管理信息和数据库数据。
全文摘要
本发明提供一种恢复移动终端已删除sqlite文件的方法和装置,本发明提供的方法预先设置若干种sqlite页特征规则,当检测到移动终端时,执行步骤获取当前移动终端的镜像文件;解析当前移动终端的镜像文件并设置搜索区域;根据搜索区域内的数据特征调用至少一种预先设置的sqlite页特征规则,以sqlite页特征规则作为匹配依据对搜索区域内的数据进行匹配,获得当前移动终端上已删除的sqlite文件页碎片;最后对当前移动终端上已删除的sqlite文件页碎片内的数据进行解码。本发明提供的方案可获取移动终端上所有已删除sqlite文件未被覆盖的页碎片内有效数据,恢复成功率及恢复完整性高。
文档编号G06F11/14GK102937926SQ20121043002
公开日2013年2月20日 申请日期2012年10月30日 优先权日2012年10月30日
发明者薛艳英, 林艺滨 申请人:厦门市美亚柏科信息股份有限公司