一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向Android取证的内存镜像数据恢复系统的制作方法

2022-03-16 16:33:49 来源:中国专利 TAG:

一种面向android取证的内存镜像数据恢复系统
技术领域
1.本发明属于电子取证分析技术领域,特别是一种基于android非易失性内存镜像取证分析的数据恢复系统。


背景技术:

2.android应用程序越来越多地与现实世界的犯罪活动紧密相关,对android内存数据的取证分析对于网络犯罪活动的调查至关重要。大部分android应用程序均使用sqlite数据库来存储其数据,因而,sqlite数据库文件中包含了与取证分析相关的重要数据。android设备内存根据其使用目的的不同可以分为易失性内存和非易失性内存,其中,易失性内存在断电时会丢失其数据,而非易失性内存断电时可以保留数据,并且非易失性内存数据的删除只是使用逻辑销毁映射关系而不是执行物理删除。所以,为了保证数据的完整性,对断电后获取的非易失性内存镜像的分析方法更加全面。
3.现有的android非易失性内存分区结构多为ext4文件系统,其数据恢复方法多为基于文件系统的数据重建方法,即重建物理块正确顺序,从而创建更高级别文件系统的逻辑副本,以达到定位有价值的证据数据的位置,检查应用程序创建和管理的文件的目的。然而,非易失性内存使用磨损均衡器将擦除操作均匀地分布在所有块上,由于异地更新和复制操作等特性,非易失性内存镜像中存在一些无效页不会映射到文件系统中,如果基于文件系统进行数据恢复则会遗漏很多重要信息。


技术实现要素:

4.本发明的目的在于针对上述现有技术存在的问题,提供一种面向android取证的内存镜像数据恢复系统。
5.实现本发明目的的技术解决方案为:一种面向android取证的内存镜像数据恢复系统,所述系统包括:有效内存页提取模块和数据记录恢复模块;
6.所述有效内存页提取模块,用于提取内存镜像中有价值的证据数据所在的内存页并发送到所述数据记录恢复模块;
7.所述数据记录恢复模块,用于根据接收到的有效内存页对内存页数据区域存储的数据记录进行恢复。
8.优选地,所述有价值的证据数据为sqlite数据,大部分android应用程序均使用sqlite数据库来存储其数据,因而,sqlite数据包含了与取证分析相关的重要数据。所述证据数据以单元的形式存储于所述有效内存页中。
9.优选地,所述内存镜像为整个android设备的非易失性内存镜像。所述内存镜像具有异地更新的特点,在物理存储级别删除或更新数据后,将分配一个新的内存页来写入原来内存页更新之后的数据,而原来的内存页只标记为无效,成为垃圾页,不做擦除操作,等待垃圾回收机制进行回收。
10.优选地,所述有效内存页包括b 树内部页,b 树叶子页,b-树内部页和b-树叶子
页。sqlite数据库使用b 树存储表数据,而使用b-树存储与表相关的索引信息,内部页存储指向叶子页的指针,叶子页存储表或索引的记录。因此只有b 树叶子页存储证据数据,但是由于异地更新机制,b 树内部页、b-树叶子页和b-树内部页可能是直接覆盖垃圾页,其中还残留部分未被覆盖的证据数据。
11.优选地,所述有效内存页提取模块提取内存镜像中有价值的证据数据所在的内存页,具体过程包括:
12.按页大小扫描非易失性内存镜像,获得页头结构,所述页头包括页类型、第一个自由块偏移量、本页单元数、单元起始地址,页头之后是单元指针数组,其中每2个字节表示1个单元偏移地址;若页类型为0x0d则可能是b 树叶子页,若页类型为0x05则可能是b 树内部页,若页类型为0x0a则可能是b-树叶子页,若页类型为0x02则可能是b-树内部页;
13.对第一个自由块偏移量、本页单元数、单元起始地址和单元指针数组的特征进行判断,若均满足条件则判定该页为有效内存页,提取其物理地址;其中,所述条件包括:第一个自由块偏移量小于内存页的大小,单元起始地址小于内存页的大小,单元指针数组每一项小于内存页的大小,同时单元指针数组大小等于本页单元数。
14.优选地,所述数据记录恢复模块包括区域提取单元、恢复表结构和记录恢复;
15.所述区域提取单元,用于提取存储数据的区域,所述存储数据的区域在b 树叶子页中包括单元内容区、空闲区域和自由块区域,而其他类型的内存页中只包括空闲区域;
16.所述恢复表结构,用于通过关键字匹配从提取的存储数据的区域中提取建表语句,获得所有数据表的表名和对应的字段类型和数量;
17.所述记录恢复,用于从提取的存储数据的区域中根据不同的区域结构进行数据恢复与归类。
18.优选地,所述单元内容区为各个单元组成的区域,所述空闲区域为单元指针数组和单元内容区之间的区域,由部分已删除数据的地址偏移、0值和已删除数据组成,所述自由块区域为单元内容区中已删除的单元所构成的区域。
19.优选地,所述用于从提取的存储数据的区域中根据不同的区域结构进行数据恢复与归类,具体包括:
20.若提取的存储数据的区域属于b 树叶子页,解析获得单元内容区的字段类型和数量,并匹配所有建表语句,判断属于哪一个数据表,基于空间局部性,同一页中自由块区域和空闲区域中的数据结构与单元内容区一致(所述内存镜像数据写入遵循空间局部性的特征,同一个内存页中存储的是同一个文件中的数据,其数据结构保持一致),由此恢复自由块和空闲区域中的已删除数据,并写入对应数据表中;
21.若提取的存储数据的区域属于其他类型的内存页,提取空闲区域起始处的部分已删除数据的地址偏移,解析获得对应地址处数据的字段类型和数量并匹配所有建表语句,判断属于哪一个数据表,基于空间局部性恢复剩余的数据记录并写入对应数据表中。
22.优选地,所述恢复自由块区域中已删除数据的具体过程为:
23.根据自由块的第3、4字节获取该自由块的大小;
24.将自由块的第四个字节置为0x00,设其为字段1,将其字段类型与单元内容区中获得的字段类型进行匹配,若不一致,则字段1的位置后移一个字节,直到匹配成功;
25.依据字段类型提取数据记录内容,数据记录成功提取后,若没有到达自由块大小,
则表明此自由块不止一条记录,继续对该自由块剩余区域使用相同方法进行恢复,若字段1后移至自由块第28字节或超出自由块大小,表明此自由块中数据记录已被覆盖,无法进行恢复;
26.优选地,所述恢复空闲区域中已删除数据的具体过程为:首先提取空闲区域中的非0数据,按照完整单元结构提取字段类型并与单元内容区中获得的字段类型进行匹配,若匹配成功,则进行数据恢复,若匹配失败,表明该条数据记录是自由块结构,按照自由块区域的数据恢复方法进行恢复;
27.若空闲区域还有剩余数据,表明存在多条数据记录,继续按照上述过程进行数据恢复。
28.本发明与现有技术相比,其显著优点为:1)本发明针对非易失性内存页进行分析而不是文件系统,解决了不同文件系统所带来存储机制差异的挑战,并且可以恢复由于非易失性内存磨损均衡而未被擦除的垃圾页中的证据数据;2)本发明对android设备的非易失性内存镜像按页进行扫描获取有效内存页,并发往数据记录恢复模块,将未删除数据和已删除数据的结构相结合,基于数据写入的空间局部性实现了高效且全面的数据恢复。
29.下面结合附图对本发明作进一步详细描述。
附图说明
30.图1为面向android取证的内存镜像数据恢复系统原理结构图。
31.图2为面向android取证的有效内存页提取的流程示意图。
32.图3为面向android取证的内存镜像数据记录恢复的流程示意图。
具体实施方式
33.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
34.结合图1,本发明提供了一种面向android取证的内存镜像数据恢复系统,包括有效内存页提取模块、数据记录恢复模块:
35.(1)有效内存页提取模块
36.如图2所示,有效内存页提取模块按页大小扫描非易失性内存镜像,一个内存页的大小通常是512字节的倍数,最常见的有2kb、4kb或者8kb。读取第一个字节,若为0x0d则可能是b 树叶子页,0x05则可能是b 树内部页,0x0a则可能是b-树叶子页,0x02则可能是b-树内部页,再进一步对第一个自由块偏移量、本页单元数、单元起始地址和单元指针数组的特征进行判断。第2到3字节为第一个自由块偏移量,由于单个内存页中存在空闲区域,所以第一个自由块偏移量一定小于一个内存页的大小。同样,第4到5字节的本页单元数以及第6到7字节的单元起始地址也都小于一个内存页的大小。叶子页中从第9个字节开始,而内部页中从第13个字节开始,为一组2字节大小的单元指针数组,同样也小于一个内存页的大小,并且其个数应对应于本页单元数,只有以上条件均满足才断定该页为有效内存页。
37.(2)数据记录恢复模块
38.如图3所示,数据记录恢复模块从接收到的有效内存页中提取存储数据的区域,通
过关键字匹配,获取非易失性内存镜像中所有数据表的建表语句。建表语句提取之后,在剩余区域中进行记录恢复。b 树叶子页中包括单元内容区、空闲区域、自由块区域,其中空闲区域和自由块区域存储已删除数据。首先解析获得单元内容区的字段类型和数量,并匹配所有建表语句,判断属于哪一个数据表,然后再基于空间局部性恢复自由块和空闲区域中的已删除数据,具体为:若为自由块区域,根据自由块的第3、4字节获取该自由块的大小,将自由块的第四个字节置为0x00,假设其为字段1,将其字段类型与单元内容区中获得的字段类型进行匹配,若不一致,则字段1的位置后移一个字节,直到匹配成功,依据字段类型提取数据记录内容,数据记录成功提取后,若没有到达自由块大小,则说明此自由块不止一条记录,继续对该自由块剩余区域使用相同方法进行恢复,若后移至自由块第28字节或超出自由块大小,说明此自由块中数据记录已被覆盖,无法进行恢复;若为空闲区域,首先提取空闲区域中的非0数据,按照完整单元结构提取字段类型并与单元内容区中获得的字段类型进行匹配,若匹配成功,则进行数据恢复,若匹配失败,说明该条数据记录是自由块结构,按照自由块的数据恢复方法进行恢复。若空闲区域还有剩余数据,说明存在多条数据记录,继续按照同样的方法进行数据恢复。基于空间局部性恢复数据记录并写入对应数据表中。在其余类型的有效内存页中,提取空闲区域起始处的部分已删除数据的地址偏移,解析获得对应地址处数据的字段类型和数量并匹配所有建表语句,判断属于哪一个数据表,基于空间局部性恢复剩余的数据记录并写入对应数据表中。
39.本发明利用非易失性内存局部性存储的思想,数据页本身是不会被分片存储的,有效地解决了不同文件系统所带来存储机制差异的挑战,并且可以恢复由于非易失性内存磨损均衡而未被擦除的垃圾页中的证据数据,同时利用非易失性内存镜像的内存页结构,将未删除数据和已删除数据的结构相结合,实现了高效且全面的数据恢复。
40.实施例
41.本实施例利用本发明的系统实现android设备的数据恢复。面向android取证的内存镜像数据恢复流程如下:
42.第一步,扫描内存页,分析该页结构,判断是否是有价值的证据数据所在的内存页,提取其物理地址。
43.第二步,通过分析第一步中提取的有效内存页,根据不同类型的内存页提取相应存储数据的区域。
44.第三步,在第二步中获得的区域中提取建表语句。
45.第四步,对执行第三步之后的剩余区域进行分析:
46.若属于b 树叶子页,首先解析获得单元内容区的字段类型和数量,并匹配所有建表语句,判断属于哪一个数据表,然后再基于空间局部性恢复自由块和空闲区域中的已删除数据;
47.若属于其他有效内存页,提取空闲区域起始处的部分已删除数据的地址偏移,解析获得对应地址处数据的字段类型和数量并匹配所有建表语句,判断属于哪一个数据表,基于空间局部性恢复剩余的数据记录。
48.第五步,将恢复的数据记录写入相应的数据表中。
49.以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原
理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献