首页 理论教育 FAT数据恢复:掌握使用技巧

FAT数据恢复:掌握使用技巧

时间:2023-10-23 理论教育 版权反馈
【摘要】:从FAT的十六进制文本,利用上述规则则得到文件的簇链。获得FAT的十六进制文本。使用FAT的实际举例说明由查目录得IO.SYS的首簇号为2,那么:1)2*1.5=3.0。3)在FAT的第三字节,取一个字:4003。将乘积的结果作为是到FAT的相对偏移,在该位置放着下一簇的簇号。

FAT数据恢复:掌握使用技巧

对于一个较长的文件,DOS把两个或者更多的簇分配给它,而该文件占用的簇号链是映像在FAT中的。如果你想看一下实际的FAT,由于每一个FAT项,特别是12位长(1.5字节)的表项,它们被拼装在一起,每两项占用三个字节。因此想要把FAT中的变型映像拼装还原成簇号也不是件容易的事。下面介绍的编程规则,说明从已知簇号,确定下一个后续簇的步骤,有以下两种情形。

1.情形1

FAT登记项为12位时寻找簇链的计算步骤。

(1)将已知的十进制簇号乘以1.5。

(2)乘积的整数部分是到FAT的相对位移,在该位置存放着文件下一簇的簇号。

(3)从该位移处取出一个字(字的高低顺序是低位在先,高位在后)。

(4)若已知簇号为偶数,则保留该字低12位,否则保留高12位。

(5)若保留的12位为FF8-FFF,则表明已知簇是文件的末簇;若既非FF8-FFF,又非FF0-FF7,则此12位即为该文件的下一个簇。

【例2.1】 我们用实际例子来说明这个规则的应用。先找文件的起始簇号,再找FAT的十六进制文本。从FAT的十六进制文本,利用上述规则则得到文件的簇链。

(1)查找文件的起始簇号。假定A盘(1.44M)含有DEBUG.COM文件,把含有文件(例如经属性修改后能显示的IO.SYS文件)的盘插入A驱动器作如下操作:

从显示的内容看出,IO.SYS的起始簇号为02(在11A处),MSDOS.SYS的起始簇号为 52H(在13A处);COMMAND.COM的起始簇号为9DH(在15A处)。

(2)获得FAT的十六进制文本。

(3)使用FAT的实际举例说明由查目录得IO.SYS的首簇号为2,那么:

1)2*1.5=3.0。

2)乘积3.0取整得3,在0003存放下一簇的簇号。

3)在FAT的第三字节,取一个字:4003。

4)本簇号为2(偶数),保留低12位:003。(www.xing528.com)

5)保留的12位不是FFF,则它是该文件下一簇号。

现在以所得簇号003作为起始簇号,按同样步骤获得下一个簇号为4的计算为:

1)3*1.5=4.5。

2)4.5取整得4。

3)从第四个字节取一个字:0040。

4)簇号3为奇数,保留高12位:004。

该文件下一个簇号为004。

照此类推,便得到IO.SYS的簇链。

2.情形2

FAT登记项为16位时寻找簇链的计算步骤如下所示。

(1)由文件的目录项找到该文件的起始簇号作为当前已知簇号。

(2)将已知簇号乘以2。

(3)将乘积的结果作为是到FAT的相对偏移(从0算起),在该位置放着下一簇的簇号。

(4)从该位移处取出一个字(注意字的高低字节顺序)。

(5)若所取得的字为FFF8~FFFFH,则该字为文件的末簇;否则,该结果为文件的下一簇号。

将步骤(5)所得下一簇簇号作为当前已知簇号,重复步骤(2)~(5)再寻找下一簇,如此继续,直到文件的末簇。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈