|
楼主 |
发表于 2008-3-29 22:02:02
|
显示全部楼层
要修复文件头,一般从扇区配置表(SAT)的数据分析开始,SAT相当于FAT文件系统中的FAT表,它把这个复合文档的各类数据“链”在一起,所以我们反过来通过分析它们的链接情况和相应位置的数据,来分析整个文档的数据结构,最后根据相关信息重建文件头,达到修复文件头的目的。
在分析前有必要作一个说明,不然你会越看越糊涂的!!我们现在看到的数据所在的扇区数据和复合文档中描述的扇区数有一个扇区的错位,比如说复合文档中描述的第0扇区在WinHex中看到的是第1扇区,为了便于区分,把用WinHex打开看到的扇区叫做物理扇区,文档的参数中描述的扇区叫参数扇区(这是我自己想的一个概念,请只在本教程中使用和理解!!)。我们可以这样理解:物理0扇区是这个复合文档的文件头,存放了复合文件的一些整体信息,它对后面的数据来说是一个隐藏扇区,所以对数据区来说,它把物理1扇区看成它的第一个扇区(即参数0扇区),物理2扇区就是参数1扇区,依此类推(如下图所示)。
物理扇区 0 1 2 3 4 5 6 …………N
参数扇区 0 1 2 3 4 5 …………N-1
通过分析开始几个扇区的数据很容易判断出物理1扇区的数据就是SAT(如图)
从这个扇区中的数据可以看到,在参数0扇区和参数100扇区这两个扇区中的数据是SAT数据(因为相应的位置是FDFFFFFF,而FDFFFFFF是存放SAT扇区标志),参数0扇区就是物理1扇区的位置,现在的这个位置就是SAT数据,不必再分析,现在到参数100扇区,就是物理101扇区去看看(如图):
这个扇区中没有FDFFFFFF,而且从偏移CA6BH开始,后面全部是FFFFFFFF(空闲的SID),综合这两个扇区(物理第1和第101扇区)的数据可以确定:存放扇区配置表(SAT)的扇区总数:2个(要修改的第1个参数);这两个是:参数0扇区和参数100扇区(要修改的第7个参数)。(其实存放扇区配置表的扇区总数可以根据这个文档的扇区总数直接判断!!)然后分析这两个扇区的SAT链接情况和相应扇区的数据获得以下信息(下面的扇区都是指参数扇区):
SAT:0、100(共2个扇区)
DIR:1、154(共2个扇区)
SSAT:2(共1个扇区)
短流:3、153(共2个扇区)
标准流:4――(100)――152(从参数4扇区到152扇区,不包括参数100扇区,共148扇区)
[ 本帖最后由 tclrz100e 于 2008-3-29 22:09 编辑 ] |
|