CN102053880A - 一种基于内容的Rar文件雕复方法 - Google Patents

一种基于内容的Rar文件雕复方法 Download PDF

Info

Publication number
CN102053880A
CN102053880A CN 201110002234 CN201110002234A CN102053880A CN 102053880 A CN102053880 A CN 102053880A CN 201110002234 CN201110002234 CN 201110002234 CN 201110002234 A CN201110002234 A CN 201110002234A CN 102053880 A CN102053880 A CN 102053880A
Authority
CN
China
Prior art keywords
file
piece
data blocks
rar
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201110002234
Other languages
English (en)
Other versions
CN102053880B (zh
Inventor
徐�明
卫英杰
郑宁
张海平
徐建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN2011100022346A priority Critical patent/CN102053880B/zh
Publication of CN102053880A publication Critical patent/CN102053880A/zh
Application granted granted Critical
Publication of CN102053880B publication Critical patent/CN102053880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于内容的Rar文件雕复方法。目前的方法文件恢复效果不好。本发明方法首先根据用户输入信息定位到需进行文件雕复操作的磁盘分区,通过使用系统API函数获取磁盘分区的必要信息;其次在磁盘分区上搜索Rar文件的文件头块、文件数据块和文件尾块,并记录磁盘分区中的这三种数据块的起始位置;然后对产生的文件头块、文件数据块和文件尾块的集合进行预处理;最后雕复Rar文件。本发明方法运行速度快,精确度高,能在短时间内准确的搜索出组成Rar文件的各个部分。

Description

一种基于内容的Rar文件雕复方法
技术领域
本发明属于信息安全与计算机应用技术领域,涉及一种Rar文件雕复方法,特别是一种对磁盘中已经删除,相关文件系统元信息遭到破坏时的Rar文件雕复方法。
背景技术
随着信息时代的到来,计算机和数字设备使用数量的逐年增加。于此同时高科技犯罪和司法纠纷日益突出,存在于计算机及数字设备中的电子证据逐渐成为新的诉讼证据之一,大量的计算机犯罪案例的取证工作需要提取保存在计算机中的数据, 将犯罪者留在计算机中的“痕迹”作为有效的诉讼证据提供给法庭,以便将犯罪者绳之以法。此过程涉及的技术便是目前人们研究与关注的计算机取证技术。数据雕复技术则是计算机取证的核心技术之一。
传统的数据恢复技术依赖于文件系统的元信息,如文件分配表、目录结构等,来恢复已删除的文件。其原理是大部分文件系统删除文件时并不真正删除数据,而仅仅是将文件系统元信息中关于该文件的信息做修改,例如将分配给该文件的磁盘区域做上标记以表示该存储区域未被使用,文件系统可以将其分配给新文件使用。当一个文件被删除后,如果文件分配表里分配给该文件的簇之间的链接信息仍然存在,则该文件就可以很容易被恢复。利用文件系统元信息进行数据恢复的处理过程简单且快速,原理是只需要考虑未分配的磁盘区中的数据恢复问题。然而,当文件系统元信息遭到不可抗力或反取证技术等种种因素破坏时,此时依赖于文件系统元信息的传统文件恢复技术手段就无效了。文件雕复技术是对传统数据恢复技术的进一步发展,该技术在不借助文件系统元信息的前提下,尝试利用特定的文件结构和数据内容来恢复数据文件。因此,文件雕复技术成为计算机取证领域中的重要研究课题之一,具有重要的理论价值和实际意义。
目前,国内外在此领域的研究刚刚起步。国内还没有比较成熟的文件雕复软件,目前比较著名的文件雕复软件均为国外产品如Easy Recovery,Recover My Files等,这些商业软件虽然支持大量的不同种类文件,但是效果都不理想,只能恢复在磁盘上连续存储且数据完整的文件,不能恢复在磁盘上分片存储的文件,不能恢复非关键部位数据损坏的文件,也不能恢复满足局部完整性的残留文件数据。Rar文件作为最常用的压缩文件之一,其优点主要在于:(1)压缩率高,支持固实压缩,即把要压缩的多个文件作为一个数据流进行压缩。(2)安全性高,旧版Rar文件使用私有加密算法,新版Rar文件使用AES加密算法,两种加密算法目前很难破解。(3)Rar文件可以附带冗余修复信息,在压缩文件数据遭到损坏但修复信息足够完好时可以对压缩文件数据进行修复。
目前,Rar文件雕复的基本技术依然是利用文件系统和文件类型的特有信息(File type-specific information)来恢复文件。文件类型最基本的特征的是Header和Footer,因此可以把这种基本技术称为Header-Footer Carving。Header指示文件的开始数据块,Footer表示文件的结束数据块,两者之间的数据即是该文件内容。基于Header-Footer的雕复技术,在处理Rar文件雕复问题时,仅能解决在磁盘上连续存储且数据完整的情况,由于Rar文件通常体积较大,在磁盘上通常以分片形式存储,如果添加修改操作频繁,则连续存储的可能性更小,当Rar文件被删除,由于磁盘使用时间的增加、磁盘空间紧缺等因素的影响,其文件数据所占用空间被分配给新文件的概率极大,即其文件数据极有可能被重写覆盖。面对Rar文件分片,数据丢失的雕复问题,传统的Header-Footer Carving并不能得到很好的结果,目前用于学术研究的一些雕复工具如:Foremost,PhotoRec等在实际磁盘的测试中由于采用了类似的雕复技术,虽然在假肯定率上比商业软件有所降低,但由于只能恢复连续存放的文件,因此仍不能得到让人满意的效果。
发明内容
本发明的目的是在于克服现有技术中的不足,针对Rar文件结构的独特性,提供一种Rar文件雕复方法,特别是一种对磁盘中已经删除,相关文件系统元信息遭到破坏时的Rar文件恢复方法。该方法能面向数据恢复和计算机勘查、侦破、取证工作的需要,对用户计算机中的Rar文件进行恢复,从而可以对Rar文件进行取证分析,寻找犯罪证据。
本发明的方法具体步骤如下:
步骤(1)根据用户输入信息定位到需进行文件雕复操作的磁盘分区,通过使用系统API函数获取磁盘分区的必要信息,所述的必要信息包括磁盘分区的大小、扇区数和簇数目;
步骤(2)在磁盘分区上搜索Rar文件的文件头块、文件数据块和文件尾块,并记录磁盘分区中的这三种数据块的起始位置;
所述的文件头块包括Marker Block、Archive Header和Comment Block;所述的文件数据块包括File Header和Data;所述的文件尾块为End Block;
对于文件头块搜索是通过字符串匹配方法寻找到Marker Block,跳过Marker Block,利用Head-CRC字段验证Archive Header和Comment Block确保文件头块的正确性;
对于文件数据块搜索是先利用Head-Type字段通过字符串匹配的方法进行搜索,然后利用Head-CRC字段验证File Header;
对于文件尾块搜索是通过字符串匹配的方法在磁盘分区上寻找该块;
步骤(3)对步骤(2)产生的文件头块、文件数据块和文件尾块的集合进行预处理,具体是:通过文件头块、文件数据块和文件尾块的起始位置,利用各个块内部字段排列顺序,依次获取各个块的大小信息并保存;
步骤(4)雕复Rar文件,具体包括以下步骤:
4-1集合文件数据块,选择该集合D中起始位置最小的文件数据块作为当前处理块X,以X为首节点创建代表当前待恢复Rar文件的链表L,并删除集合D中的元素X
4-2寻找起始位置                                                
Figure 2011100022346100002DEST_PATH_IMAGE001
,如果能寻找到起始位置
Figure 866061DEST_PATH_IMAGE001
满足
Figure 668932DEST_PATH_IMAGE002
的文件数据块Y,则将
Figure 181691DEST_PATH_IMAGE001
A X 作比较,分为情况①和情况②;如果没有找到满足条件的,则转入步骤4-4;
情况①:
Figure 2011100022346100002DEST_PATH_IMAGE003
。如果,那么表明文件数据块X与文件数据块Y之间存在断点,则转入步骤4-3;如果
Figure 2011100022346100002DEST_PATH_IMAGE005
,那么表明文件数据块X与文件数据块Y是连续的,不存在断点,则将文件数据块Y作为当前处理块X,并将Y插入至链表L尾部,删除集合D中的元素Y,转入步骤4-2;如果
Figure 62425DEST_PATH_IMAGE006
,那么表明文件数据块X与文件数据块Y不属于同一个Rar文件,那么转入步骤4-2;
情况②:
Figure 2011100022346100002DEST_PATH_IMAGE007
。转入步骤4-3;
其中A X 代表文件数据块X的起始位置,S X 代表文件数据块X的大小,C代表一个簇的大小;
步骤4-3通过枚举解压测试方法寻找文件数据块的断点,具体是:
根据文件数据块X的起始位置A X 和文件数据块Y的起始位置A Y ,从
Figure 683768DEST_PATH_IMAGE008
开始,至
Figure 2011100022346100002DEST_PATH_IMAGE009
结束,以一个簇大小为步长,设置固定大小的滑动窗口,利用Rar文件数据解码模块测试文件数据块,以此确定断点;
如果没有找到断点,那么转入步骤4-2;如果找到了断点,那么将文件数据块Y作为当前处理块X,并将Y插入至链表L尾部,删除集合D中的元素Y,转入步骤4-2。
步骤4-4确定当前待恢复Rar文件的文件尾块,具体是:
集合文件尾块,如果能从该集合E中寻找到起始位置
Figure 128394DEST_PATH_IMAGE001
满足的文件尾块Y,则将
Figure 959264DEST_PATH_IMAGE001
A X 作比较,分为情况Ⅰ和情况Ⅱ;如果没有找到满足条件的文件尾块Y,则转入步骤4-7;
情况Ⅰ:。如果
Figure 873310DEST_PATH_IMAGE004
,那么表明文件数据块X与文件尾块Y之间存在断点,则转入步骤4-5,如果
Figure 464828DEST_PATH_IMAGE005
,那么表明文件数据块X与文件尾块Y是连续的,不存在断点,则将Y插入至链表L尾部,并删除集合E中的文件尾块Y,转入步骤4-6,如果,那么表明文件数据块X与文件尾块Y不属于同一个Rar文件,那么转入步骤4-4;
情况Ⅱ:
Figure 512474DEST_PATH_IMAGE007
。转入步骤4-5;
步骤4-5通过枚举解压测试方法寻找文件数据块的断点,具体是:
根据文件数据块X的起始位置A X 和文件数据块Y的起始位置A Y ,从
Figure 292211DEST_PATH_IMAGE008
开始,至
Figure 625103DEST_PATH_IMAGE009
结束,以一个簇大小为步长,设置固定大小的滑动窗口,利用Rar文件数据解码模块测试文件数据块,以此确定断点;
如果没有找到断点,那么转入步骤4-4;如果找到了断点,那么表明找到了一个缺失文件头的Rar文件,将Y插入至链表L尾部,删除集合E中的文件尾块Y,转入步骤4-6;
步骤4-6将链表L的首节点作为数据块Y,集合文件头块,如果能从该集合H中寻找到起始位置A X 满足
Figure 439475DEST_PATH_IMAGE002
的文件头块X,表明找到了一个完整的Rar文件,将文件头块X插入至链表L头部,删除集合H中的文件头块X;如果没有找到满足条件的文件头块X,则转入步骤4-8;
步骤4-7为由步骤4-4产生缺失尾部的Rar文件添加构造的文件尾部,转入至步骤4-6;
步骤4-8为由步骤4-6产生缺失头部的Rar文件添加构造的文件头部,使其成为完整有效的Rar文件;
步骤4-9遍历链表L,输出完整的Rar文件,从而完成一个Rar文件的雕复;判断数据块集合D是否为空,如果数据块集合D为空,那么结束雕复过程,如果数据块集合D为非空,那么转入步骤4-1。
本发明根据Rar文件结构和内容的特有信息,对用户计算机磁盘进行搜索,尽可能多的恢复Rar文件。本发明从总体上提供了一种新型的Rar文件雕复解决方案,能够快速、高效,精确的恢复Rar文件。具体来说,实现了以下几个目标:
能够将磁盘中已删除,相应的文件系统元信息遭到破坏的Rar文件恢复出来;
能够恢复连续存储且数据完整的Rar文件;
能够恢复分片存储的Rar文件;
能够恢复非关键部位数据损坏的Rar文件;
能够恢复满足局部完整性的Rar残存数据;
能够有效的减少假肯定,恢复正确率较高。
本发明的有益效果:(1)运行速度快,精确度高,能在短时间内准确的搜索出组成Rar文件的各个部分;(2)能够精确匹配出属于同一个Rar文件的所有部分;(3)能够精确的定位到分片文件数据的断点;(4)能够寻找到丢失文件头尾结构的Rar文件数据以及满足局部完整性的Rar残存数据(5)能够自动修复丢失文件头尾结构的Rar文件数据以及满足局部完整性的Rar残存数据;(6)程序对硬件要求低,系统资源占用少,使用方便。
附图说明
图1为本发明的Rar文件预处理流程图;
图2为本发明的Rar文件雕复流程图。
具体实施方式
以下结合附图对本发明作进一步描述。
图1给出的是Rar文件雕复预处理流程图。从图中可以看出对Rar文件预处理包括以下几个步骤:
步骤(1)根据用户输入信息定位到需进行文件雕复操作的磁盘分区,通过使用系统API函数获取磁盘分区的必要信息,所述的必要信息包括磁盘分区的大小、扇区数和簇数目;
步骤(2)在磁盘分区上搜索Rar文件的文件头块、文件数据块和文件尾块,并记录磁盘分区中的这三种数据块的起始位置;
所述的文件头块包括Marker Block、Archive Header和Comment Block;所述的文件数据块包括File Header和Data;所述的文件尾块为End Block;
Marker Block,Archive Header,Comment Block,File Header和End Block内容起始部分依次为Head-CRC,Head-Type,Head-Flags,Head-Size,Add-Size五个字段,其中Head-CRC占2个字节,表示该块的循环冗余校验,具体从Head-Type字段开始,计算长度为块大小减去2;Head-Type占2个字节,表示块的类型,其中Marker Block的Head-Type为0x72,Archive Header为0x73,Comment Block的Head-Type为0x7A,File Header的Head-Type为0x74,End Block的Head-Type为7B;Head-Flags为标志位,占2个字节,用于计算块的大小,如果(Head-Flags & 0x8000)= 0,块大小为Head-Size,如果(Head-Flags & 0x8000)!= 0,块大小为(Head-Size + Add-Size);Head-Size占2个字节;Add-Size占4个字节。
对于文件头块搜索是通过字符串匹配方法寻找到Marker Block,其中Marker Block为一串固定字节序列{0x52,0x61,0x72,0x21,0x1A,0x70,0x00},根据文件分配特点,在每个簇的起始位置开始利用字符串匹配搜索寻找Marker Block结构,找到该字符串后认为该字节序列可能为Marker Block结构,跳过该字节序列,读取Archive Header部分的Head-Type字段,如果等于0x73,对从Head-Type开始的后11个字节计算CRC值,取该CRC值的低四位,与0x73的前2个字节值(Archive Header的Head-CRC字段)做比较,相等则表明是Archive Header结构。跳过Archive Header字节序列,读取Comment Block的Head-Type字段,如果等于0x7A,继续读取Head-Size,计算从0x7A开始长度为Head-Size减去2数目的字节序列的CRC值,取CRC值的低四位,与Comment Block的Head-CRC字段做比较,相等则表明是Comment Block。找到Marker Header后,按照上述方法利用Head-Type和Head-CRC字段验证Archive Header和Comment Block确保文件头块的正确性;
对于文件数据块搜索是先利用Head-Type字段通过字符串匹配的方法进行搜索,然后利用Head-CRC字段验证File Header;File Header中的固定字节序列为Head-Type,为0x74,利用字符串匹配的方法遍历磁盘分区,找到0x74字节后,假定该字节为Head-Type字段,计算从0x74开始File Header大小减去2长度的字节序列的CRC值,取CRC值的低四位判断是否等于Head-CRC值,其中File Header的大小等于Head-Size值,相等表明寻找到File Header结构;
对于文件尾块搜索是通过字符串匹配的方法在磁盘分区上寻找该块,End Block为一串固定字节序列{0xC4,0x3D,0x7B,0x00,0x40,0x07,0x00},通过字符串匹配的方法在磁盘分区上寻找该块;
步骤(3)对步骤(2)产生的文件头块、文件数据块和文件尾块的集合进行预处理,具体是:通过文件头块、文件数据块和文件尾块的起始位置,利用各个块内部字段排列顺序,依次获取各个块的大小信息将这些块的大小信息与其起始位置一起保存。文件头块的大小由Marker Block,Archive Header,Comment Block组成,Marker Block和Archive Header大小固定为20个字节,Comment Block大小为(Head-Size + Add-Size);文件数据块大小由File Header和Data组成,File Header大小为Head-Size,Data数据块大小信息由Pack-Size字段和High-Pack-Size字段组成,Pack-Size紧跟Head-Size字段,占4个字节,High-Pack-Size相对File Header起始位置偏移为32,当(Head-Flag & 0x100)!=0时,Data大小为(Pack-Size + High-Pack-Size),否则Data大小为Pack-Size。文件尾块为End Block,其中大小固定为7个字节。
图2给出的是Rar文件雕复流程图。从图中可以看出对Rar文件雕复过程包括以下几个步骤:
步骤(1)集合文件数据块,选择该集合D中起始位置最小的文件数据块作为当前处理块X,以X为首节点创建代表当前待恢复Rar文件的链表L,并删除集合D中的元素X
步骤(2)寻找起始位置
Figure 261938DEST_PATH_IMAGE001
,如果能寻找到起始位置
Figure 466654DEST_PATH_IMAGE001
满足的文件数据块Y,则将
Figure 334433DEST_PATH_IMAGE001
A X 作比较,分为情况①和情况②;如果没有找到满足条件,该条件为公式
Figure 265480DEST_PATH_IMAGE002
,则转入步骤(4);
情况①:。如果
Figure 716425DEST_PATH_IMAGE004
,那么表明文件数据块X与文件数据块Y之间存在断点,则转入步骤(3);如果
Figure 146269DEST_PATH_IMAGE005
,那么表明文件数据块X与文件数据块Y是连续的,不存在断点,则将文件数据块Y作为当前处理块X,并将Y插入至链表L尾部,删除集合D中的元素Y,转入步骤(2);如果
Figure 325578DEST_PATH_IMAGE006
,那么表明文件数据块X与文件数据块Y不属于同一个Rar文件,那么转入步骤(2);
情况②:
Figure 600701DEST_PATH_IMAGE007
。转入步骤(3);
其中A X 代表文件数据块X的起始位置,S X 代表文件数据块X的大小,C代表一个簇的大小;
步骤(3)通过枚举解压测试方法寻找文件数据块的断点,具体是:
根据文件数据块X的起始位置A X 和文件数据块Y的起始位置A Y ,从
Figure 244172DEST_PATH_IMAGE008
开始,至
Figure 517022DEST_PATH_IMAGE009
结束,以一个簇大小为步长,设置固定大小的滑动窗口,利用Rar文件数据解码模块,该模块由RARlab提供,测试文件数据块,以此确定断点;
如果没有找到断点,那么转入步骤(2);如果找到了断点,更新X的信息为包括X的起始位置与第一块分片的大小以及第二块分片的起始位置及大小,将文件数据块Y作为当前处理块X,并将Y插入至链表L尾部,删除集合D中的元素Y,转入步骤(2)。
步骤(4)确定当前待恢复Rar文件的文件尾块,具体是:
集合文件尾块,如果能从该集合E中寻找到起始位置满足
Figure 197194DEST_PATH_IMAGE002
的文件尾块Y,则将
Figure 695172DEST_PATH_IMAGE001
A X 作比较,分为情况Ⅰ和情况Ⅱ;如果没有找到满足条件的文件尾块Y,则转入步骤(7);
情况Ⅰ:
Figure 466819DEST_PATH_IMAGE003
。如果,那么表明文件数据块X与文件尾块Y之间存在断点,则转入步骤(5),如果
Figure 237646DEST_PATH_IMAGE005
,那么表明文件数据块X与文件尾块Y是连续的,不存在断点,则将Y插入至链表L尾部,删除集合E中的文件尾块Y,转入步骤(6),如果,那么表明文件数据块X与文件尾块Y不属于同一个Rar文件,那么转入步骤(4);
情况Ⅱ:
Figure 470361DEST_PATH_IMAGE007
。转入步骤(5);
步骤(5)通过枚举解压测试方法寻找文件数据块的断点,具体是:
根据文件数据块X的起始位置A X 和文件数据块Y的起始位置A Y ,从
Figure 908295DEST_PATH_IMAGE008
开始,至
Figure 266596DEST_PATH_IMAGE009
结束,以一个簇大小为步长,设置固定大小的滑动窗口,滑动窗口大小为,利用Rar文件数据解码模块测试文件数据块,以此确定断点;
如果没有找到断点,那么转入步骤(4);如果找到了断点,那么表明找到了一个缺失文件头的Rar文件,更新X的信息为包括X的起始位置与第一块分片的大小以及第二块分片的起始位置及大小,将Y插入至链表L尾部,删除集合E中的文件尾块Y,转入步骤(6);
步骤(6)将链表L的首节点作为数据块Y,集合文件头块,如果能从该集合H中寻找到起始位置A X 满足
Figure 312271DEST_PATH_IMAGE002
的文件头块X,表明找到了一个完整的Rar文件,将文件头块X插入至链表L头部,删除集合H中的文件头块X;如果没有找到满足条件的文件头块X,则转入步骤(8);
步骤(7)为由步骤(4)产生缺失尾部的Rar文件添加构造的文件尾部,构造的文件尾部即为End Block,End Block为固定字节序列{0xC4,0x3D,0x7B,0x00,0x40,0x07,0x00},转入至步骤(6);
步骤(8)为由步骤(6)产生缺失头部的Rar文件添加构造的文件头部,使其成为完整有效的Rar文件,构造的文件头部包括Marker Header和Archive Header,其中Marker Header为固定字节序列{0x52,0x61,0x72,0x21,0x1A,0x70,0x00},然后构造通用Archive Header,其数据内容为{0xCF,0x90,0x73,0x00,0x00,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00}。
步骤(9)遍历链表L,输出完整的Rar文件,从而完成一个Rar文件的雕复;判断数据块集合D是否为空,如果数据块集合D为空,那么结束雕复过程,如果数据块集合D为非空,那么转入步骤(1)。

Claims (1)

1.一种基于内容的Rar文件雕复方法,其特征在于该方法包括以下步骤:
步骤(1)根据用户输入信息定位到需进行文件雕复操作的磁盘分区,通过使用系统API函数获取磁盘分区的必要信息,所述的必要信息包括磁盘分区的大小、扇区数和簇数目;
步骤(2)在磁盘分区上搜索Rar文件的文件头块、文件数据块和文件尾块,并记录磁盘分区中的这三种数据块的起始位置;
所述的文件头块包括Marker Block、Archive Header和Comment Block;所述的文件数据块包括File Header和Data;所述的文件尾块为End Block;
对于文件头块搜索是通过字符串匹配方法寻找到Marker Block,跳过Marker Block,利用Head-CRC字段验证Archive Header和Comment Block确保文件头块的正确性;
对于文件数据块搜索是先利用Head-Type字段通过字符串匹配的方法进行搜索,然后利用Head-CRC字段验证File Header;
对于文件尾块搜索是通过字符串匹配的方法在磁盘分区上寻找该块;
步骤(3)对步骤(2)产生的文件头块、文件数据块和文件尾块的集合进行预处理,具体是:通过文件头块、文件数据块和文件尾块的起始位置,利用各个块内部字段排列顺序,依次获取各个块的大小信息并保存;
步骤(4)雕复Rar文件,具体包括以下步骤:
4-1集合文件数据块,选择该集合D中起始位置最小的文件数据块作为当前处理块X,以X为首节点创建代表当前待恢复Rar文件的链表L,并删除集合D中的元素X
4-2寻找起始位置                                                
Figure 257335DEST_PATH_IMAGE001
,如果能寻找到起始位置
Figure 411235DEST_PATH_IMAGE001
满足
Figure 293741DEST_PATH_IMAGE002
的文件数据块Y,则将
Figure 583908DEST_PATH_IMAGE001
A X 作比较,分为情况①和情况②;如果没有找到满足条件的
Figure 526456DEST_PATH_IMAGE001
,则转入步骤4-4;
情况①:
Figure 902074DEST_PATH_IMAGE003
如果
Figure 322691DEST_PATH_IMAGE004
,那么表明文件数据块X与文件数据块Y之间存在断点,则转入步骤4-3如果
Figure 231479DEST_PATH_IMAGE005
,那么表明文件数据块X与文件数据块Y是连续的,不存在断点,则将文件数据块Y作为当前处理块X,并将Y插入至链表L尾部,删除集合D中的元素Y,转入步骤4-2;如果,那么表明文件数据块X与文件数据块Y不属于同一个Rar文件,那么转入步骤4-2;
情况②:
Figure 942263DEST_PATH_IMAGE007
转入步骤4-3;
其中A X 代表文件数据块X的起始位置,S X 代表文件数据块X的大小,C代表一个簇的大小;
4-3通过枚举解压测试方法寻找文件数据块的断点,具体是:
根据文件数据块X的起始位置A X 和文件数据块Y的起始位置A Y ,从
Figure 104254DEST_PATH_IMAGE008
开始,至
Figure 369013DEST_PATH_IMAGE009
结束,以一个簇大小为步长,设置固定大小的滑动窗口,利用Rar文件数据解码模块测试文件数据块,以此确定断点;
如果没有找到断点,那么转入步骤4-2;如果找到了断点,那么将文件数据块Y作为当前处理块X,并将Y插入至链表L尾部,删除集合D中的元素Y,转入步骤4-2;
4-4确定当前待恢复Rar文件的文件尾块,具体是:
集合文件尾块,如果能从该集合E中寻找到起始位置
Figure 653364DEST_PATH_IMAGE001
满足
Figure 502109DEST_PATH_IMAGE002
的文件尾块Y,则将
Figure 264529DEST_PATH_IMAGE001
A X 作比较,分为情况Ⅰ和情况Ⅱ;如果没有找到满足条件的文件尾块Y,则转入步骤4-7;
情况Ⅰ:
Figure 383794DEST_PATH_IMAGE003
如果
Figure 839046DEST_PATH_IMAGE004
,那么表明文件数据块X与文件尾块Y之间存在断点,则转入步骤4-5,如果
Figure 676552DEST_PATH_IMAGE005
,那么表明文件数据块X与文件尾块Y是连续的,不存在断点,则将Y插入至链表L尾部,并删除集合E中的文件尾块Y,转入步骤4-6,如果
Figure 242663DEST_PATH_IMAGE006
,那么表明文件数据块X与文件尾块Y不属于同一个Rar文件,那么转入步骤4-4;
情况Ⅱ:
Figure 278752DEST_PATH_IMAGE007
转入步骤4-5;
4-5通过枚举解压测试方法寻找文件数据块的断点,具体是:
根据文件数据块X的起始位置A X 和文件数据块Y的起始位置A Y ,从开始,至
Figure 229708DEST_PATH_IMAGE009
结束,以一个簇大小为步长,设置固定大小的滑动窗口,利用Rar文件数据解码模块测试文件数据块,以此确定断点;
如果没有找到断点,那么转入步骤4-4;如果找到了断点,那么表明找到了一个缺失文件头的Rar文件,将Y插入至链表L尾部,删除集合E中的文件尾块Y,转入步骤4-6;
4-6将链表L的首节点作为数据块Y,集合文件头块,如果能从该集合H中寻找到起始位置A X 满足
Figure 333930DEST_PATH_IMAGE002
的文件头块X,表明找到了一个完整的Rar文件,将文件头块X插入至链表L头部,删除集合H中的文件头块X;如果没有找到满足条件的文件头块X,则转入步骤4-8;
4-7为由步骤4-4产生缺失尾部的Rar文件添加构造的文件尾部,转入至步骤4-6;
4-8为由步骤4-6产生缺失头部的Rar文件添加构造的文件头部,使其成为完整有效的Rar文件;
4-9遍历链表L,输出完整的Rar文件,从而完成一个Rar文件的雕复;判断数据块集合D是否为空,如果数据块集合D为空,那么结束雕复过程,如果数据块集合D为非空,那么转入步骤4-1。
CN2011100022346A 2011-01-07 2011-01-07 一种基于内容的Rar文件雕复方法 Active CN102053880B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100022346A CN102053880B (zh) 2011-01-07 2011-01-07 一种基于内容的Rar文件雕复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100022346A CN102053880B (zh) 2011-01-07 2011-01-07 一种基于内容的Rar文件雕复方法

Publications (2)

Publication Number Publication Date
CN102053880A true CN102053880A (zh) 2011-05-11
CN102053880B CN102053880B (zh) 2012-08-08

Family

ID=43958231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100022346A Active CN102053880B (zh) 2011-01-07 2011-01-07 一种基于内容的Rar文件雕复方法

Country Status (1)

Country Link
CN (1) CN102053880B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399804A (zh) * 2013-07-31 2013-11-20 珠海金山网络游戏科技有限公司 一种远程打包文件修复的方法及系统
CN106227618A (zh) * 2016-07-11 2016-12-14 腾讯科技(深圳)有限公司 基于扩展文件系统的数据恢复方法及装置
CN103984608B (zh) * 2014-05-27 2017-01-04 大连理工大学 一种基于内容的图像文件雕复方法
CN106445737A (zh) * 2016-09-12 2017-02-22 恒为科技(上海)股份有限公司 一种多备份启动方法
CN106713926A (zh) * 2016-12-28 2017-05-24 北京普及芯科技有限公司 一种视频数据的压缩存储方法及装置
CN109656929A (zh) * 2018-12-25 2019-04-19 四川效率源信息安全技术股份有限公司 一种雕复关系型数据库文件的方法及装置
CN109697197A (zh) * 2018-12-25 2019-04-30 四川效率源信息安全技术股份有限公司 一种雕复Access数据库文件的方法
CN110175087A (zh) * 2019-05-20 2019-08-27 中国刑事警察学院 一种Office文件数据分片修复方法
CN111240893A (zh) * 2019-12-26 2020-06-05 曙光信息产业(北京)有限公司 一种基于数据流分片技术的备份和还原管理方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567239A (zh) * 2003-07-09 2005-01-19 成都市赛刻亿文高科技开发有限公司 计算机文件恢复方法
CN1692335A (zh) * 2002-11-01 2005-11-02 国际商业机器公司 容忍磁盘阵列中多个相关或任意双盘故障的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1692335A (zh) * 2002-11-01 2005-11-02 国际商业机器公司 容忍磁盘阵列中多个相关或任意双盘故障的方法和装置
CN1567239A (zh) * 2003-07-09 2005-01-19 成都市赛刻亿文高科技开发有限公司 计算机文件恢复方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《Digital Investigation》 20070617 Simson L.Garfinkel Garving contiguous and fragmented files with fast object validation S2-S12 1 , 2 *
《电脑开发与应用》 20051231 周日升等 Zip压缩文件数据修复技术研究 2-3,6 1 第18卷, 第10期 2 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399804A (zh) * 2013-07-31 2013-11-20 珠海金山网络游戏科技有限公司 一种远程打包文件修复的方法及系统
CN103984608B (zh) * 2014-05-27 2017-01-04 大连理工大学 一种基于内容的图像文件雕复方法
CN106227618A (zh) * 2016-07-11 2016-12-14 腾讯科技(深圳)有限公司 基于扩展文件系统的数据恢复方法及装置
CN106227618B (zh) * 2016-07-11 2019-01-29 腾讯科技(深圳)有限公司 基于扩展文件系统的数据恢复方法、装置及存储介质
CN106445737A (zh) * 2016-09-12 2017-02-22 恒为科技(上海)股份有限公司 一种多备份启动方法
CN106445737B (zh) * 2016-09-12 2023-03-10 恒为科技(上海)股份有限公司 一种多备份启动方法
CN106713926A (zh) * 2016-12-28 2017-05-24 北京普及芯科技有限公司 一种视频数据的压缩存储方法及装置
CN106713926B (zh) * 2016-12-28 2021-08-03 新岸线(北京)科技集团有限公司 一种视频数据的压缩存储方法及装置
CN109697197B (zh) * 2018-12-25 2023-05-02 四川效率源信息安全技术股份有限公司 一种雕复Access数据库文件的方法
CN109656929A (zh) * 2018-12-25 2019-04-19 四川效率源信息安全技术股份有限公司 一种雕复关系型数据库文件的方法及装置
CN109697197A (zh) * 2018-12-25 2019-04-30 四川效率源信息安全技术股份有限公司 一种雕复Access数据库文件的方法
CN109656929B (zh) * 2018-12-25 2023-06-02 四川效率源信息安全技术股份有限公司 一种雕复关系型数据库文件的方法及装置
CN110175087A (zh) * 2019-05-20 2019-08-27 中国刑事警察学院 一种Office文件数据分片修复方法
CN110175087B (zh) * 2019-05-20 2023-04-11 中国刑事警察学院 一种Office文件数据分片修复方法
CN111240893A (zh) * 2019-12-26 2020-06-05 曙光信息产业(北京)有限公司 一种基于数据流分片技术的备份和还原管理方法及系统
CN111240893B (zh) * 2019-12-26 2023-07-18 曙光信息产业(北京)有限公司 一种基于数据流分片技术的备份和还原管理方法及系统

Also Published As

Publication number Publication date
CN102053880B (zh) 2012-08-08

Similar Documents

Publication Publication Date Title
CN102053880B (zh) 一种基于内容的Rar文件雕复方法
CN107918612B (zh) 键值存储系统数据结构的实现方法和装置
CN104504105B (zh) 一种实时数据库的存储方法
CN104239443B (zh) 一种序列化数据操作日志的存储方法
CN102831222A (zh) 一种基于重复数据删除的差量压缩方法
CN102323958A (zh) 重复数据删除方法
CN102163226A (zh) 基于映射-化简和分词及邻接排序去重方法
CN103955530A (zh) 一种在线重复数据删除系统的数据重建优化方法
CN103838645B (zh) 一种基于哈希的远程差异合成备份实现方法
CN105630810B (zh) 一种对于海量小文件在分布式存储系统中上载的方法
CN102682024A (zh) 未残缺jpeg文件碎片重组的方法
CN101751475B (zh) 号段记录压缩方法及其装置
CN103886011A (zh) 一种基于索引文件的社会关系网络创建与检索系统及方法
CN110825941A (zh) 一种内容管理系统识别方法、装置和存储介质
CN103631589B (zh) 应用识别方法与装置
CN101499085B (zh) 快速提取关键帧的方法和装置
CN103020251A (zh) 大规模数据下的新闻事件自动挖掘系统及其方法
CN105447168A (zh) Mp4格式的碎片文件恢复与重组的方法
CN101777075B (zh) 并行音频指纹检索方法
CN106033438A (zh) 舆情数据存储方法和服务器
CN106407442A (zh) 一种海量文本数据处理方法及装置
CN106874399B (zh) 一种联网备份系统及备份方法
CN111522950A (zh) 一种针对非结构化海量文本敏感数据的快速识别系统
CN110750494A (zh) 一种计算机领域中文件的分级存储系统
CN102053881B (zh) 一种基于内容的Zip文件雕复方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant