解析DBR操作系统引导记录数据

理解文件系统。你必须要熟悉DBR,下面我们就来看看文件系统解析DBR数据。

Dos Boot Record(DBR)操作系统引导记录是由操作系统的格式化程序建立的。在文件系统驱动操作不论什么一个磁盘卷时,这一部分的信息将被读取并作为文件系统在这个磁盘卷上的參数被使用。它包括了有效的引导程序、厂商标志、BPB数据块等。

1.那么怎么得到DBR呢?它位于分区的第一个扇区。而分区的地址能够从磁盘的第一个分区的分区表项中获得。

详细可參考http://blog.csdn.net/liyun123gx/article/details/38420665

2.分析本扇区数据

以下是一个FAT文件系统的DBR的信息


(注意 数据以小端格式存储的)

0x01~0x02:      3个字节。跳转指令。

跳转到DBR后面一点的引导程序处。引导程序是一段用来载入真正操作系统的程序。

0x03~0xA:        8个字节,OEM串。本例中是MSDOC5.0

0X0B~0X0C:     2个字节,每扇区的字节数。

本例是0X0200,512

0X0D                1个字节,每簇的扇区数。

本例是0x8

0X0E~0X0F:     2个字节,保留扇区数。本例是0x0026

0X10:             1个字节,FAT表个数。本例是0x02

0X11~0X12:   2个字节。根文件夹最多可容纳的文件夹项数。FAT12和FAT16通常为512,FAT32不使用此值,为0.本例中是FAT32,所以为0.

0X13~0X14:   2个字节,扇区总数。

小于32MB时使用该处存放,超过32MB的使用偏移0x20~-x23字节处的4字节存放。

本例中磁盘为7G多,故为0.

0X15:            1个字节,介质描写叙述。

本例中0XF8表示本地硬盘。

0X16~0X17:   2个字节。每一个FAT表的扇区数。相同。FAT32不使用,为0.

0X18~0X19:   2个字节,每一个磁道的扇区数。

本例是0X3F,63

0X1A~0X1B:     2个字节,磁头数。本例是0XFF,255

0X1C~0X1F:     4个字节。分区前已经使用的扇区数,隐藏扇区数。本例是 0X 00 00 00 3F,63

0X20~0X23:   4个字节,文件系统扇区数。本例是 0X00 EA 58 78,15358072

0X24~0X27:   4个字节,每一个FAT表的扇区数。本例是 0X00 00 3A 79。14969

0X28~0X29:   2个字节,标记。

0x2A~0x2B:    2个字节,版本。

0x2C~0x2F:    4个字节。根文件夹簇号,2。(尽管在FAT32文件系统下。根文件夹能够存放在数据区的不论什么位置,可是通常情况下还是起始于2号簇)

0x30~0x31:     2个字节,FSINFO(文件系统信息扇区)扇区号。1。该扇区为操作系统提供关于空簇总数及下一可用簇的信息。

0x32~0x33:     2个字节,备份引导扇区的位置。6。

备份引导扇区总是位于文件系统的6号扇区。

0x34~0x3F:     12个字节。未使用。

0x40~0x40:     1个字节,BIOS INT 13H 设备号,0x80。

0x41~0x41:     1个字节,未用。

0x42~0x42:     1个字节。扩展引导标志。0x29。

0x43~0x46:     1个字节,卷序列号。通常为一个随机值。

0x47~0x51:     11个字节,卷标(ASCII码)。假设建立文件系统的时候指定了卷标,会保存在此。本例中是NO NAME

0x52~0x59:     8个字节。文件系统格式的ASCII码,FAT32。

0x5A~0x1FD:  410个字节,未使用。

该部分没有明白的用途。

0x1FE~0x1FF: 签名标志“55 AA”。

3.FSINFO信息扇区

FSINFO一般位于文件系统的1号扇区。就是DBR的下一个扇区。它用来记录文件系统中空暇簇的数量以及下一可用簇的簇号等信息。


以下介绍一下FSINFO的结构

0x00~0x03:          4个字节,扩展引导标志“52526141”。

0x04~0x1E3:    480个字节,未使用,所有置0。

0x1E4~0x1E7: 4个字节,FSINFO签名“72724161”。

0x1E8~0x1EB: 4个字节,文件系统的空簇数。41207688(0x00 12 6D 88)。

0x1EC~0x1EF: 4个字节。下一可用簇号,663(0x00 00 02 97)。

0x1F0~0x1FD: 14个字节,未使用。

0x1FE~0x1FF: 2个字节,“55 AA”标志。


注意:通常情况下,文件系统的2号扇区结尾也会被设置“55 AA”标志。6号扇区也会有一个引导扇区的备份,对应的,7号扇区应该是一个备份FSINFO信息扇区。8号扇区能够看做是2号扇区的备份,它的结尾也会有一个“55 AA”标志。

4.以下是一个NTFS文件系统的DBR


0x01~0x02:      3个字节。跳转指令。

0x03~0xA:        8个字节。文件系统的字符串。

本例中是NTFS

0X0B~0X0C:     2个字节,每扇区的字节数。本例是0X0200,512

0X0D                1个字节,每簇的扇区数。本例是0x8

0X0E~0X0F:      2个字节。保留扇区数。本例是0x0000

0X10~0X13:   4个字节。未使用

0X15:            1个字节,介质描写叙述。本例中0XF8表示本地硬盘。

0X16~0X17:   2个字节,总为0.

0X18~0X19:   2个字节,每一个磁道的扇区数。本例是0X3F,63

0X1A~0X1B:     2个字节。每一个柱面的磁头数。

本例是0XFF,255

0X1C~0X1F:      4个字节,隐含扇区数。本例是 0X 0C 81 98 00,209819648 

0X20~0X23:    4个字节,未使用

0X24~0X27:    4个字节,未使用。一般都为0X80 00 80 00

0X28~0X2F:    8个字节,该分区的扇区数。

本例为0X00 00 00 00 19 01 8F FF,419532799

0x30~0x37:     8个字节,$MFT的起始逻辑簇号。本例为0X00 00 00 00 00 0C 00 00

0x38~0x3F:     8个字节。$MFTMirr(MFT文件的镜像文件)的起始逻辑簇号。本例为0X00 00 00 00 00 00 00 02

0x40~0x43:     4个字节。每一个MFT记录所占的簇数。

本例中为0XF6 00 00 00

0x44~0x47:     4个字节,每索引簇数,通常每索引簇数为1个簇。

本例为0X00 00 00 01

0x48~0x4F:     8个字节。分区的逻辑序列号。这个序列号是硬盘格式化时随机产生的。本例为0X14 A2 8F A3 A2 8F 87 C6

0x50~0x53:     4个字节,校验和。

为0X00 00 00 00 00 

0x54~0x1FD:   426个字节,自举代码

0x1FE~0x1FF:     结束标志








版权声明:本文博客原创文章,博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/yxwkf/p/4610908.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YouTube Java API入门

在本教程中,我将介绍Google的YouTube API ,该API可让您使用YouTube的功能来启用应用程序。 YouTube是“杀手级”互联网应用程序之一,其流量占互联网总流量的很大一部分。 在开始之前,请确保您已阅读《 API概述指南》 。 我们将主…

ServletContext图解

servlet之间共享数据资源! 转载于:https://www.cnblogs.com/felixzh/p/4615902.html

Linux自动化安装cobbler

1介绍 1.1 PXE PXE技术与RPL技术不同之处为RPL是静态路由,PXE是动态路由。RPL是根据网卡上的ID号加上其他记录组成的一个Frame(帧)向服务器发出请求。而服务器中已有这个ID数据,匹配成功则进行远程启动。PXE则是根据服务器端收到的…

Xuggler教程:帧捕获和视频创建

注意:这是我们的“ Xuggler开发教程 ”系列的一部分。 到目前为止,在我们的Xuggler教程系列中,我们已经对视频处理的Xuggler进行了介绍,并讨论了转码和媒体修改 。 在本教程中,我们将看到如何解码视频和捕获帧&#xf…

SignalR + MVC5 简单示例

SignalR MVC5 简单示例 原文:SignalR MVC5 简单示例本文和前一篇文章很类似,只不过是把 SignalR 应用在了 MVC 中 新建项目,选择 MVC 模板 安装 SignalR Install-Package Microsoft.AspNet.SignalR 在项目中添加文件夹 Hubs 在 Hubs 文件夹中添加 Sign…

Hive 接口介绍(Web UI/JDBC)

Hive 接口介绍(Web UI/JDBC) 实验简介 本次实验学习 Hive 的两种接口:Web UI 以及 JDBC。 一、实验环境说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubu…

Java最佳实践– Char到Byte和Byte到Char的转换

在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优。 特别是,我们将重点介绍使用默认编码时如何有效地处理字符到字节和字节到字符的转换。 本文总结了两种提议的自定义方法与两种经典方法&#xff0…

Java最佳实践–队列之战和链接的ConcurrentHashMap

在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将在四个具有相关语义的流行Queue实现类之间进行性能比较。 为了使事情变得更现实,我们将在多线程环境下进行测试,以讨论和演示如何将ArrayBlockingQueue &am…

关于使用racthet的push.js

racthet的push是用来跳转另外一个页面的效果的。但是必须在服务器的环境下支持。如果想要让本地html访问支持的话需要添加 转载于:https://www.cnblogs.com/djawh/p/4623925.html

“应用程序无法正常启动(oxc000007b)”解决方案

解决方案1 通过“DirectX修复工具 V3.3 标准版”软件修复。 备注:经过测试,并未解决本人的问题,但是这个方法可能对游戏中缺失相关.dll(动态链接库)有帮助。 解决方案2: 该问题的出现不适偶然,主…

7-15 计算圆周率 (15 分)

根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。 输入格式: 输入在一行中给出小于1的阈值。 输出格式: 在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。 输入样例: 0.01结尾无…

JUnit学习之hamcrest、testSuite介绍及测试原则

[转自] http://huihai.iteye.com/blog/1994270 上一节说了junit的一些基本概念,主要使用assert做一些基本的判断。但很多时候使用assert做判断,并不方便,如果要判断某几个值是否为true或false,这时使用hamcrest来判断就会方便许多…

Java最佳实践– Vector vs ArrayList vs HashSet

在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将在三个最常用的Collection实现类之间进行性能比较。 为了使事情变得更现实,我们将在多线程环境下进行测试,以讨论和演示如何将Vector , ArrayLi…

Android特效 五种Toast详解

Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。而且Toast主要用于向用户显示提示消息,接下来巴士为大家总结了Android五种To…

Java最佳实践–高性能序列化

在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论并演示如何将对象序列化用于高性能应用程序。 所有讨论的主题均基于用例,这些用例来自于电信行业的关键任务超高性能生产系统的开发。 在阅读本文的每个部分之前…

7-18 二分法求多项式单根 (20 分)

二分法求函数根的原理为&#xff1a;如果连续函数f(x)在区间[a,b]的两个端点取值异号&#xff0c;即f(a)f(b)<0&#xff0c;则它在这个区间内至少存在1个根r&#xff0c;即f0。 二分法的步骤为&#xff1a; 检查区间长度&#xff0c;如果小于给定阈值&#xff0c;则停止&a…

UITableViewCell 选中的状态小技巧

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {[super setSelected:selected animated:animated]; //cell 没被选中时 隐藏这个 _leftImageViewself.leftImageView.hidden !selected; //选中text变红 不然变灰色self.textLabel.textColor selected ? [UICol…

BZOJ 3143 HNOI2013 游走 高斯消元 期望

这道题是我第一次使用高斯消元解决期望类的问题&#xff0c;首发A了&#xff0c;感觉爽爽的.... 不过笔者在做完后发现了一些问题&#xff0c;在原文的后面进行了说明。 中文题目&#xff0c;就不翻大意了&#xff0c;直接给原题&#xff1a; 一个无向连通图&#xff0c;顶点从…

eclipse启动tomcat, http://localhost:8080无法访问的解决方案

问题:&#xff1a; tomcat在eclipse里面能正常启动&#xff0c;但在浏览器中访问http://localhost:8080/不能访问tomcat管理页面&#xff0c;且报404错误。同时其他项目页面也不能访问。访问的时候出现下列页面: 现在关闭eclipse里面的tomcat&#xff0c;在tomcat安装目录下双击…

洛谷P1014 [NOIP1999 普及组] Cantor 表

现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的&#xff1a; 代码 import java.util.*; public class Main{public static void main(String[] args){//int x1 0;int i 0;Scanner sc new Scanner(System.in);int n s…