此例要恢复的Excel电子表格大小为3.7M,去到WINHEX里面首先要确定文件的头对不对
在这里可以看到文件大小为3.7M,初步看文件头大小是对的
可以看到上图标记位置大小为3B000000=59,那么按照经验可能估算文件大小约为60KB*59=3540KB,这跟目录项的大小相近,那么这个头应该是对的。
接下来根据文档MSAT(下图标记位置)去寻找文件的结尾
可以看到在最后一个MSAT为681D0000=7528,因为文件MSAT的标记为FDFFFFFF,他的相应的偏移量为7528 MOD 128=104*4=416,于是可以搜索偏移量为416的地方搜索标记FDFFFFFFFEFFFFFF(因为最后一个主MSAT过后肯定是一个流的标记,而流的标记为FEFFFFFF,于是我们可以增加这个标识来增大搜索的精准度),如下图所示:
一般搜索从文件头的位置开始向下搜索。搜索到符合条件再要判断他的扇区对应位置对不对
如上图,可以看到标记位置ID为7469,那么第一个MSAT的位置则为7471(隔了8个字节),这时再看文件头看是否第一个MSAT指向7471扇区。
如上图第一个MSAT位置为7470,所对应扇区为7471(因为是相对位置,所以要加1才是对应的扇区位置),因此找到的这个位置有可能是文档的尾巴,针对U盘做碎片重组,FAT32的文件系统里的XLS文档多数是由两个碎片组成,其中一个碎片一个是文件头,由一个簇组成,除文件头其它部分则为第二个碎片。因为此种结构的文档最后一个扇区是目录流,结构如下图:
可以看到最后一个扇区位置为146662,这个是该文档的最后一个扇区,文件的第一个碎片为文档头开始的8个扇区,第二个碎片的大小则为除去文件头后的大小,结束位置为146662扇区。而从文档头可以知道文档的总大小。
从上图可以看到文件的最后一个扇区为为7530,那么大小为7531(因为从0开始计扇区),则碎片分为两部分,分别是0-7,8-7530。于是第二个碎片的开始位置就可以算出来了,为146662-(7530-8)=139140,现在跳到这个扇区
可以看到139140扇区内容明显是Excel电子表格的头内容,那么把139140-146662的扇区段保存为另一个碎片,再跟第一段组合起来文件就可以正常打开了。
转载请注明:成都千喜数据恢复中心 » Excel电子表格碎片手工重组详解