全站搜索
自定内容

文章正文
一种JPG文件碎片多的恢复方法
作者:管理员    发布于:2023-03-12 13:10:37    文字:【】【】【
摘要:JPG是一种优秀的图片压缩算法,其优点是压缩率、保真率高。从数据恢复的角度来解析JPG出现碎片后是不太容易恢复的,因为JPG类的文件结构性的元文件所占的容量相对整个文件的容量是极小的,文件中的大头被压缩数据给占用了,所以导致在定位碎片和判断碎片时没有参考点,从而重组失败。这也是为什么大量号称可以重组JPG碎片,但是在实际操作时却效果很差的原因。下边我们来看一个相关的JPG重组案例,用比较另类的方法实现重组。

故障存储:SD64G /exFAT

故障现象:

拍完照片后通过读卡器电脑端查看,结果发现连续有大约8JPG文件无法正常打开。使用通用恢复软件恢复后同样不能查看,提示损坏。

故障分析:

通过在WINHEX中查看出错的文件表现出相同的故障:

1、 文件容量大小正常

2、 第一个簇块是正常的,文件头看样子也正常。

3、 Fat表链出现问题,跳转FAT表发现指向为0,所以查看表链也仅能获取第一个簇块编号。

初步推测是可能是由于读卡器问题导致相关文件的FAT表被清0,文件变的不正常。


故障处理:

前边已经说过JPG的文件结构不太适合碎片的定位和重组,但是分析这个案例还是发现恢复是可行的,最终决定使用遍历的方法进行按簇写入再查看。

因为在文件系统中所有写入最小单位是簇,那么以簇块为单位进行文件头之外的遍历写入,因为JPG的霍夫曼压缩算法是以行为单位,那么每写入一次去解析查看一次图片如果能得解压出正常的行,那么当前碎片就算吻合,如此重复直到完成。当然要想做到这些,至少要保证以下几点:

1、 文件没有被覆盖过至少一簇

2、 尽可能的压缩查找区间,在很小的范围内进行遍历。

3、 遍历过程中进行初步判断排除一些无用的碎片,因为存在JPG交叉碎片的情况,所以提升遍历的质量也很重要。

基于以上三点,写了一个小程序,实际使用效果非常好,当然这个也和此卡仅仅拍摄照片有关系,如果卡中数据过于复杂,如存在视频文件,视频文件也是压缩算法会导致遍历成本增加。

如下图,通过这个程序可以探测出文件尾,缩小遍历区间,同时做到第3点要求,最终成功恢复出6JPG文件,极其完美。另外2JPG,经过对比文件头所在的簇有覆盖产生,所以已经不满足之前我们说的条件了,无法有效恢复。考虑到这个案例的特殊性,此程序仅提供一种极端情况下的恢复方案,如果碎片区间过大,区间中干扰信息较多,那么遍历的成本就会无限增加!

这就是JPG文件碎片的恢复方法,算是一个另类的采用笨办法遍历的方法,当然从恢复结果来看虽然方法笨但是有效!大家在遇到此类问题时,可以和我们联系。

CHS实验室官方QQI:11391767  QQII: 758414867   客服QQ:490476236   微信:151 3508 5893

脚注信息
 晋ICP备12008728号-1   客服邮箱:cpx-cym@163.com  客服QQ1:490476236   客服QQ2:908138976
51客服