优盘上的数据按照其不同的特点和作用大致可分为5 部分:MBR 区、DBR 区、FAT 区、FDT区和DATA 区。

  • 主引导记录(MBR)

绝对扇区号为:MBR_LBA=0x00000000 处是主引导记录,等同位于硬盘的0 磁道0 柱面1 扇区。
在总共512 字节的主引导扇区中,MBR 只占用了其中的446 个字节(ofs:0 - ofs:1BDH),另外的64 个字节(ofs:1BEH - ofs:1FDH)交给了DPT(Disk Partition Table 盘分区表),最后两个字节“55 AA”(ofs:1FEH - ofs:1FFH)是分区的结束标志。
  MBR 定义如下:

typedef struct {
    uchar bootcode[];    //ofs:0.启动代码。“FA 33 C0 8E D0 BC…”.
    PartitionTable PT[];   //ofs:446.分区表length=4*16.
    uint EndingFlag;        //ofs:510.结束标识:0xAA55.
}MBR_tag;

  Bootcode[446]启动代码一般是固定的,用于引导 x86,不用管。
  分区表项的定义如下:

typedef struct {
    uchar BootFlag;            //启动标志
    CHS StartCHS;              //分区开始的柱面、磁头、扇区
    uchar SystemID;            //分区类型
    CHS EndCHS;                //分区结束的柱面、磁头、扇区
    ulong RelativeSectors;     //分区起始扇区数,指分区相对于记录该分区的分区表的扇区位置之差 (该分区表:LBA=0x0)。
    ulong TotalSectors;        //分区总扇区数
}PartitionTable;

  其中 CHS 为一个柱面、磁头、扇区的结构,定义如下:

struct CHS {
    uchar Head;                //磁头。
    unsigned Sector : ;    //扇区。
    unsigned CyH2 : ;        //柱面(高两位)。
    uchar CyL8;                //柱面(低八位)。
    +CyL8);} //返回柱面值

    void SetCylinder(uint Cylinder) //设置柱面值
    {
        CyH2=(Cylinder>>)&0x3; CyL8=(Cylinder&0xff);
    }
};

例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00

  在这里我们可以看到:

最新文章

  1. MySQL提示符含义
  2. d3 API scale
  3. 冒泡排序优化JAVA
  4. Linux 改进捕捉信号机制(sigaction,sigqueue)
  5. 《Linux及安全》实验安排
  6. [sql server、oracle] 分组取最大值最小值常用sql
  7. [Firefly引擎][学习笔记一][已完结]带用户验证的聊天室
  8. IOS的一个带动画的多项选择的控件(一)
  9. Flashback version/Transaction Query,FlashbackTable
  10. Js之Screen对象
  11. 合并Spark社区代码的正确姿势
  12. [板子]Floyd&Dijkstra
  13. K:树与二叉树
  14. android 图片上传图片 报Socket: Broken pipe
  15. 保护url时效性和安全性的一种解决方案
  16. s21day19 python笔记
  17. 【.NET Core项目实战-统一认证平台】第五章 网关篇-自定义缓存Redis
  18. java ftp上传文件
  19. Xshell存在后门
  20. WebSocket和Socket的区别

热门文章

  1. 【经验】在CSS中定义a:link、a:visited、a:hover、a:active顺序
  2. BZOJ 1061 志愿者招募
  3. hdu 1853 最小费用流好题 环的问题
  4. 【转】android cts测试方法及步骤
  5. Controlling Access in Java
  6. OpenMeetings(3)----启动顺序解析
  7. Merlin 的魔力: SpringLayout 管理器
  8. AngularJs登录
  9. hdu 2846
  10. [Hapi.js] Request Validation with Joi