
故障存储:
32GB TF卡/MS fat32文件系统/簇大小:32KB
故障现象:
客户描述此卡被手机APP远程批量删除了大量视频文件,当发现时已经使用了一小段时间,卡的剩余空间还有29.7G(如图1)。图2中可以看到卡已经有新的视频文件写入不过数量不算多,这种情况理论上讲应该是可以恢复的。客户提供了要恢复视频的精确时间段,大约需要不到40分钟的视频文件。
图1:卡的剩余空间还有29.7G
图2:卡中已经写入了新的视频文件不过数量不算多
故障分析:
家用智能摄像机处理的最多就是小米,360不算多,不过360和小米也有共同点,基本上规律如下:
1、1分钟生成一个文件。
2、文件格式为MP4,小米的摄像机一般使用HVC高清编码,而360则使用AVC编码的多一些。
3、采用的方案是在生成当前MP4文件结构体时,已经在采集新的视频画面数据,此时会导致两个文件碎片交叉。
下边我们聊下360智能摄像机的恢复难点:
恢复难点:在于第3条,碎片化的文件。这种设计理念会随着写入文件的数量的增加导致碎片化机率暴增,最后小到一个碎片仅有一簇大小,这个就是文件系统的极限了。由于视频文件的结构体和数据区是分开的,所以过于碎片化的文件会导致“音视频”数据区交叉,360智能摄像机视频编码为AVC音频编码为AAC,都是压缩算法,所以根本没有任何规律而言(有规律的一定是结构体而不是数据本身)。在这种极端情况下使用CHS零壹视频恢复程序高级版也可以恢复出数据,但是很显然在这种情况下程序是无法判断所有碎片的归属关系的,这个时候恢复就需要手工介入,根据恢复时的经验来定数据在进行判断。
图3:1.9M的文件在32K簇大小情况下竟然有40个碎片(注:配图和簇参数为其它案例)
故障处理:
根据这种复杂的情况,通用型的恢复软件是无法恢复的,原理如下:
1、删除或者格式化后FAT32或者exfat 都会对FAT表进行清0,清0后存在碎片的文件是无法得到有效的链表的,没有链表就无法得到准确的数据。
2、由于文件不连续存放,所以此时通用型恢复软件只能采用起始簇指针+文件长度进行“野蛮定位”,最终数据全部错误无法播放(如图5)。
图4:通用的恢复软件对于碎片化的文件无能为力
图5:文件的碎片化恢复出错无法播放
说了这么多难道真的没有办法恢复了?办法有,我们看图说话(如图6),之前的案例解释的很清楚了感兴趣的小伙伴可以爬楼观看,这里只简述就不再码字了 :-) :-) :-)
目录项中有文件起始簇和文件长度,
通过这两项可以定位文件头所在,并且可以获取到文件大小,这些很重要,相等于做了一个初步定位。剩下的精细定位就需要靠经验来判断了,如果实在判断不出来(比如两个视频帧数据交叉了),只能用穷举法来一个个去试。基于这种恢复理念,碎片数量越多工作量越大。
图6:视频、音频帧数据存在碎片的简略图
直接请出我们之前编写的“MOOV视频RAW级重组程序“,程序的精度和便利度已经很好了,所以直接处理即可,目前此程序已经迭代到V2.0了,增加了目录自动处理、全局分析、扫描结果自动保存和加载等功能,算法上一直在向更好的方向发展,之前只是为了解决这种问题写的一个比较简陋的程序经过近两年的补充目前却快长成了参天大树,有些算法的提出到实现经历了“不可能”到“可以更好”的过程。这些算法在前阵子在另一个大型设备恢复中起到了巨大的作用,这或许就是数据恢复的魅力所在!
当然这个程序目前还仅仅是停留在半自动状态,因为多碎片的问题本身就“不可能”自动化解决,我们是在这种“不可能”中去寻求“效果极佳”的恢复方案!同时在这里也回答一个很多朋友的问题,这款程序不会公开发布,因为它不具备自动化恢复的要素。
图7是某一个长度为6.24M的视频文件恢复完成后统计的碎片数量,可以看到文件虽小但是碎片数量却很大,达到了114个碎片,如果是手工处理可以说一个文件就要耗费大量的时间而且极易出错。而在2.0程序的帮助效率比之前要提升了不少,经过近1天的恢复,成功恢复出指定时间的40多个文件,至此恢复工作完成!
图7:MOOV视频RAW级碎片重组程序已经迭代到2.0
这就是360智能摄像机删除视频文件的恢复方法,对于此类智能摄像头,CHS恢复的效果可以做到取证级别:确保每一帧声音、画面都100%正常,目前成功助力各大公检法机构的取证需求,大家在遇到此类问题时,欢迎和CHS数据实验室联系!