您的位置:首页 > 其它

U盘FAT系统手工恢复二进制文档碎片经典案例分析

2010-07-01 23:58 295 查看
[align=center]U[/b]盘[/b]FAT[/b]系统手工恢复二进制文档碎片经典案例分析[/b][/b][/align]
U盘的文件系统一般为FAT16或者FAT32(目前主要为后者),文件在删除或者中病毒后会把文件在FAT表中占相应的簇位清空,并将其目录项的首个字节改为E5,如果文件不连续,比如经常在U盘内编辑更新的文件就会产生碎片,这时针对某个重要的文件,比如说文档就不能利用软件来恢复,在FAT表被清零的情况下软件的恢复原理是根据文件的目录项里记录的文件超簇跟大小,按文件连续存储的方式来恢复的,现在,就给大家介绍如何用WINHEX手工来恢复二进制文档.
此案例针对已经对二进制文档有一定了解的数据恢复人员,如果不明白也可以再去学习下论坛里的相关资料,华山剑客在这方面给出了很充分的资料,大家搜下就有了.
下面以恢复”实践报告正文.DOC”为例,故障现象为客户误删除了此文件,用软件可以把文件找回来,但打开出错.

分析故障,初步判断是文档存在碎片,首先要寻找正确的文件头,如何判断呢?可看到在WINHEX里面有三个此文件,依次进行分析:
先判断第一个文件:

跳转至其目录项,可知其大小为(00142E00/H)1322496字节/512=2583扇区=1291.5K,跟WINHEX看到的大小是一致的,再跳到其文件头,用WIHNEX的列出文件族数功能就可以方便的查看了:

可以看到这是一个文档的文件头,在偏移2C-2F/H的位置可以知道文件有1个SAT配置表,这个跟目录项中文件大小为1.3M大小不符合,因此这个文件头不对.
接下来跳到第二个文件,同样跳到其目录项,分析其文件大小也为1.3M,然后跳到文件头,

可以看到其配置表总数为(15/H)21个,那么根据配置表总数估算文档大小为(一个配置表大概为60K的文档):21*60=1260K,符合文档大小,初步判断此文件头是正确的.
接下来再判断第三个文件:

可以看到这个文件的文件头明显不是二进制文档的文件头,因此排除这个.

通过以上判断可以初步确定第二个文档的文件头是正确的,因此接下来的手工恢复就针对此文件头来恢复.
由DBR偏移OD的位置可知一个簇由8个扇区构成,在WINHEX列出的簇中查看前几个族,

发现第二个簇后很多簇全部为0扇区,接下往下看,分析发现接下来的簇都不是文档的内容,此该文档的FAT表应该是全部被清空了,为了证实这一点,我们跳到70815号簇,

可以看到从70815号簇开始,FAT表都没有被占用,因此断定此文件是不连续存储的且被删除了.

再跳到第二个文档的文件头,此扇区在U盘的581276号扇区

可以看到,此文档的最后一个配置表在偏移9C-9F/H的位置,指向第2582个扇区(即表示文档中的第2582个扇区为文档的最后一个配置表),而在偏移30-33/H位置则为ROOT目录的位置,指向2583个扇区,即最后一个配置表的下一个扇区即为ROOT目录,可以知道ROOT目录所在的扇区是文档的最后几个扇区之一,有了这些信息,我们就可以来搜寻文档的结尾部分(或者说最后一个簇).
在配置表中,FDFFFFFF表示此扇区位置为一个配置表,一个配置表可以记录128个扇区,那么最后一个配置表的偏移位置就可以这样计算:
2581/128=20…..21,那么在扇区中第21个配置表的偏移为:21*4=84,在搜索时我们就可以这样设置,以文档头为搜索起点,向下在偏移扇区512-84搜索FDFFFFFF,具体设置如下图:

搜索得到如下结果:

比较幸运,全盘只找到一个符合此条件的,我们来分析这个扇区,首先很明显,这是一个文档的配置表,从偏移58-5A/H的值:00000A17/H=2583可以看出,前一个FDFFFFFF所在的扇区应该是2582,刚才我们所要找的最后一个配置表的位置也正是在2582扇区,更进一步核对,去到搜索到的扇区的上一个扇区,内容很明显是连续的,他的第一个配置表的位置在偏移04-07/H,它的前两个扇区的值为00000A00/H=2560,那么第一个配置表就应该在2560+2=2562扇区,

我们再跳回到文件头,看到它的第一个扇区配置表,

刚好第一个配置表指向的位置也为2561+1=2562,说明这个是文档的正确的文档结束部分(最后一个簇).
我们跳到此扇区所在的簇号的第一个扇区,再往跳几个簇,发现在文档内容很像是连续的,因为我们大胆的推断,文档的后面部分作为一个碎片,并且这个碎片占了文档的很大一部分内容,首先,我们假设此文档有两个碎片,一个为文档头所在的扇区部分,另一部分为文档尾的部分,此扇区在U盘中为2970899号扇区.

此扇区明显为文档的结束扇区,我们现在跳到文档的目录项

可知其扇区大小为:1324544/512=2587个扇区;
现在结果出来了:
1号碎片: 581276-581283号扇区,为文档0-7号扇区;
2号碎片: 2968321-2970899号扇区,为文档的8-2586号扇区;
验证,现在跳到U盘的2968321号扇区,可以看到以下内容

此扇区内容跟1号碎片的最后一个扇区(如下图)相比

可以发现,两者内容相连性很高,即说明这两部分碎片是相连的,也就在说刚才推断碎片为2个的推断很可能是正确的
OK了,现在把这两部分复制到一个新文件,新建一个大小为等于或者略大于2587扇区大小的新文件,把文档的两个碎片复制到相应位置,保存为DOC后缀,打开,OK,文件完整恢复了

文档完恢复!!!

由于我刚开通博客,上传图片有大小限制,我也懒得改图片大小了,大家如果感兴趣的话直接去中国硬盘基地看我发的帖子:http://bbs.intohard.com/thread-73455-1-1.html
作者:abian(转载请注明出处!)
qq: 1533701227,欢迎交流数据恢复相关问题!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: