首页> 中国专利> 已删除文件的恢复方法、装置、设备及存储介质

已删除文件的恢复方法、装置、设备及存储介质

摘要

本发明提供了一种已删除文件的恢复方法、装置、设备及存储介质,方法包括扫描DATA区,获得文件的短文件目录项;通过短文件目录项区分文件是否为已删除文件;若文件为已删除文件,则获取短文件目录项中的起始簇号低位;根据起始簇号低位和DATA区中包含簇块的数量获得起始簇号高位的集合;将集合与起始簇号低位结合得到首簇号列表;遍历首簇号列表中的各首簇号对应的簇块,若簇块中所有的字节的值不全为零且簇块相邻的前一簇块的倒数N个字节的值全为零,则记该簇块为首簇块;通过首簇块和短文件目录项中的文件长度获得文件的完整簇块信息;根据完整簇块信息恢复文件。本发明的方法消除了文件格式对确定首簇的影响,可以恢复任意格式的文件。

著录项

  • 公开/公告号CN112905546A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 深圳软牛科技有限公司;

    申请/专利号CN202110277957.0

  • 发明设计人 陈观演;李盛;

    申请日2021-03-15

  • 分类号G06F16/16(20190101);G06F16/17(20190101);

  • 代理机构44653 深圳市特讯知识产权代理事务所(普通合伙);

  • 代理人孟智广

  • 地址 518000 广东省深圳市宝安区新安街道海旺社区N23卓越时代广场C栋海天路15-3号2903

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本发明涉及数据恢复技术领域,尤其涉及一种已删除文件的恢复方法、装置、设备及存储介质。

背景技术

FAT32文件系统的文件由文件目录项和文件内容构成,文件目录项存储着文件的名称、文件的首簇、文件的长度等信息,总共占用32个字节,而文件内容以簇块为基本单位,分簇块存储,文件目录项通过首簇块和FAT表中的对应链表和文件内容关联起来,文件夹同理,只不过文件夹存储的内容是长/短文件目录项,当文件/文件夹被删除的时候,短文件目录项的首簇的起始簇高位被清零,对应的FAT表链也会清零,因此通过短文件目录项直接获取的首簇地址一般都是不正确的,需要猜起始簇高位之后才能获取文件的首簇,现有技术猜起始簇高位通常是通过判断文件格式是否匹配来判断的,导致文件恢复的场景受限,无法满足文件恢复需求。

因此,现有技术还有待于改进和发展。

发明内容

本发明的主要目的在于解决现有技术的文件恢复方法需要通过文件格式来猜测首簇块,方法适用的场景受限,无法满足文件恢复需求的技术问题。

本发明第一方面提供了一种已删除文件的恢复方法,应用于FAT32文件系统,所述已删除文件的恢复方法包括:

扫描DATA区,获得文件的短文件目录项;

通过所述短文件目录项区分所述文件是否为已删除文件;

若所述文件为已删除文件,则获取所述短文件目录项中记载的起始簇号低位;

根据所述起始簇号低位和所述DATA区中包含簇块的数量,获得起始簇号高位的集合;

将所述集合与所述起始簇号低位结合,得到首簇号列表;

遍历所述首簇号列表中的各首簇号对应的簇块,若所述簇块中所有的字节的值不全为零且所述簇块相邻的前一簇块的倒数N个字节的值全为零,则记录所述簇块为首簇块;

通过所述首簇块和所述短文件目录项中记载的文件长度,获得所述文件的完整簇块信息;

根据所述完整簇块信息恢复所述文件。

在本发明第一方面一种可选的实施方式中,所述通过所述首簇块和所述短文件目录项中记载的文件长度,获得所述文件的完整簇块信息包括:

从所述首簇块对应的簇号开始,往后查找所有的后续簇块,直至所述首簇块和所述后续簇块的数据的总长度大于等于所述文件长度为止。

在本发明第一方面一种可选的实施方式中,若所述簇块使用ASCII编码,则所述N为1。

在本发明第一方面一种可选的实施方式中,若所述簇块使用Unicode编码,则所述N为1、2或4。

在本发明第一方面一种可选的实施方式中,所述根据所述短文件目录项区分所述文件是否为已删除文件包括:

若所述短文件目录项的首字节为E5,则所述文件为已删除文件。

在本发明第一方面一种可选的实施方式中,所述文件为连续存储文件。

在本发明第一方面一种可选的实施方式中,所述完整簇块信息包括首簇块的簇号和后续簇块的簇号。

本发明第二方面提供了一种已删除文件的恢复装置,所述已删除文件的恢复装置包括:

扫描模块,用于扫描DATA区,获得文件的短文件目录项;

区分模块,用于通过所述短文件目录项区分所述文件是否为已删除文件;

第一获取模块,用于若所述文件为已删除文件,则获取所述短文件目录项中记载的起始簇号低位;以及根据所述起始簇号低位和所述DATA区中包含簇块的数量,得到起始簇号高位的集合;

列表模块,用于将所述集合与所述起始簇号低位结合,得到首簇号列表;

遍历模块,用于遍历所述首簇号列表中的各首簇号对应的簇块,若所述簇块中所有的字节的值不全为零且所述簇块相邻的前一簇块的倒数N个字节的值全为零,则记录所述簇块为首簇块;

第二获取模块,用于通过所述首簇块和所述短文件目录项中记载的文件长度,获得所述文件的完整簇块信息;

恢复模块,用于根据所述完整簇块信息恢复所述文件。

本发明第三方面提供了一种已删除文件的恢复设备,所述已删除文件的恢复设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

所述至少一个处理器调用所述存储器中的所述指令,以使得所述已删除文件的恢复设备执行上述任一项所述的已删除文件的恢复方法。

本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的已删除文件的恢复方法。

有益效果:本发明提供了一种已删除文件的恢复方法、装置、设备及存储介质,方法包括扫描DATA区,获得文件的短文件目录项;通过短文件目录项区分文件是否为已删除文件;若文件为已删除文件,则获取短文件目录项中的起始簇号低位;根据起始簇号低位和DATA区中包含簇块的数量获得起始簇号高位的集合;将集合与起始簇号低位结合得到首簇号列表;遍历首簇号列表中的各首簇号对应的簇块,若簇块中所有的字节的值不全为零且簇块相邻的前一簇块的倒数N个字节的值全为零,则记该簇块为首簇块;通过首簇块和短文件目录项中的文件长度,获得文件的完整簇块信息;根据完整簇块信息恢复文件。本发明已删除文件的恢复方法消除了文件格式对确定首簇的影响,可以恢复任意格式的文件,应用场景广泛。

附图说明

图1为本发明一种已删除文件的恢复方法的流程框图;

图2为本发明一种文件存储方式的示意图;

图3为本发明一种已删除文件的恢复装置的一个实施例示意图;

图4为本发明一种已删除文件的恢复设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种已删除文件的恢复方法、装置、设备及存储介质。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

FAT32文件系统的文件由文件目录项和文件内容构成,文件目录项存储着文件的名称、文件的首簇、文件的长度等信息,总共占用32个字节,而文件内容以簇块为基本单位,分簇块存储,文件目录项通过首簇块和FAT表中的对应链表和文件内容关联起来,文件夹同理,只不过文件夹存储的内容是长/短文件目录项。当文件/文件夹被删除的时候,短文件目录项的首簇块的起始簇高位会被清零,对应的FAT表链也会清零。因此通过短文件目录项获得的首簇号一般都是不正确的,还需要经过猜起始簇高位才能获取文件正确的首簇号。

为解决上述技术问题,请参阅图1,本发明第一方面提供了一种已删除文件的恢复方法,应用于FAT32文件系统,所述已删除文件的恢复方法包括:

S100、扫描DATA区,获得文件的短文件目录项;

在本实施例中,在FAT32文件系统中,根据结构不同可以将目录项大致分为四种:卷标目录项、“.”目录项和“..”目录项、短文件名目录项、长文件名目录项。其中,短文件名目录项是最重要的数据结构,其中存放着有关子目录或文件的短文件名、属性、起始簇号、时间值以及内容大小等信息;

S200、通过所述短文件目录项区分所述文件是否为已删除文件;

在本实施例中,FAT32文件系统中文件删除后,文件对应的短文件目录项的首字节会变成E5,因此,可以通过短文件目录项的首字节判断文件是否为已删除文件;

S300、若所述文件为已删除文件,则获取所述短文件目录项中记载的起始簇号低位;

在本实施例中,当FAT32文件中的文件被删除后,短文件目录项中记载的起始簇号高位会被清零,因此从短文件目录项文件只能够知道文件首簇块的起始簇号低位,要想获得首簇块对应的首簇号,就需要猜起始簇号高位,举个例子,把首簇号比作房门号来说,当文件未删除时,门房号是1801,18楼代表起始簇号高位,01代表起始簇号低位,而当文件被删除时,18会被清零,所以只能得到起始簇号低位01,为了获得首簇号,就需要假设起始簇号高位是1~32,之后一层一层的遍历;

S400、根据所述起始簇号低位和所述DATA区中包含簇块的数量,获得起始簇号高位的集合;

在本实施例中,在猜测起始簇号高位时,需要根据DATA区中包含簇块的数量获得起始簇号高位的范围,然后根据该范围得到起始簇号高位所有可能值,并形成集合;

S500、将所述集合与所述起始簇号低位结合,得到首簇号列表;

在本实施例中,通过起始簇号高位加起始簇号低位来得到首簇号,由于起始簇号高位有多个,因此可以得到多个首簇号,之后再对多个首簇号进行排列得到首簇号列表;

S600、遍历所述首簇号列表中的各首簇号对应的簇块,若所述簇块中所有的字节的值不全为零且所述簇块相邻的前一簇块的倒数N个字节的值全为零,则记录所述簇块为首簇块;

在本实施例中,由于FAT32文件系统中文件是以簇块为单位进行存储的且文件极有可能未占据完最后一个簇块,因此可以通过判断簇块相邻的前一个簇块的结尾是否被使用(未使用时,字节值为零)来判断该簇块是否为一个文件的起始簇块;

在一种实施方式中,在判断簇块相邻的前一簇块的倒数N个字节的值是否全为零之前还包括:判断簇块中文件所占用的空间是否不全为零值,这样做可以确保簇块中存储有文件内容,在簇块中不具有文件内容,从而可以不进行后续步骤的判断,节省判断时间,提高判断效率;

S700、通过所述首簇块和所述短文件目录项中记载的文件长度,获得所述文件的完整簇块信息;

在本实施例中,在知道文件的首簇块之后,由于文件通常是连续存储的,且文件长度也可以从短文件目录项中获得,因此只需要从首簇块开始往后查找后续簇块中保存的文件数据,直到文件长度满足要求为止;

S800、根据所述完整簇块信息恢复所述文件。

具体来说,在FAT32文件系统中,文件是以簇块为基本单位进行存储,所以文件极有可能未能占据完最后一个簇块,未使用的字节值默认为0,参见图2,文件2的首簇块的前一个簇块就是文件1的尾簇块,文件1的尾簇块末尾一般都会存在值为0的字节,文件夹同理。

在本发明第一方面一种可选的实施方式中,所述通过所述首簇块和所述短文件目录项中记载的文件长度,获得所述文件的完整簇块信息包括:

从所述首簇块对应的簇号开始,往后查找所有的后续簇块,直至所述首簇块和所述后续簇块的数据的总长度大于等于所述文件长度为止。

在本实施例中,比如通过起始簇高位已经获得首簇块的簇号是2号,那么从2号开始往后查找3号、4号、5号…N号簇块,如果当2号簇块、3号簇块和4号簇块中存储的文件总长度大于短文件目录项中记载的文件长度时,停止往后查找簇块,之后通过2号簇块、3号簇块和4号簇块中的数据恢复已删除文件。

在本发明第一方面另一种可选的实施方式中,若所述簇块相邻的前一簇块的倒数N个字节的值不全为零,则继续判断在所述首簇块中,从所述文件的最后一个字节的下一个字节开始,直至所述首簇块的扇区结束这段区间内,所有的字节的值是否均为零。

在本实施例中,在判断簇块的前一簇块的结尾的N个字节值不全为零后,还可以通过判断簇块自身结尾的N个字节值是否为零来确定该簇块是否为首簇块,即判断该簇块为未被重新分配使用状态则证明为首簇块。

在本发明第一方面一种可选的实施方式中,若所述簇块使用Unicode编码,则所述N为1、2或4;若所述簇块使用ASCII编码,则所述N为1。在本实施例中,当FAT32文件系统中采用不同的文件编码规则时,N的取值会不相同,以满足不同文件编码规则下首簇块的判断要求,使得首簇块的判断更加精确。

在本发明第一方面一种可选的实施方式中,所述根据所述短文件目录项区分所述文件是否为已删除文件包括:

若所述短文件目录项的首字节为E5,则所述文件为已删除文件。

在本实施例中,当文件/文件夹被删除的时候,文件的FAT表就会被清零,目录项首字节变成E5,因此可以通过判断短文件目录项的首字节是否为E5判断文件是否为已删除文件。

在本发明第一方面一种可选的实施方式中,所述文件为连续存储文件。在本实施例中,本发明的已删除文件主要是适用于文件为连续存储文件时的删除场景,在该场景下,已删除文件恢复的概率更高。

在本发明第一方面一种可选的实施方式中,所述完整簇块信息包括首簇块的簇号和后续簇块的簇号。在本实施例中,在知道了已删除文件中可能包括的首簇块和后续簇块的簇号后,从DATA区中读取相应簇块中的数据机壳实现对应文件的恢复。

参见图3,本发明第二方面提供了一种已删除文件的恢复装置,所述已删除文件的恢复装置包括:

扫描模块10,用于扫描DATA区,获得文件的短文件目录项;

区分模块20,用于通过所述短文件目录项区分所述文件是否为已删除文件;

第一获取模块30,用于若所述文件为已删除文件,则获取所述短文件目录项中记载的起始簇号低位;以及根据所述起始簇号低位和所述DATA区中包含簇块的数量,得到起始簇号高位的集合;

列表模块40,用于将所述集合与所述起始簇号低位结合,得到首簇号列表;

遍历模块50,用于遍历所述首簇号列表中的各首簇号对应的簇块,若所述簇块中所有的字节的值不全为零且所述簇块相邻的前一簇块的倒数N个字节的值全为零,则记录所述簇块为首簇块;

第二获取模块60,用于通过所述首簇块和所述短文件目录项中记载的文件长度,获得所述文件的完整簇块信息;

恢复模块70,用于根据所述完整簇块信息恢复所述文件。

在本发明第二方面一种可选的实施方式中,所述第二获取模块还用于从所述首簇块对应的簇号开始,往后查找所有的后续簇块,直至所述首簇块和所述后续簇块的数据的总长度大于等于所述文件长度为止。

在本发明第二方面一种可选的实施方式中,若所述簇块相邻的前一簇块的倒数N个字节的值不全为零,则继续判断在所述首簇块中,从所述文件的最后一个字节的下一个字节开始,直至所述首簇块的扇区结束这段区间内,所有的字节的值是否均为零。

在本发明第二方面一种可选的实施方式中,若所述簇块使用Unicode编码,则所述N为2;若所述簇块使用ASCII编码,则所述N为1。

在本发明第二方面一种可选的实施方式中,所述区分模块还用于若所述短文件目录项的首字节为E5,则所述文件为已删除文件。

在本发明第二方面一种可选的实施方式中,所述文件为连续存储文件。

在本发明第二方面一种可选的实施方式中,所述完整簇块信息包括首簇块的簇号和后续簇块的簇号。

图4是本发明实施例提供的一种已删除文件的恢复设备的结构示意图,该已删除文件的恢复设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器80(central processing units,CPU)(例如,一个或一个以上处理器)和存储器90,一个或一个以上存储应用程序或数据的存储介质100(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对已删除文件的恢复设备中的一系列指令操作。更进一步地,处理器可以设置为与存储介质通信,在已删除文件的恢复设备上执行存储介质中的一系列指令操作。

已删除文件的恢复设备还可以包括一个或一个以上电源110,一个或一个以上有线或无线网络接口120,一个或一个以上输入输出接口130,和/或,一个或一个以上操作系统,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图4示出的已删除文件的恢复设备结构并不构成对已删除文件的恢复设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述的非连续存储文件的恢复方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号