小程子 发表于 2010-3-13 15:49:04

一个XLS的碎片提取案例

最近接了一个用户的活,要求恢复一个XLS。该文件存储在一个移动硬盘上,用户误格式化了移动硬盘,写入了一定的数据,然后用软件扫描找到了大部分数据,但是有一个XLS却无法打开,在试了很多次都失败的情况下用户求助于我们。

首先对软件扫描的XLS进行了分析,发现仅仅只有文件头所在的簇(该逻辑盘8个SEC一个簇)是正常的,其它全部有问题,该文件没有ROOT没有SAT,如果文件头正确的话很明显这个文件应该是有碎片,然后软件扫描时只是简单的根据文件头进行了连续提取造成了文件的不正确。文件头开始于硬盘2006簇,以下为文件头的信息。

从文件问中可以得知,该XLS无MSAT,只有三个SAT扇区。接挨着文件头的是一个以0908开始的SEC,如果文件头正确那么该簇应该就是该XLS开始的前8个SEC,再往下的簇为INDEX是一个索引,很明显他不属于该文件,那么这个XLS很可能在此处被“隔”开了,碎片产生了。




从图中可以得知DocumentSummaryInformation的SID为303,正好在SAT第一个SID的前8个SEC,通过脚本很快定位了几个符合条件的,经过和用户沟通,从中找出一个符合要求的,如下图:


有了这些信息就好处理了,我们可以得到各个SHEET表的偏移值及长度,这样进行查找就方便了,经过两个小时的奋战终于得到了所有的SHEET表,如下图

xiongdeyuan 发表于 2010-3-13 16:37:04

沙发,支持小程子

sjhf2010 发表于 2010-3-13 17:57:50

谢谢楼主案例 支持~~

wbx2046 发表于 2010-3-13 19:49:21

对我来说仍然很遥远,您是我的偶像,我要努力,为了自己明天(38:(38:(38:

thekingofring 发表于 2010-3-14 14:37:38

支持下,努力学习ing

xxyysq 发表于 2010-3-14 21:23:33

遇到小程子的贴子,那是一定要顶的。

bohnet 发表于 2010-3-14 21:42:06

楼主学习下了

abian 发表于 2010-4-27 21:25:56


程爷,可不可以把你那个复合文档的相关模板发一份给我呀
看上它很久了,呵呵
有空的话发我tankzhr@qq.com邮箱吧

changjiang08 发表于 2011-2-23 11:45:36

谢谢!!!!!!!!!

a4100gao 发表于 2011-3-10 11:05:36

楼主学习下了
页: [1] 2 3
查看完整版本: 一个XLS的碎片提取案例