一种基于SSD映射表的删除数据和历史记录恢复方法及装置制造方法及图纸

技术编号:35303290 阅读:14 留言:0更新日期:2022-10-22 12:52
本发明专利技术给出了一种基于SSD映射表的删除数据和历史记录恢复方法及装置,包括读取SSD上所有用于存放映射表的Flash块,将Flash块记为映射表块,对其按照顺序进行排序;按照映射表排序顺序从旧到新依次从每个Bank中取出Bank上所有逻辑地址LBA的所有映射记录;从每个Bank中取出最新的映射记录,重组SSD硬盘数据,并将每个Bank的一个历史映射记录作为一次回退状态;当对文件的历史编辑记录进行恢复时,对文件的扇区地图进行分析计算出文件的所有LBA所在的Bank块,取出文件所在的所有Bank的所有历史映射记录并将所有Bank的映射记录进行排序,每条映射记录对应一次回退状态,用户在回退状态中选择所需恢复的历史编辑记录。本发明专利技术能够实现数据恢复也可通过映射记录恢复文件编辑记录。文件编辑记录。文件编辑记录。

【技术实现步骤摘要】
一种基于SSD映射表的删除数据和历史记录恢复方法及装置


[0001]本专利技术涉及计算取证安全
,尤其是一种基于SSD映射表的删除数据和历史记录恢复方法及装置。

技术介绍

[0002]SSD(Solid State Drives),也称作固态硬盘。SSD主要由SSD控制器和Flash阵列组成,具有良好的随机读写性能,正在逐步取代传统机械硬盘。由于SSD引入的TRIM指令会实时将逻辑地址(以下称LBA)的数据清空,造成SSD数据恢复的极大困难,当前市面对SSD删除数据的恢复还没有成熟通用的方法。
[0003]由于SSD能实时将LBA数据清零,传统基于文件系统的数据恢复已经无法恢复出被删除的数据。研究发现SSD内部通过FTL软件层管理Flash地址(以下称PBA)到LBA的映射关系,文件删除时候,FTL将LBA映射关系删除,并没有实际删除数据。由于SSD删除数据后LBA映射关系已经被删除,现在市面上的恢复软件通过读取LBA的数据便无法真正实现数据恢复。

技术实现思路

[0004]本专利技术提出了一种基于SSD映射表的删除数据和历史记录恢复方法及装置,以解决上文提到的现有技术的缺陷。
[0005]在一个方面,本专利技术提出了一种基于SSD映射表的删除数据和历史记录恢复方法,包括以下步骤:
[0006]S1:读取SSD上所有用于存放映射表的Flash块,将Flash块记为映射表块,对映射表块按照顺序进行排序;
[0007]S2:按照映射表排序顺序从旧到新依次从每个Bank中取出Bank上所有逻辑地址LBA的所有映射记录,获得从旧到新的所有Bank的映射记录;
[0008]S3:从每个Bank中取出最新的映射记录,重组SSD硬盘数据完成SSD硬盘的数据恢复,并将每个Bank的一个历史映射记录作为一次回退状态;
[0009]S4:当对文件的历史编辑记录进行恢复时,对文件的扇区地图进行分析计算出文件的所有LBA所在的Bank块,取出文件所在的所有Bank的所有历史映射记录并将所有Bank的映射记录进行排序,每条映射记录对应一次回退状态,用户在回退状态中选择所需恢复的历史编辑记录。
[0010]在具体的实施例中,对映射表块按照顺序进行排序具体包括块排序规则和同一个块内的页排序规则,其中,
[0011]块排序规则包括先对映射表块按照块分配顺序进行排序,块分配顺序大的排前面,块分配顺序小的排后面;
[0012]同一个块内的页排序规则包括对同一个映射表块内的页按照页编号进行排序,页编号大的排在前,页编号小的排在后。
[0013]在具体的实施例中,S2具体包括:
[0014]S21:将SSD上所有映射表块放入集合F中,并读取每个映射表块OOB中的分配顺序放入其对应的映射表块分配顺序FSn,根据块排序规则对集合F进行排序;
[0015]S22:从集合F中取出一个最新未处理块Fi,将最新未处理块Fi上所有的Bank的映射表放入集合M中,并读取集合M中各Bank映射表所在的起始页编号磁盘上存储某一文件的,根据同一个块内的页排序规则对集合M进行排序;
[0016]S23:从集合M中取出一个最新的未处理Bank映射表,放入其对应Bank映射表集合的映射记录末尾;
[0017]S24:重复S23直至集合M中所有Bank映射表都处理完成,重复S22集合Fi中所有映射表块都处理完成,所有Bank的映射记录按映射的先后顺序整理放入所有Bank映射表映射记录集合B中。
[0018]在具体的实施例中,步骤S3中从每个Bank中取出最新的映射记录,重组SSD硬盘数据具体包括:
[0019]S31:从SSD的所有LBA的集合中取出一个地址最小的未处理块LBA,计算其所在的Bank,并从集合B中取出Bank的映射记录集合Bi;
[0020]S32:从集合Bi中取出地址最小的未处理块LBA的最新未处理过的映射关系,响应于最新未处理过的映射关系映射到有效物理地址PBA,将最新未处理过的映射关系写入重组后的映射表;
[0021]S33:根据重组后的映射表将物理地址PBA填入逻辑地址LBA中;
[0022]S34:扫描SSD磁盘最新数据区域,获取所有文件的存储区域集合,对于存储区域集合中任一文件存储区域LBA集合中的startoffset和length元素在重组后的映射表中获取对应所有PBA集合,并将PBA数据按对应LBA顺序填入文件中。
[0023]在具体的实施例中,S4具体包括:
[0024]S41:从文件存储区域LBA集合中取出一个未处理的元素,根据startoffset和length元素计算其所在的Bank编号;
[0025]S42:从集合B中取出存在于磁盘上存储某一文件的存储区域的LBA所在Bank的映射记录,存放于集合XB中,对集合XB进行排序,并计算集合XB中的元素个数,元素个数为文件具有的历史编辑记录数,记录中每个Bank映射对应文件的一次修改记录并写入磁盘数据的回退状态;
[0026]S43:根据用户选择的不同的历史编辑记录,将文件中该记录所属的Bank中的所有LBA替换为历史记录中的LBA数据。
[0027]在具体的实施例中,S42中还包括响应于Bank编号不存在于磁盘上存储某一文件的存储区域的LBA所在的Bank映射记录集合XB中,从集合Bi中取出Bank编号的所有映射记录放入集合XB中;重复S41直至文件存储区域LBA集合中所有元素都处理完成。
[0028]在具体的实施例中,S42中对集合XB进行排序具体包括:先根据映射表块分配顺序FSn排序,映射表块分配顺序FSn大的为新,小的为旧;映射表块分配顺序FSn相同的Bank,根据Bank映射表所在起始页的页编号排序,页编号大的为新,小的为旧。
[0029]根据本专利技术的第二方面,提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时实施上述方法。
[0030]根据本专利技术的第三方面,提出了一种基于SSD映射表的删除数据和历史记录恢复装置,包括:
[0031]磁盘数据读取模块:配置用于读取SSD上所有用于存放映射表的Flash块,将Flash块记为映射表块,对映射表块按照顺序进行排序;
[0032]映射记录获取模块:配置用于按照映射表排序顺序从旧到新依次从每个Bank中取出Bank上所有逻辑地址LBA的所有映射记录,获得从旧到新的所有Bank的映射记录;
[0033]数据重组模块:配置用于从每个Bank中取出最新的映射记录,重组SSD硬盘数据完成SSD硬盘的数据恢复,并将每个Bank的一个历史映射记录作为一次回退状态;
[0034]历史编辑记录恢复模块:配置用于当对文件的历史编辑记录进行恢复时,对文件的扇区地图进行分析计算出文件的所有LBA所在的Bank块,取出文件所在的所有Bank的所有历史映射记录并将所有Bank的映射记录进行排序,每条映射记录对应一次回退本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SSD映射表的删除数据和历史记录恢复方法,其特征在于,包括以下步骤:S1:读取SSD上所有用于存放映射表的Flash块,将所述Flash块记为映射表块,对所述映射表块按照顺序进行排序;S2:按照映射表排序顺序从旧到新依次从每个Bank中取出所述Bank上所有逻辑地址LBA的所有映射记录,获得从旧到新的所有Bank的映射记录;S3:从每个所述Bank中取出最新的映射记录,重组SSD硬盘数据完成SSD硬盘的数据恢复,并将每个所述Bank的一个历史映射记录作为一次回退状态;S4:当对文件的历史编辑记录进行恢复时,对所述文件的扇区地图进行分析计算出所述文件的所有LBA所在的Bank块,取出所述文件所在的所有Bank的所有历史映射记录并将所有所述Bank的映射记录进行排序,每条所述映射记录对应一次回退状态,用户在所述回退状态中选择所需恢复的历史编辑记录。2.根据权利要求1所述的方法,其特征在于,对所述映射表块按照顺序进行排序具体包括块排序规则和同一个块内的页排序规则,其中,块排序规则包括先对所述映射表块按照块分配顺序进行排序,块分配顺序大的排前面,块分配顺序小的排后面;同一个块内的页排序规则包括对同一个映射表块内的页按照页编号进行排序,页编号大的排在前,页编号小的排在后。3.根据权利要求2所述的方法,其特征在于,所述S2具体包括:S21:将所述SSD上所有映射表块放入集合F中,并读取每个映射表块OOB中的分配顺序放入其对应的映射表块分配顺序FSn,根据所述块排序规则对所述集合F进行排序;S22:从所述集合F中取出一个最新未处理块Fi,将所述最新未处理块Fi上所有的Bank的映射表放入集合M中,并读取所述集合M中各Bank映射表所在的起始页编号磁盘上存储某一文件的,根据同一个块内的页排序规则对所述集合M进行排序;S23:从所述集合M中取出一个最新的未处理Bank映射表,放入其对应Bank映射表集合的映射记录末尾;S24:重复S23直至所述集合M中所有Bank映射表都处理完成,重复S22所述集合Fi中所有映射表块都处理完成,所有Bank的映射记录按映射的先后顺序整理放入所有Bank映射表映射记录集合B中。4.根据权利要求3所述的方法,其特征在于,步骤S3中从每个所述Bank中取出最新的映射记录,重组SSD硬盘数据具体包括:S31:从所述SSD的所有LBA的集合中取出一个地址最小的未处理块LBA,计算其所在的Bank,并从所述集合B中取出所述Bank的映射记录集合Bi;S32:从所述集合Bi中取出所述地址最小的未处理块LBA的最新未处理过的映射关系,响应于所述最新未处理过的映射关系映射到有效物理地址PBA,将所述最新未处理过的映射关系写入重组后的映射表;S33:根据所述重组后的映射表将所述物理地址PBA填入逻辑地址LBA中;S34:扫描SSD磁盘最新数据区域,获取所有文件的存储区域集合,对于所述存储区域集合中任一文件存储区域LBA集合中的startoffset和length元素在所述重组后的映射表中获取对应所有PBA集合,并将PBA数据按对应LBA顺序填入文件中。
5.根据权利要求4所述的方法,其特征在于,所述S4具体包括:S41:从所述文件存储区域LBA集合中取出一个未处理的元素,根据startoffset和length元素计算其所在的Bank编号;S42:从集合B中取出存在于磁盘上存储某一文件的存储区域的LBA所在Bank的映射记录,存放于集合XB中,对所述集合XB进行排序,并计算所述集合XB中的元素个数,所述元素个数为文件具有的历史编辑记录数,记录中每个Bank映射对应所述文件的一次修改记录并写入磁盘数据的回退状态;S43:根据用户选择的不同的所述历史编辑记录,将所述文件中该记录所属的Bank中的所有LBA替换为历史记录中的LBA数据。6.根据权利要求5所述的方法,其特征在于,所述S42中还包括响应于所述Bank编号不存在于磁盘上存储某一文件的存储区域的LBA所在的Bank映射记录集合XB中,从所述集合Bi中取出所述Bank编号的所有映射记录放入所述集合XB中;重复S41直至所述文件存储区域LBA集合中所有元素都处理完成。7.根据权利要求5所述的方法,其特征在于,所述S42中对所述集合XB进行排序具体包括:先根据所述映射表块分配顺序FSn排序,所述映射表块分配顺序FSn大的为新,小的为旧;所述映射表块分配顺序FSn相...

【专利技术属性】
技术研发人员:杜辉阳邵炳阳沈长达黄志炜
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1