一种jpg碎片文件恢复与重组的方法

文档序号:9349820阅读:963来源:国知局
一种jpg碎片文件恢复与重组的方法
【技术领域】
[0001]本发明涉及信息安全技术领域,特别涉及一种JPG碎片文件恢复与重组的方法。
【背景技术】
[0002]JPG格式是一种图片格式,是一种比较常见的图画格式,在信息化迅速发展的21世纪,计算机技术日新月异,与人们的日常生活息息相关,存储设备数据丢失往往能给个人,甚至企业单位带来无尽的烦恼与麻烦,在涉及计算机数据存储工作中,如在企业工作中,企业数据丢失造成的损失是不可估量的,小则使公司无法开展工作,大则可能导致企业损失惨重而倒闭,特别是在信息化企业中,公司的电子资料就是他们的命脉,如能恢复这些资料将能拯救企业,让企业的损失降到最低;如在公安领域,这些数据也许就是案件的电子证据,如果检验人员能够获取更多计算机中的数据,那么就更加有利于案件的早日侦破,也能够向法庭提供更多的可靠的证据;这对取证,特别是数据恢复工作提出了更高的要求。
[0003]目前,市场上使用最为流行的数据取证商业软件有encase、winhex、R-std1等,这些软件在常规文件记录存在,且文件连续是可以恢复的;一旦遇到文件记录不在或者文件存储位置不连续就无法恢复出这些文件中的数据或者关键信息。

【发明内容】

[0004]本发明针对现有技术的缺陷,提供了一种JPG碎片文件恢复与重组的方法,能有效的解决上述现有技术存在的问题。
[0005]—种JPG碎片文件恢复与重组的方法,包括以下步骤:
[0006]S1:加载磁盘分区或镜像文件,识别其分区类型,根据文件系统来查找该分区或者镜像的空闲簇,并按照顺序将空闲簇依次写入创建的空闲区集合,将空闲区集合定义为集合F,将存入集合F的一个空闲簇定义为一个元素F ;
[0007]S2:在集合F中检索含有JPG文件特征头的簇,并将含有JPG文件特征头的元素F组成数据块按照顺序依次写入创建的JPG头块集合中;将JPG头块集合定义为集合H,存入集合H的一个数据块定义为一个元素H ;并在集合F中剔除含有其他文件特征的元素F ;
[0008]S3:在集合F中检索包含JPG文件特征尾的簇,并按照顺序将空闲簇号依次写入创建的JPG尾块合集中,将JPG尾块合集定义为集合E ;
[0009]S4:根据上述集合F、集合H、集合E进行数据重组恢复,完成JPG碎片拼接过程;
[0010]S5:将S4中获取的数据进行整理后导出正确的JPG文件。
[0011 ] 作为优选,S2的详细流程如下所述:
[0012]S21:遍历查找集合F,读取集合F中每一个元素F的数据内容;
[0013]S22:根据JPG文件特征头对每一个元素F进行校验,找符合JPG文件特征头的元素F ;
[0014]S23:根据步骤S22中得到的符合JPG文件特征头元素F,获取元素F后连续的空闲簇组成一个元素H,写入创建的集合H中,同时,在校验集合F每个元素F的数据后,剔除带有其他文件特征的元素F,更新集合F ;
[0015]S24:读取集合H中的第一个元素H的数据内容;设该元素为Hn;所述η的初始值为I ;
[0016]S25:根据JPG文件的结构特征,校验Hn中所对应的簇的数据内容是否包含JPG文件的全部标志信息,若包含则跳至S29,若不包含则跳至S26 ;
[0017]S26:准确定位JPG文件的全部标志信息所在的簇,剔除不包含JPG文件标志信息的簇,更新Hn;
[0018]S27:执行η = η+1,在读取全新札的数据内容;
[0019]S28:判断S27读取的Hn元素是否到达集合H的尾部,若超出范围则跳至S29,否则跳至S24 ;
[0020]S29:剔除S25中校验不合格的簇,获取S26中的更新,重新整理集合H的元素。
[0021]作为优选,S4的详细流程如下所述:
[0022]S41:由集合F-(集合H+集合Ε)得到集合W ;在集合H中遍历每一个元素H并读取单个元素记录的最后一个簇,在集合F中定位该簇并取其后的4个元素F所记录的簇作为新集合的一个元素D,直至完成所有集合H的遍历;集合E和集合W以此方法继续创建元素D,由元素D按顺序组成新的集合D ;
[0023]S42:读取集合H中的第η个元素对应的内容,η的初始值为I ;
[0024]S43:读取集合D中第m个元素的数据,m需满足使元素Dni中记录的第一个簇号大于Hn中记录的最后的一个簇号;
[0025]S44:按照集合H中数据在前,集合D中数据在后的方式组合数据;
[0026]S45:通过对S44中组合的数据按照JPG解码流程进行校验,以判断是否符合JPG文件结构,若符合则跳至S46,否则跳至S410 ;
[0027]S46:判断S44中组合的数据是否有JPG文件结束的标记,若存在则跳至S413,否则跳至S47 ;
[0028]S47:判断Dni是否到达集合F的尾部,通过D?的最后一个簇号是否大于集合F中的最后一个簇号来判断,若是则跳至S49,否则跳至S48 ;
[0029]S48:在集合F中读取Dni中最后一个簇号的下一个簇号的数据,之后跳至S44 ;
[0030]S49:设m为初始值,在集合F中读取Dni中上一个空闲簇的数据,之后跳至S44 ;
[0031]S410:判断组合后的文件是否具备JPG文件的完整结构,若符合则跳至S411,否则跳至S412 ;
[0032]S411:将上述S46、S410校验合格的组合数据的所在簇号重新标记并写入札中,更新集合H后再次执行S41进行更新集合D,同时在集合F中剔除被写入Hn元素的簇号;
[0033]S412:判断集合H中的元素是否全部完成JPG碎片重组过程,若全部完成跳至S414,否则跳至S412 ;
[0034]S413:执行 η = η+1,然后跳至 S42 ;
[0035]S414:再次更新集合H,将集合H中无JPG图片数据,即是OxFFDA标志信息后至OxFFDQ之间字节数长度小于64byte的元素剔除。
[0036]与现有技术相比本发明的优点在于:可区分文件系统空闲区域,可准确查找到文件系统中所有JPG特征头、特征尾、数据区的所有数据,通过JPG特征头、特征尾、数据区的数据重组JPG文件,主要针对JPG图片在存储介质中为非连续存储的数据碎片进行重组的数据恢复,数据恢复成功率高。
【附图说明】
[0037]图1为发明实施例的主流程图;
[0038]图2为发明实施例S2的详细流程图;
[0039]图3为发明实施例S4的详细流程图。
【具体实施方式】
[0040]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。
[0041]如图1所示,一种JPG碎片文件恢复与重组的方法,包括以下步骤:
[0042]S1:加载磁盘分区或镜像文件,识别其分区类型,具体地支持的分区类型包括FAT32、NTFS, EXT2/3/4、UFS、HFS/HFS+,根据文件系统来查找该分区或者镜像的空闲簇,并按照顺序将空闲簇依次写入创建的空闲区集合,将空闲区集合定义为集合F,将存入集合F的一个空闲簇定义为一个元素F ;
[0043]假设扫描的空闲簇号结果4、6、7、9、11、12、13、45、46、47、48、49、50、100、103、104、105,其集合 F 的格式为{4,6,7,9,11,12,13,45,46,47,48,49,50,100,103,104,105}。
[0044]S2:在集合F中检索含有JPG文件特征头的簇,JPG文件特征头为“0xFFD8FFF” ;并将含有JPG文件特征头的元素F组成数据块按照顺序依次写入创建的JPG头块集合中;将JPG头块集合定义为集合H,存入集合H的一个数据块定义为一个元素H ;并在集合F中剔除含有其他文件特征的元素F ;
[0045]S3:在集合F中检索包含JPG文件特征尾的簇,JPG文件特征尾为“0xFFD9” ;并按照顺序将空闲簇号依次写入创建的JPG尾块合集中,将JPG尾块合集定义为集合E ;
[0046]S4:根据上述集合F、集合H、集合E进行数据重组恢复,完成JPG碎片拼接过程。
[0047]S5:将S4中获取的数据进行整理后导出正确的JPG文件。
[0048]如图2所示,S2的详细流程如下所述:
[0049]S21:遍历查找集合F,读取集合F中每一个元素F的数据内容;
[0050]S22:根据JPG文件特征头“0xFFD8FFF”对每一个元素F进行校验,找符合JPG文件特征头的元素F ;
[0051]S23:根据步骤S22中得到的符合JPG文件特征头元素F,获取元素F后连续的空闲簇组成一个元素H,写入创建的集合H中,同时,在校验集合F每个元素F的数据后,剔除带有其他文件特征的元素F,更新集合F ;
[0052]假设校验出符合JPG文件特征头的簇号为6、11、47、103,集合H的格式为{(6、7),(47、48、49、50), (103、104、105)}。
[0053]S24:读取集合H中的第一个元素H的数据内容;设该元素为Hn;所述η的初始值为I ;
[0054]S25:根据JPG文件的结构特征,校验Hn中所对应的簇的数据内容是否包含JPG文件的全部标志信息,若包含则跳至S29,若不包含则跳至S26 ;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1