当前位置:华山数据 >>技术专栏>> 技术专题
用WinHex手工修复损坏的复合文档文件头
用WinHex手工修复损坏的复合文档文件头
1、本教程仅仅针对复合文档(比如Word、Excel等)的文件头损坏后的修复.
2、请允许我假设你已经了解复合文档的结构,至少你能知道复合文档中的一些术语(比如:SAT、SSAT MSAT、标准流、短流等),否则,请你弥补相关知识后继续阅读本教程(可以在百度上搜索“复合文档文件格式研究”的文章学习)
3、网上这方面的资料很少,所以本教程中有的名词是自己“命名”的,因此,相关名词请只在本教程中使用和理解!!

分析:这个文档的文件头损坏了,继续分析后面的内容损坏没有,现在把这个文档设置为磁盘(如图),复合文档在储存数据的最小单位是块(一个块是512个字节,相当于一个扇区的数据,所以有时我们也把它称为扇区),这样操作后看到的数据可以以一个扇区的形式呈现,便于分析和手工重建。
经过分析数据发现,这个文档好像只有第0扇区的数据完全破坏了,这个扇区的内容是复合文档的文件头内容,网上有恢复复合文档文件头的视频教程(这个论坛上就有!!),好像就是把一个正常的复合文档的前几行数据复制一下就行了,从理论上讲恢复的成功率极小,几乎是0。因为复合文档的结构和FAT文件系统极其相似,但比它还要复杂一些(涉及到短流、SSAT和MSAT),复合文档的文件头相当于FAT文件系统中的DBR,有很多参数是要根据文件的具体数据进行相应的修改。下图中红底黑字部分描述的就是一般要修改的内容(有7处,小的文档一般只改其中的5处),其它部分可以用一个正常的复合文档的相应数据代替。
要修复文件头,一般从扇区配置表(SAT)的数据分析开始,SAT相当于FAT文件系统中的FAT表,它把这个复合文档的各类数据“链”在一起,所以我们反过来通过分析它们的链接情况和相应位置的数据,来分析整个文档的数据结构,最后根据相关信息重建文件头,达到修复文件头的目的。
第1扇区(物理)
从这个扇区中的数据可以看到,在参数0扇区和参数100扇区这两个扇区中的数据是SAT数据(因为相应的位置是FDFFFFFF,而FDFFFFFF是存放SAT扇区标志),参数0扇区就是物理1扇区的位置,现在的这个位置就是SAT数据,不必再分析,现在到参数100扇区,就是物理101扇区去看看(如图):
第101扇区(物理)
这个扇区中没有FDFFFFFF,而且从偏移CA6BH开始,后面全部是FFFFFFFF(空闲的SID),综合这两个扇区(物理第1和第101扇区)的数据可以确定:存放扇区配置表(SAT)的扇区总数:2个(要修改的第1个参数);这两个是:参数0扇区和参数100扇区(要修改的第7个参数)。(其实存放扇区配置表的扇区总数可以根据这个文档的扇区总数直接判断!!)然后分析这两个扇区的SAT链接情况和相应扇区的数据获得以下信息(下面的扇区都是指参数扇区):
SAT:0、100(共2个扇区)
DIR:1、154(共2个扇区)
短流:3、153(共2个扇区)
标准流:4――(100)――152(从参数4扇区到152扇区,不包括参数100扇区,共148扇区)
2008年3月29日 华山剑客写于湖北随州
- 上一篇:复合文档文件头标注
- 下一篇:用WINHEX恢复SD卡中丢失的数据