1. 主页
  2. 文档
  3. exFAT文件系统结构
  4. exFAT文件系统的VBR分析...
  5. 校验扇区

校验扇区

VBR的12个扇区中最后3个扇区(扇区9,10,11)不包含结束标志。扇区11存放包含启动代码扇区(也就是前9个扇区)的校验数据,这个校验数据是一个32位整型值,占用4个字节。这4个字节重复出现充满整个扇区。如果修改VBR的BPB的值或修改启动代码(例如启动型病毒),要重新计算校验数据并更新11扇区。

图3 WinHex显示的VBR的校验扇区数据

图3是校验扇区,校验为0xD80F4E86,每4字节重复一次布满整个校验扇区,例如扇区大小为512字节,它重复128次。

表6 VBR校验计算程序的C代码

UINT32 VBRChecksum(const unsigned char octsts[],long NumberOfBytes)

{  UINT32 Checksum = 0; 

  long Index; 
  for (Index = 0; Index < NumberOfBytes; Index++) 
         { 
                if (Index == 106 || Index == 107 || Index == 112) 
                     { 
                     continue; 
                    } 
           Checksum = ((Checksum <<31) | (Checksum>> 1)) + (UINT32) octsts[Index]; 
         }
  return Checksum;
}

FAT32的VBR通常位于32个保留扇区中,主VBR有3个扇区,分别为扇区0,1,2。备份VBR位于扇区6,7,8.(Mueller 2003)。在FAT32 VBR中可执行的启动代码位于第1扇区(扇区0)和第3扇区(扇区2),而exFAT VBR则有9个扇区可以存放启动代码。

我们要如何帮助您?

评论 抢沙发

评论前必须登录!