这是一次实验报告,觉得学到点东西,与大家分享。
转载声明出处:http://blog.csdn.net/landerlyoung/article/details/12401761
分析本地硬盘的主引导扇区
首先我们要做的是熟悉fat32 文件系统。
实验环境是Windows8 操作系统+winhex 17.2。鉴于本地没有fat32格式的磁盘分区。
1. 在win8下创建一个虚拟磁盘vhd,并格式化为fat32,然后挂载。
如图,“磁盘2”即为创建的虚拟磁盘,大小为1G,win8下的盘符为I;
2. 我们用winhex打开此磁盘看一下结构。
以管理员身份打开winhex,单击工具,选择打开磁盘
3. 选择我们创建的磁盘。
4. 点击引导扇区(模板)
Fat32 DBR(Dos Boot Record)各个字节表示的意义如下
(注意数据是以little-ending的形式存储的)
l 0H~02H 一条跳转指令,指针指向后面的引导程序
a) 通常是eb 58 90反汇编后得到指令为:
i. Jmp 0x5a;
ii. nop
l 03H~0AH 厂商名和系统版本
l 0BH~0CH 每扇字节数,一般为512字节
l 0DH 每簇扇区数(有关簇的概念我们在后面会详细介绍),对于FAT32的磁盘该字节一般为08H,既每簇为8H*512B=4K。
l 0EH~0FH 保留扇区数
l 10H 磁盘FAT的个数,一般为2个
l 11H~12H 对于FAT16的磁盘为根目录的最大目录项,对于FAT32的磁盘该值总为“00H00H”
l 13H~14H 对于软盘或早期小硬盘该处为分区总扇区数,对于硬盘一般此值为“00H 00H”