FAT文件系统结构简述及反删除原理
FAT文件系统结构简述及反删除原理FAT~文件系统结构简述及反删除原理
FAT(文件分配表)
FDT(文件目录表)有的也称为DIR(根目录表)
FAT是与FDT合作完成磁盘资源管理的,FAT在DBR(DOS Boot Record)之后,DBR中包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、簇的大小等重要参数。
FAT中有若干项,在FAT16(16 bit=两字节)中每项占两字节,FAT32中每项占4字节,每项代表磁盘上的一个族,每一项的值是某个单向链中的一个指针,如FAT中某项值为100,则表示在磁盘第100族还有数据,在读该族数据后系统会再去读取FAT第100项的值,如果不为表示结束的0xFFFF或0xFFFFFFFF则读该项对应的族数据,循着链表一直读到结束为止。
一般每个分区有两个相同的FAT表,在第二个FAT表后是FDT表,它的大小是固定的,一般只有一个族,这也是根目录下项数有限的原因,FDT每项占32字节,如果族大小为4K,则最多4096/32=128项,每项内容有文件名、起始FAT项指针、类型(是文件还是目录)、创建时间、修改时间、访问时间等(好像没记完),最重要的就是指向FAT的指针,用它才可以读出文件的内容。
FDT后就是以族为分配单位的DATA区了,那怕文件只有一字节它也会占一个FAT项,即一个族。
应该对FAT的分配方式有个了解了吧,顺便讲讲反删除的原理
在FDT中,删除一个文件时,系统只是简单地将FDT表项中的文件名的第一个字节改为00,而FAT指针等数据都还在,这时恢复就只需要将第一字节改来不为00就可以了,这就是为什么恢复软件会让你输入文件名的第一个字。
但并不一定恢复成功,因为当文件标示删除后,它的所有数据都不受操作系统保护了,有可能造成以下问题:
1、FDT项文件名第一项为00时表示该项已可重用,则建立新文件时有可能覆盖掉FDT数据。
2、FAT中有可能被新建立文件数据覆盖。
3、磁盘整理也可能覆盖族里的数据。 文件删除后时,FDT中文件名的第一个字节好像不是改为00,而是E5吧。 休息休息休息休息休息休息谢谢谢谢 2楼说得对,楼主一定要注意啊 学习学习了 学习。好好地学。谢谢分享 fat文件系统删除文件后,关键是文件簇链怎么恢复,其他的都简单。 写的还行,呵,呵 E5是对的,楼主错处太多
页:
[1]