一种基于jpeg图片文件中数据相似度的碎片重组方法
【技术领域】
[0001] 本发明涉及数据恢复电子取证领域,特别涉及一种基于JPEG图片文件中数据相似 度的碎片重组方法。
【背景技术】
[0002] JEPG格式是一种图片格式,是一种比较常见的图画格式,在信息化迅速发展的21 世纪,计算机技术日新月异,与人们的日常生活息息相关,存储设备数据丢失往往能给个 人,甚至企业单位带来无尽的烦恼与麻烦,在涉及计算机数据存储工作中,如在企业工作 中,企业数据丢失造成的损失是不可估量的,小则使公司无法开展工作,大则可能导致企业 损失惨重而倒闭,特别是在信息化企业中,公司的电子资料就是他们的命脉,如能恢复这些 资料将能拯救企业,让企业的损失降到最低;如在公安领域,这些数据也许就是案件的电子 证据,如果检验人员能够获取更多计算机中的数据,那么就更加有利于案件的早日侦破,也 能够向法庭提供更多的可靠的证据。
[0003] 在对存储介质进行取证调查时,数据恢复之后往往得到的是文件的碎片而不是完 整的原始文件,对碎片进行恢复提取,特别是对受损的文件系统,如何展开取证调查成为了 一个亟待解决的问题。
[0004] 据资料统计,文件碎片在磁盘上的比率不少于10%,其中,42%的PST文件、17%的 MS-Mord文件、16%的JPEG文件存在碎片。以往对这些文件进行取证的主要方法是通过搜索 特定字符,进行收尾匹配,然后中间截取。显然这种方法仅限于连续分配的文件,或是已知 该文件扇区分布的情况,但对于碎片文件无法使用。本发明通过对JPEG文件碎片的分析,提 出一个对JPEG未残缺文件碎片重组的方法。
[0005] 文件碎片:主要是指文件不是以连续扇区的形式存储,被分割成2块或多块,一般 是在存储介质上创建文件后对文件进行删除、修改所造成的。
[0006] JPEG文件的完整结构:是指包含JPEG文件必需的标志信息,且每一个标志信息的 结构是完整且有效地,JPEG文件必需的标志信息包括0 xFFD 8、0 xFFDB、0 xFFCO、0 xFFC4、 0xFFDA、0xFn)9,其中0xFFD8必须位于文件头部,0xFFD9必须位于文件尾部,其他标志信息 无序。
[0007] MCU:是图像中一个正方矩阵像素的数据。在图片像素数据流中,信息可以被分为 一段接一段的最小编码单元(Minimum Coded Unit,MCU)数据流。在每一个MCU内部,数据的 顺序是¥、&、〇3。如果一个颜色分量有多个数据单元,则顺序是从左到右,从上到下。每个 MCU又分为若干个数据单元。数据单元的大小必定为8*8,所以每个MCU的数据单元个数为 Hmax*Vmax,Hmax是Y、Cr、Cb三个分量中水平采样因子最大值,Vmax是垂直采样因子最大值。
【发明内容】
[0008] 本发明针对现有技术的不足,提供一种基于JPEG图片文件中数据相似度的碎片重 组方法,传统的数据恢复技术或者取证产品往往借助于文件系统的相关信息,对碎片数据 进行提取,但是一旦面临文件系统受损,或者文件系统结构被破坏则仅仅能恢复少量的图 片信息。
[0009] 为解决以上问题,本发明采用的技术方案如下:一种基于JPEG图片文件中数据相 似度的碎片重组方法,包括如下步骤:
[0010] S1解析并划分待恢复的数据源所包含的结构,标记数据源中空闲簇的编号,并记 入集合F;
[0011] S2根据上述解析的待恢复数据源中的空闲簇编号,在该区域中定位JPEG文件特征 头的簇编号,并记入集合H;
[0012] S3遍历集合H,读取每一个包含JPEG文件特征头簇的数据内容,并在JPEG文件特征 头所在的簇内容后附加非特征头的空闲块中第一个簇的数据,并计算此时图片文件的相似 度值;
[0013] S4根据S3的计算结果,提取属于同一张图片的所有碎片数据进行组合,组合完成 后再次计算验证图片的相似度值。
[0014] 作为优选,S1的具体方法如下:读取待恢复的数据源中的内容,判断其是否有正常 的分区结构和文件系统,若有则按照对应的文件系统结构读取该数据源中空闲的簇编号, 并标记;若未包含正常文件系统,则默认将待恢复的数据源的全部内容作为空闲簇处理,且 簇的大小默认为8扇区。
[0015] 作为优选,S3具体方法如下:
[0016] S31遍历读取集合Η中每一个元素所在簇的数据,解析JPEG图片中OxFFCO标志信息 中所包含的图片的宽度和图片MCU矩阵的大小;
[0017] S32校验集合Η中每一个元素,判断当前块的所有数据为同一张 JPEG图片的内容;
[0018] S33在集合F中去掉与Η中相同元素的内容,即进行(F-H)的集合运算,在集合Η每个 元素的末尾添加集合(F-H)中的元素对应的第一个簇的数据;
[0019] S34在完成S33步骤中的数据组合后,计算组合后数据的相似度值,完成后更新空 闲簇集合F的元素;
[0020] S35判断当前集合Η的元素是否组合过集合(F-Η)中所有元素,若完全组合过跳至 S36,否则跳至S33;
[0021] S36记录验证成功的所有数据地址,重组成新的图片文件。
[0022]作为优选,S4还包括以下步骤,计算验证图片的相似度值后,将集合F中已经标记 为与特征头属于同一张图片的簇或簇块编号剔除;重复执行S3、S4步骤,直至集合Η中每一 个元素完成重组过程。
[0023]作为优选,S31具体如下:在图片文件中的OxFFCO标志后记录了图片文件的宽度、 高度以及颜色组件的采样因子,在OxFFCO标志的结构中,相对于OxFFCO标志头偏移7-8字节 的地址记录图片文件的宽度,相对于OxFFCO标志头偏移10-12、13-15、16-18字节的地址分 别记录了组成图片文件的三种颜色组件的采样因子,根据颜色组件的采样因子计算图片文 件的MCU的大小,计算Μ⑶大小的公式是(Hmax*8,Vmax*8),其中Hmax是三个颜色组件中水平 采样因子的最大值,Vmax是三个颜色组件中垂直采样因子的最大值,单个MCU矩阵的宽就是 Hmax*8,高就是 Vmax*8。
[0024]作为优选,S32如下:遍历集合Η中的元素,校验当前块的所有数据是否为同一张 JPEG图片的内容,若其中包含不属于同一张图片的内容数据,则以此把当前块分割为前后 两块,前一块为属于同一张图片文件的含JPEG特征头的簇块数据,后一块并将其标记为空 闲块,同时更新到集合F中。
[0025]作为优选,校验图片数据的方法如下:将图片的压缩数据按照S31中计算的MCU大 小划分成η个MCU矩阵;从头至尾依次选择两两相邻的MCU矩阵中第一个MCU的最后一行数据 和第二个MCU的第一行数据,参与图片的相似度值计算;在每一个MCU内部,数据的顺序是Υ、 Cr、Cb,将YCrCb按照R=Y+1.402Cr、G = Y-0 · 334Cb-0 · 714Cr、B = Y+l · 772Cb转换成RGB像素, 再根据d
「计算MCU-行数据的像素之间的差异值,其中,dr、dg、 db分别表示相邻像素之间的R、G、B差异值;根彳
1:00,计算MCU 之间的相似度值,其中η表示MCU的宽度,i表示包含的像素对的个数;比较上述计算的值与 预先设定的阈值,阈值范围是93到97,若计算的值小于预先设定的阈值则表示第二个MCU的 内容不属于该图片文件。
[0026]作为优选,S33具体还包括:集合Η中的元素遍历组合集合F-H中每一个元素的第一 个簇的数据;组合数据后,根据集合Η中元素数据解析的图片的MCU矩阵大小划分组合后的 数据区数据。
[0027]作为优选,