搜档网
当前位置:搜档网 › 硬盘主引导扇区(MBR、DPT、DBR、BPB)详解

硬盘主引导扇区(MBR、DPT、DBR、BPB)详解

硬盘主引导扇区(MBR、DPT、DBR、BPB)详解



引用:
网上收集的资料,放到这里来学习,这方面登山人大哥是高手,有空指点一下喽
硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统(图一)。

MBR由三部分构成:
1.主引导程序代码,占446字节
2.硬盘分区表DPT,占64字节
3.主引导扇区结束标志AA55H
 一、硬盘的主引导程序代码是从偏移0000H开始到偏移01BDH结束的446字节;主引导程序代码包括一小段执行代码。启动PC 机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H;然后读系统磁盘0柱面、0磁头、1扇区的主引导扇区MBR的内容到内存指定单元0:7C00 首地址开始的区域,并执行MBR程序段。
主引导代码实现下列功能:
1.扫描分区表查找活动分区;
2.寻找活动分区的起始扇区;
3.将活动分区的引导扇区读到内存;
4.执行引导扇区的运行代码。
如果主引导代码未完成这些功能,系统显示下列错误信息:
Invalid partition table
Error loading operating system
Missing operating system
二、硬盘分区表DPT是从偏移01BEH开始到偏移01FDH结束的64字节(图二);

硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占16字节。在这里我们可以看出,硬盘的总分区数为什么不能大于4。其中可激活分区数不得大于3,扩展分区数不得大于1,当前活动分区数必须小于等于1。

分区表的每一分区的第0个字节是自举标志,其值为80H时,表示该分区是当前活动分区,可引导,其值为00H时,表示该分区不可引导。
第4字节是分区类型(图三)。

每一分区的第1至第3字节是该分区起始地址。其中第1字节为起始磁头号(面号);第2字节的低6位为起始扇区号,高2位则为起始柱面号的高2位;第3字节为起始柱面号的低8位。因此,分区的起始柱面号是用10位二进制数表示的,最大值为2^10 = 1024,因逻辑柱面号从0开始计,故柱面号的显示最大值为1023。同理,用6位二进制数表示的扇区号不会超过2^6 - 1 = 63;用8位二进

制数表示的磁头号不会超过2^8 - 1 = 255。每一分区的第5至第7字节表示分区的终止地址,各字节的释义与第1至第3字节相同。这里我们假设一种极端的情况:如果让第5至第7字节的所有二进制位都取1,就获得了柱面号、磁头号和扇区号所能表示的最大值,从而得到最大绝对扇区号为:
1024 × 256 × 63 = 16,515,072
这个扇区之前的所有物理扇区所包含的字节数为:
16,515,072 × 512Bytes ≈ 8.46×109Bytes = 8.46GB。
由此可知硬盘的容量设计为什么会有8.4GB这一档,分区表每一分区的第1至第3字节以及第5至第7字节的数据结构已经不能满足大于8.46GB的大容量硬盘的需要。考虑到向下兼容的需要,业界并未对从DOS时代就如此定义的硬盘分区表提出更改意见,否则改动所牵涉的面太广,会造成硬件和软件发展上的一个断层,几乎无法被业界和用户所接受。硬盘厂商解决这一问题的方法是定义了新的INT 13服务扩展标准。新的INT 13服务扩展标准不再使用操作系统的寄存器传递硬盘的寻址参数,而使用存储在操作系统内存里的地址包。地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA接口,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA接口。通过这种方式,能实现在ATA总线基础上CHS寻址的最大容量是136.9 GB,而LBA寻址的最大容量是137.4GB。新的硬盘传输规范ATA 133规范又把28位可用的寄存器空间提高到48位,从而支持更大的硬盘。
分区表每一分区的第8至第11字节表示该分区的起始相对扇区数(即该扇区之前的绝对扇区个数),高位在右,低位在左;第12至第15字节表示该分区实际占用的扇区数,也是高位在右,低位在左;分区表这类数据结构的表达方式与机器中数据的实际存储方式在顺序上是一致的,即低位在前,高位在后。因此,在从16进制向十进制作数值转换时,需将字段中的16进制数以字节为单位翻转调位,用4个字节可以表示最大2^32个扇区,即2TB=2048GB。
系统在分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。在未超过8.4GB的分区上,C/H/S的表示方法和扇区数的表示方法所表示的分区大小是一致的。超过8.4GB的/H/S/C一般填充为FEH/FFH/FFH,即C/H/S所能表示的最大值;有时候也会用柱面对1024的模来填充。不过这几个字节是什么其实都无关紧要了。
扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录(Extended Boot Record,EBR)(图四)。

扩展引导记录包括一个扩展分区表和扇区结束标志55AA。一个逻辑驱动器中的引导扇区一般位于相对扇区32或63。

如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区;第二项指向下一个逻辑驱动器的EBR,如果不存在进一步的逻辑驱动器,第二项就不会使用,而被记录成一系列零。如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区,第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。扩展分区表的第三项和第四项永远都不会被使用。
扩展分区表项中的相对扇区数是从扩展分区开始的扇区到该逻辑驱动器中第一个扇区的扇区数;占用的扇区数是指组成该逻辑驱动器的扇区数目。
有时候在磁盘的末尾会有剩余空间,由于分区是以1柱面的容量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,不够一个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。
三、主引导扇区的最后两个字节(偏移1FEH和偏移1FFH),其值为AA55H,它表示该扇区是个有效的引导扇区,可用来引导硬磁盘系统。
分区引导扇区DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区的DBR才会被MBR装入内存运行。
DBR主要由下列几个部分组成:
1.跳转指令,占用3个字节的跳转指令将跳转至引导代码。
2.厂商标识和DOS版本号,该部分总共占用8个字节。
3.BPB(BIOS Parameter Block, BIOS 参数块)。
4.操作系统引导程序。
5.结束标志字,结束标志占用2个字节,其值为AA55
DBR中的内容除了第5部分结束标志字固定不变之外,其余4个部分都是不确定的,其内容将随格式化所用的操作系统版本及硬盘的逻辑盘参数的变化而变化。
一、FAT32的分区引导扇区
为了使加载文件的操作更加灵活,加上FAT32文件系统采用"活动"的FDT表,,同时考虑到引导程序的代码量和为今后发展保留适当的余量,FAT32文件系统分区引导扇区占据了6个扇区,只有前3个扇区作为系统的分区引导扇区,其余3个扇区保留暂未使用。分区引导扇区对于操作系统的启动和磁盘文件的访问具有至关重要的作用;引导程序代码的损坏将导致操作系统不能正常启动,磁盘读写参数的破坏将造成存储在磁盘上的文件不能正常读写。
由于分区引导扇区的重要性,FAT32文件系统在在第一个分区引导扇区的6个扇区后

的6个扇区里保留了分区引导扇区的备份,在启动时操作系统可以对两份引导扇区进行比较,以便选择正确的引导扇区来引导系统。由于在磁盘正常工作过程中系统不再对引导扇区的程序和数据进行修改,因此备份的分区引导扇区损坏的可能性非常小。
分区引导扇区的第一个扇区(图六)

的前三个字节是一条跳转指令,然后是8个字节长的OEM ID(厂家标识)和版本号,其后是简称为BPB的BIOS参数块(BIOS Parameter Block)。对于FAT32其各部分的意义如下表:
偏移地址
长度(字节)
意 义

0BH
2
每个扇区的字节数,常取512。
0DH
1
每簇扇区数;可以是1, 2, 4, 8, 16, 32, 64, 128,取决于文件系统格式及分区大小。
0EH
2
为操作系统保留的扇区数;FAT32时多为十进制的32,FAT16时为1,有的格式化工具可能将它设为36或63。
10H
1
FAT表的个数;常取2。
11H
2
在FAT16中存放系统根目录中允许登记的目录项个数,FAT32中用于标注系统采用的是否为FAT32文件系统。其值为0000H表示磁盘使用FAT32文件系统。
13H
2
值为00H,为保持兼容性而保留,未使用。
15H
1
磁盘介质标志,硬盘为F8。
16H
2
未使用,值为00H。
18H
2
每个磁道的扇区数。
1AH
2
磁盘的磁头数。
1CH
4
分区前隐藏扇区的个数。
20H
4
逻辑磁盘中的扇区总数。
24H
4
每个FAT表所占的扇区数。
28H
2
FAT表镜像标志,值为0表示系统保存2份互为备份的FAT表,值为1表示系统仅保存1份FAT表。
2AH
2
文件系统的主次版本(保留)。
2CH
4
磁盘根目录的起始簇号。
30H
2
文件系统参数的扇区号,通常位于引导扇区的下一个扇区。
32H
2
备份分区引导扇区的逻辑扇区号。
34H
12
保留,未使用。
40H
1
中断13呼叫的预设值,指明访问的设备;软盘为00H,硬盘为80H。
41H
1
用于中断13呼叫。
42H
1
磁盘读写参数扩展标志,其值为29H。
43H
4
格式化时随机产生的磁盘卷的序列号。
47H
11
格式化时人工输入的磁盘卷标号。
52H
8
文件系统的标识号(FAT32)。

从偏移0x5A开始的数据为操作系统引导代码。这是由偏移0x00开始的跳转指令所指向的,此段指令在不同的操作系统上和不同的引导方式上,其内容也是不同的。
扇区的最后两个字节存储值为0x55AA的DBR有效标志,对于其他的取值,系统将不会执行DBR相关指令。
分区引导扇区的第2个扇区作为文件系统相关参数存储标识扇区(图七),

除了保存扇区的标识信息(RraA(00H)和rrAa(1E4H))外,还可能在偏移地址1E8H处存储了文件系统有关的信息。其中扇区偏移地址1E8H~1EBH的4个字节

存储了逻辑磁盘中未使用的簇数,通常用于快速计算逻辑磁盘的剩余空间(典型的操作是在资源管理器状态栏上列出的"可用磁盘空间"参数),而1ECH~1EFH 4个字节给出了逻辑盘中下一个可以分配给文件使用的空闲簇的簇号,这样操作系统可以不访问FAT表就直接获得磁盘剩余空间和可以分配的簇号。
分区引导扇区的第3个扇区则存储了引导扇区的后一部分引导系统的程序代码(图八)。

二、NTFS的分区引导扇区
对于NTFS分区来说,分区引导扇区DBR只占用一个扇区(图五),并且在该分区的最后一个扇区做了备份;NTFS的引导扇区也是完成引导和定义分区参数,NTFS分区的引导扇区不是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问。其BPB参数如下表所示: 偏移地址
长度(字节)
常用值
意 义

0x0B
2
0x0002
每扇区字节数
0x0D
1
0x08
每簇扇区数
0x0E
2
0x0000
保留扇区
0x10
3
0x000000
总为0
0x13
2
0x0000
NTFS未使用,为0
0x15
1
0xF8
介质描述
0x16
2
0x0000
总为0
0x18
2
0x3F00
每磁道扇区数
0x1A
2
0xFF00
磁头数
0x1C
4
0x3F000000
隐藏扇区数
0x20
4
0x00000000
NTFS未使用,为0
0x28
8
0x4AF57F0000000000
扇区总数

0x30
8
0x0400000000000000
$MFT的逻辑簇号
0x38
8
0x54FF070000000000
$MFT Mirr的逻辑簇号
0x40
4
0xF6000000
每MFT记录簇数
0x44
4
0x01000000
每索引簇数
0x48
8
0x14A51B74C91B741C
卷标
0x50
4
0x00000000
检验和


[ 本帖最后由 伐木者 于 2007-6-19 20:11 编辑 ]
附件: 您所在的用户组无法下载或查看附件本文来自:创幻论坛 https://www.sodocs.net/doc/de17423038.html,



UID55456 帖子9783 精华45 积分47222 威望0 金币0 阅读权限18 性别男 来自有树砍的地方 在线时间8494 小时 注册时间2004-5-16 最后登录2010-4-5 查看详细资料
TOP
【推荐】权威专家推荐涨停股票请点击获取

伐木者
魏武王常所用论坛


超级版主



电脑家园区总版主

积分47222 威望0 注册时间2004-5-16

发短消息 加为好友 沙发 大 中 小 发表于 2007-6-17 20:55 只看该作者
How It Works --- Master Boot Record (主启动记录)



本文是介绍MBR的反编译程序的。MBR是放在硬盘的0柱面,0磁头(head),1扇区的
那一段区。MBR是由FDISK程序创建的。所有操作系统的FDISK程序都会创建类似的MBR
记录。MBR是多个分区的前提,每个MBR中包括了四个分区表记录。在您的计算机加电
之后,INT19被调用了。一般来说,INT19先从第一个软盘驱动器中读启动扇区记录。
如果在软盘中找到了启动的扇区,那么这个扇区的数据就被读入到内存的0000:7c00

地址上,INT19也跳到了这个地址上。但是,如果没有在软盘中找到这个扇区的话,INT
19就从第一个硬盘中去读。同样,如果成功的话,也会把MBR导入到相同的内存地址
0000:7c00,INT19也会跳这个地址。MBR中包括的一段小程序是定出在分区表中的活动分
区。这样的活动分区找到之,那个分区的启动扇区也被读入到0000:7c00地址,MBR程序
也转移到了这个地址。每一个操作系统都有固定的启动扇区的格式。在启动扇区里的程
序要能定出操作系统启动程序的位置(或是核心本身,或者是一个启动管理器),然后
将它读入内存。
另:在Ctrl-Alt-Del键被按下时,INT19也会被调用。在大多数系统中,Ctrl-Alt-Del三?nbsp;
键同时按下表示热启动您的计算机,回到INT19调用前的状态。
=====
数据存放的位置:
MBR程序放在偏移为0000的位置。
MBR消息放在偏移为008b的位置。
分区表放在偏移为00be的位置。
签名放在偏移为00fe的位置。
关于谁干什么事的总结:
如果一个活动分区找到了,这个分区的启动数据被读入到0000:7c00的位置,MBR程
序也跳到0000:7c00的位置。这段程序找到指向分区表的入口,入口描述的是这段分区是
怎样被启动的。启动程序用这些数据来决定用来启动的驱动器和这个驱动器分区在硬盘上
的位置。
如果没有找到这样的活动分区入口,ROM BASIC会转入INT 18的调用。所有其他的错
误导致系统的挂起,可以看HANG的标记。

注意(非常之重要):
1)活动分区入口的第一个字节的内容是80h。在INT13被调用之前,这个字节被导
入到DL寄存器中。当INT13被调用时,DL表示的是BIOS的设备号码。因为这个原因,由MBR
程序读的启动扇区只能从BIOS设备号码为80的硬盘中读入。这便是为什么不能从任何硬盘
启动的原因。?nbsp;

2)MBR程序是用基于INT 13h (ah=02h)的中断的CHS来读取活动分区的启动扇区位置
的。活动分区的启动扇区内的位置是在分区表内用CHS格式表明的。如果这个驱动器小于
528M,这个CHS一定要是(L-CHS,见BIOS TYPES文档)。在LBA中没有任何地址是有用的。
(另一个LBA不能解决>528M问题的原因) 这点大家别信,西西。


====
这是一张整个MBR记录的表(hex 和ascii格式)
OFFSET 0 1 2 3 4 5 6 7 8 9 A B C D E F *0123456789ABCDEF*
000000 fa33c08e d0bc007c 8bf45007 501ffbfc *.3.....|..P.P...*
000010 bf0006b9 0001f2a5 ea1d0600 00bebe07 *................*
000020 b304803c 80740e80 3c00751c 83c610fe *...<.t..<.u.....*
000030 cb75efcd 188b148b 4c028bee 83c610fe *.u......L.......*
000040 cb741a80 3c0074f4 be8b06ac 3c00740b *.t..<.t.....<.t.*
000050 56bb0700 b40ecd10 5eebf0eb febf0500 *V.......^.

......*
000060 bb007cb8 010257cd 135f730c 33c0cd13 *..|...W.._s.3...*
000070 4f75edbe a306ebd3 bec206bf fe7d813d *Ou...........}.=*
000080 55aa75c7 8bf5ea00 7c000049 6e76616c *U.u.....|..Inval*
000090 69642070 61727469 74696f6e 20746162 *id partition tab*
0000a0 6c650045 72726f72 206c6f61 64696e67 *le.Error loading*
0000b0 206f7065 72617469 6e672073 79737465 * operating syste*
0000c0 6d004d69 7373696e 67206f70 65726174 *m.Missing operat*
0000d0 696e6720 73797374 656d0000 00000000 *ing system......*
0000e0 00000000 00000000 00000000 00000000 *................*
0000f0 TO 0001af SAME AS ABOVE
0001b0 00000000 00000000 00000000 00008001 *................*
0001c0 0100060d fef83e00 00000678 0d000000 *......>....x....*
0001d0 00000000 00000000 00000000 00000000 *................*
0001e0 00000000 00000000 00000000 00000000 *................*
0001f0 00000000 00000000 00000000 000055aa *..............U.*
====
这是MBR的反编译程序:
这个扇区被导入到内存的0000:7c00位置,但是它又马上将自己重定位到0000:0060的
位?nbsp;

BEGIN: # NOW AT 0000:7C00, RELOCATE
0000:7C00 FA CLI #禁止中断
0000:7C01 33C0 XOR AX,AX #设置堆栈段地址为0000
0000:7C03 8ED0 MOV SS,AX
0000:7C05 BC007C MOV SP,7C00 #设置堆栈指针为7c00
0000:7C08 8BF4 MOV SI,SP #SI = 7c00
0000:7C0A 50 PUSH AX
0000:7C0B 07 POP ES #ES = 0000:7c00
0000:7C0C 50 PUSH AX
0000:7C0D 1F POP DS #DS = 0000:7c00
0000:7C0E FB STI #开中断
0000:7C0F FC CLD #清除方向
0000:7C10 BF0006 MOV DI,0600 #DI = 0600
0000:7C13 B90001 MOV CX,0100 #移动 256 个word (512 bytes)

0000:7C16 F2 REPNZ #把 MBR 从 0000:7c00
0000:7C17 A5 MOVSW #移动到 0000:0600
0000:7C18 EA1D060000 JMP 0000:061D #跳至NEW_LOCATION
NEW_LOCATION:# NOW AT 0000:0600
0000:061D BEBE07 MOV SI,07BE #指向入口的第一个字节
0000:0620 B304 MOV BL,04 #有4个入口
SEARCH_LOOP1: # 查找活动分区
0000:0622 803C80 CMP BYTE PTR [SI],80 #是不是活动分区?
0000:0625 740E JZ FOUND_ACTIVE #是,栈指针指向7c00
0000:0627 803C00 CMP BYTE PTR [SI],00 #是不是不活动分区?
0000:062A 751C JNZ NOT_ACTIVE #跳转至NOT_ACTIVE
0000:062C 83C610 ADD SI,+10 #增量表指针加16
0000:062F FECB DEC BL #减少计数
0000:0631 75EF JNZ SEARCH_LOOP1 #循环
0000:0633 CD18 INT 18 #跳至 ROM BASIC
FOUND_ACTIVE: # 找到了活动分区
0000:0635 8B14

MOV DX,[SI] #设置DH/DL为INT 13
0000:0637 8B4C02 MOV CX,[SI+02] #设置CH/CL为INT 13
0000:063A 8BEE MOV BP,SI #保存表指针
SEARCH_LOOP2: # 确定是一个活动分区
0000:063C 83C610 ADD SI,+10 #增量表指针加16
0000:063F FECB DEC BL #减少计数
0000:0641 741A JZ READ_BOOT #如果表结束,跳转
0000:0643 803C00 CMP BYTE PTR [SI],00 #是不是非活动分区
0000:0646 74F4 JZ SEARCH_LOOP2 #是,循环
NOT_ACTIVE: # 多于一个活动分区
0000:0648 BE8B06 MOV SI,068B #显示 "Invld prttn tbl"
DISPLAY_MSG: # 显示消息循环
0000:064B AC LODSB #取得消息的字符
0000:064C 3C00 CMP AL,00 #判断消息的结尾
0000:064E 740B JZ HANG #是
0000:0650 56 PUSH SI #保存SI
0000:0651 BB0700 MOV BX,0007 #屏幕属性
0000:0654 B40E MOV AH,0E #显示一个字符
0000:0656 CD10 INT 10
0000:0658 5E POP SI #恢复SI
0000:0659 EBF0 JMP DISPLAY_MSG #循环
HANG: #挂起系统
0000:065B EBFE JMP HANG #停在这儿
READ_BOOT: #读活动分区的数据
0000:065D BF0500 MOV DI,0005 #INT 13 的尝试次数
INT13RTRY: #INT 13的重试循环
0000:0660 BB007C MOV BX,7C00
0000:0663 B80102 MOV AX,0201 #读入一个扇区
0000:0666 57 PUSH DI #保存DI
0000:0667 CD13 INT 13 #把扇区读入0000:7c00
0000:0669 5F POP DI #重存DI
0000:066A 730C JNB INT13OK #没有INT 13,跳转
0000:066C 33C0 XOR AX,AX #调用INT 13 ,硬盘重置
0000:066E CD13 INT 13
0000:0670 4F DEC DI #DI--
0000:0671 75ED JNZ INT13RTRY #如果非零,重试
0000:0673 BEA306 MOV SI,06A3 #显示"Errr ldng systm"
0000:0676 EBD3 JMP DISPLAY_MSG #跳转至显示循环
INT13OK: #INT 13 出错
0000:0678 BEC206 MOV SI,06C2 #"missing op sys"
0000:067B BFFE7D MOV DI,7DFE #指向签名
0000:067E 813D55AA CMP WORD PTR [DI],AA55 #签名是否正确?
0000:0682 75C7 JNZ DISPLAY_MSG #不正确,跳至显示消息循环
0000:0684 8BF5 MOV SI,BP #设置SI
0000:0686 EA007C0000 JMP 0000:7C00 #跳转至启动扇区,SI指向分区
表入
?nbsp;

#这儿是消息
0000:0680 ........ ........ ......49 6e76616c * Inval*
0000:0690 69642070 61727469 74696f6e 20746162 *id partition tab*
0000:06a0 6c650045 72726f72 206c6f61 6

4696e67 *le.Error loading*
0000:06b0 206f7065 72617469 6e672073 79737465 * operating syste*
0000:06c0 6d004d69 7373696e 67206f70 65726174 *m.Missing operat*
0000:06d0 696e6720 73797374 656d00.. ........ *ing system. *
#无用的数据
0000:06d0 ........ ........ ......00 00000000 * .....*
0000:06e0 00000000 00000000 00000000 00000000 *................*
0000:06f0 00000000 00000000 00000000 00000000 *................*
0000:0700 00000000 00000000 00000000 00000000 *................*
0000:0710 ******** 00000000 00000000 00000000 *................*
0000:0720 00000000 00000000 00000000 00000000 *................*
0000:0730 ******** 00000000 00000000 00000000 *................*
0000:0740 00000000 00000000 00000000 00000000 *................*
0000:0750 00000000 00000000 00000000 00000000 *................*
0000:0760 ******** 00000000 00000000 00000000 *................*
0000:0770 ******** 00000000 00000000 00000000 *................*
0000:0780 00000000 00000000 00000000 00000000 *................*
0000:0790 ******** 00000000 00000000 00000000 *................*
0000:07a0 00000000 00000000 00000000 00000000 *................*
0000:07b0 00000000 00000000 00000000 0000.... *............ *
#分区表从0000:07be开始。每一个分区表入口是16个字节这个表定义了一个单个的主分
区并
是活动分区。
0000:07b0 ........ ........ ........ ....8001 * ....*
0000:07c0 0100060d fef83e00 00000678 0d000000 *......>....x....*
0000:07d0 00000000 00000000 00000000 00000000 *................*
0000:07e0 00000000 00000000 00000000 00000000 *................*
0000:07f0 00000000 00000000 00000000 0000.... *............ *
#最后两个字节一定包括了55aah的数据。
0000:07f0 ........ ........ ........ ....55aa *..............U.*
本文来自:创幻论坛 https://www.sodocs.net/doc/de17423038.html,

相关主题