DBR:操作系统引导记录区(包括BPB)一.一般硬盘数据结构是按下面来建立的二.首先看看启动区的内容,也就是第一个扇区。使用软件:WinHex有用的内容用彩色线标志下⑴.灰色线内容:EB5990跳转指令⑵.灰色点线内容:4D53444F53352E30为厂商标志和os版本号,这里是MSDOS5.0⑶.红色部分:0020(偏移地址0BH,长度2)注意这里数据的布局,高地址放高字节,低地址放低字节(数据为小端格式组织),所以数据应该是0200,就是512。表示的意思是,该磁盘每个扇区有512个字节。有的可能是1024、2048、4096.⑷.黄色部分:08(偏移地址0DH,长度1)表示的意思是每个簇有8个扇区。这个值不能为0,而且必须是2的整数次方,比如1、2、4、8、16、32、64、128.但是这个值不能使每个簇超过32KB字节。⑸.蓝色部分:2400(偏移地址0EH,长度2),转换一下,就是0024,意思是保留区域中的保留扇区数为36个。那么就可以知道下面的FAT1区的开始的地址就是:0x24*200(每个扇区的字节数)=0x4800,⑹.粉色部分:02(偏移地址10H,长度1),此卷中的FAT结构的份数为2,另外一个是备份的。⑺.黑色部分:C603(偏移地址24H,长度2)转换一下,03C6,每个FAT占用的扇区数。那么每个扇区占用的字节数就是0x03c6*200=78C00。根据启动区、FAT1、FAT2、根目录、数据区的次序,可以依次计算出它们的地址了。启动区:理所当然是0x00;FAT1:0x4800;FAT2:0x4800+0x78C00=7D400;根目录区:7D400+78C00=F6000;数据区的地址,等等再计算。这个只是计算,可以看看是不是和实际的一致。怎么样,是不是和计算的很一致。为什么要计算SD数据的读取要给出地址,而且每次读取都是一个整扇区,512个字节。找出这些地址后,可以很方便的找到数据。三.现在分析下根目录区的内容。这里使用的是FAT32短文件目录项,每32个字节表示一个文件(文件夹也是),32个字节的表示定义分别如下⑴.黑色部分:驱动器的名称,8个字节,⑵.红色部分:5445535420202020(偏移地址20H,长度8)文件名:TEST(空缺部分是空格)。⑶.红色点线:545854(偏移地址28H,长度3)文件类型,为ASCII字符表示。⑷.绿色:20(偏移地址2BH,长度2)文件属性,00000000(读写);00000001(只读);00000010(隐藏);00000100(系统);00001000(卷标);00010000(子目录);00100000(归档)。⑸.蓝色点线:2E(偏移地址2EH,长度2)文件创建时间。⑹.粉色线、点线依次表示文件创建日期文件最后访问日期。⑺.灰色线、点线:依次为该文件开始簇号的高位字...