硬盘数据恢复环境故障情况:
某单位的重要数据在运行WINDOWS操作系统的PC上通过网络与公司员工共享。该PC还连接有打印机以提供打印服务。许多员工直接将文件复制到这台电脑上进行打印。这台电脑上只有一个500G的磁盘。
电脑F盘分区所有类型的文件突然打不开。
故障表现:
1、文件名、时间、路径完全正确,占用磁盘空间正确。
2.打开jpg文件时提示:“Windows照片查看器无法打开此图像,因为照片查看器不支持此文件格式,或者您没有安装最新的照片查看器更新。”
3、打开doc文件时提示:“请选择使文档可读的编码”。如果选择任何编码,文件都会错误。
4、打开docx文件时提示:“该文件无法打开,因为内容有错误”。
5、打开xls文件时提示:“您尝试打开的文件格式与文件扩展名指定的格式不一致,请在打开之前验证文件未损坏且来源可信”文件。”
6、打开xlsx文件时提示:“您无法打开该文件,因为文件格式或文件扩展名无效。”请确保文件未损坏并且文件扩展名与文件格式匹配。”
7、打开PDF文件时提示:“打开文档时出错,文档已损坏且无法修复”。
8、其他类型的文件无法正常打开。
故障检测结果分析:
1、硬盘没有物理故障。除F盘外,其他分区数据均正常。
2. 未启用加密。
3. 不使用第三方软件进行分区大小调整和合并。
4.无操作系统问题或计算机病毒入侵。
5、无其他异常操作。
将硬盘连接到安全的运行环境后(不加载盘符,不自动写入数据,保证完全只读),发现文件系统底层正常,但出现错误在数据区。以PDF文件为例,在工具中打开如下图:
普通PDF文件的二进制结构必须以0x46445025(即ASCII“%PDF”)开头,但该文件的开头以0x71736712开头。比较两者,这显然是异或转换。经计算,两者的差(异或)为0x37。此PDF 文件的末尾也发现了篡改。
因此,在工具中选择文件的所有内容,并将所选块与0x37进行字节异或(xor):
保存后打开,文件正常。接下来我们分析了其他文件,发现篡改算法是将所有文件异或到某个值,但这个值是不确定的。根据字节概率计算应该有256种可能性。再加上文件数量多、种类多,显然人工修正的工作量过大。钱北亚的数据恢复工程师分析了其异或加数的生成规则。流程如下:
1、推断是否与路径有关:打开同一路径下的不同文件,分析被篡改的异或加数。如果发现它们不同,则将其排除。
2、推断是否与文件名有关:查找所有文件,按名称排序,找到文件名相同但大小不同的文件,打开并分析被篡改的异或加数。如果发现它们不同,则将其排除。
3、推断是否与类型有关:找到几个相同类型的不同文件,分析被篡改的异或加数,如果发现不同,则排除。
4、推断是否与存储的物理位置有关:根据工具中不同文件的起始位置来分析被篡改的异或加数。没有发现相关性,因此被排除。
5、推断是否与文件头有关:查找具有相同头的文件(同一文件有不同更新,头相同),分析后排除。
6. 不太可能推断尾部相关是可能的。如果后续分析仍无法得到形态,则需要再次返回本项进行验证。
7、推断是否与文件创建时间有关:找到两个创建时间相同、访问时间相同、最后访问时间相同的文件,进行分析,发现不相关,排除。
8、推断是否与尺寸有关:经过简单验证,没有给出反例来推翻它,但需要充分证明与尺寸有关。同时,为了得到算法,需要足够的样本。
对于与尺寸相关的验证:
通过命令打印所有文件的大小:
查找./|xargs ls -ld 2/dev/null|awk '{printf($5'\t\t'$9'\n');}' ./list.txt
使用Excel 打开此列表文件。
由于篡改导致的异或加数只有一个字节。如果和大小有关的话,最有可能对应的是文件大小值的mod 256,所以在excel中计算的是所有文件大小值的mod 256。
按mod 256 对值进行排序。
排序后:
对mod 256相同的文件进行了篡改验证,未发现异常情况。基本上可以确定篡改值与文件大小值的mod 256之间存在映射关系。
对所有可能性进行采样分析后,得到篡改异或加数的生成规则:
至此,篡改算法就得到了。
硬盘数据恢复过程:
1.根据之前得到的算法,钱北亚的数据恢复工程师通过Visual Studio编写了修复程序。
2.使用程序修复F分区中的数据。修复完成后,随机检查了修复的文件,没有报错。为了进一步判断恢复的数据是否正常,找到了所有JPG文件并显示了缩略图。没有发现任何异常。
3、搜索所有doc文件,显示作者和标题,没有发现异常。
4、交给用户测试。用户要求各部门抽调人员对恢复的数据进行测试,没有发现问题。至此数据恢复工作完成。