根据磁盘的第一个扇区一些特征值来区分当期的文件格式
1、FAT32格式的特征:
第0扇区: 0x52----0x56(5个字节),这5个字节的值分别为:0x46,0x41,0x54,0x33,0x32,其实就是字符“FAT32”的ascall码值。
2、FAT16格式特征:
第0扇区:0x36-----0x3A(5个字节),这5个字节的值分别为:0x46,0x41,0x54,0x31,0x36;字符形式"FAT16"的ascall码值。
3、NTFS格式特征:
第0扇区:0x3------0x6(4个字节),这4个字节的值分别为: 0x4E,0x54,0x46,0x53;字符形式“NTFS”的ascall码值.
NTFS 解析:
1、每个簇的扇区数
第0扇区: 0xD(1个字节) 存储的是每个簇的扇区数
2、NTFS的MFT 起始扇区
第0扇区:0x30-----0x33(4个字节),如果要获得文件的MFT在磁盘的地址,方法如下:
//MFT起始扇区起始地址 = ( buffer[51] * 0x1000000+
buffer[50] * 0x10000+
buffer[49] * 0x100+
buffer[48]) * 每个簇的扇区数;
将地址进行处理以后获得MFT的起始簇 再乘以每个簇的扇区数;
3、 逻辑盘总的扇区数
第0扇区:0x28-----0x2B(4个字节),存放的是逻辑盘的扇区数
总扇区数 = buffer[43] * 0x1000000+
buffer[42] * 0x10000+
buffer[41] * 0x100+
buffer[40];