解析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.pswp.cn/news/374870.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374870.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374870.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簡單冒泡排序

將5個數字按從小到大排序。 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int x[5] {0},temp 0;for(int i 0;i<5;i){scanf("%d",&x[i]);}//冒泡排序&#xff08;升序&#xff09;for(int j 0;j<4;j)//n個…

YouTube Java API入門

在本教程中&#xff0c;我將介紹Google的YouTube API &#xff0c;該API可讓您使用YouTube的功能來啟用應用程序。 YouTube是“殺手級”互聯網應用程序之一&#xff0c;其流量占互聯網總流量的很大一部分。 在開始之前&#xff0c;請確保您已閱讀《 API概述指南》 。 我們將主…

mysql在mac上的坑

默認端口3306&#xff1f; 正確答案&#xff1a;3307 轉載于:https://www.cnblogs.com/dudream/p/5375551.html

ServletContext圖解

servlet之間共享數據資源&#xff01; 轉載于:https://www.cnblogs.com/felixzh/p/4615902.html

C語言怎么輸出百分號%

規律&#xff1a;printf函數中&#xff0c;當出現多個%時&#xff0c;由左至右&#xff0c;每兩個%結合輸出一個% #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int c 52;printf("% \n %% \n %%% \n %%%% \n %%%%% \n %%%%…

入侵Jasper以獲取JSP頁面的對象模型

為了對我的JSP進行一些檢查和統計分析&#xff0c;我需要一個包含在其中的元素的類似于DOM的層次模型。 但是&#xff0c;解析JSP頁面并不是一件容易的事&#xff0c;最好留給它一個出色的工具-Tomcat&#xff0c;Jetty&#xff0c;GlassFish以及其他所有工具都可以使用Jasper …

Linux自動化安裝cobbler

1介紹 1.1 PXE PXE技術與RPL技術不同之處為RPL是靜態路由&#xff0c;PXE是動態路由。RPL是根據網卡上的ID號加上其他記錄組成的一個Frame&#xff08;幀&#xff09;向服務器發出請求。而服務器中已有這個ID數據&#xff0c;匹配成功則進行遠程啟動。PXE則是根據服務器端收到的…

iOS9適配系列教程

https://github.com/ChenYilong/iOS9AdaptationTips 轉載于:https://www.cnblogs.com/zsw-1993/p/4879118.html

C語言形參

形參和實參區別 形參出現在函數定義中&#xff0c;在整個函數體內都可以使用&#xff0c;離開該函數則不能使用。實參出現在主調函數中&#xff0c;進入被調函數后&#xff0c;實參變量也不能使用。 形參和實參的功能是作數據傳送。發生函數調用時&#xff0c;主調函數把實參…

避免延遲的JPA集合

Hibernate&#xff08;實際上是JPA&#xff09;具有集合映射&#xff1a; OneToMany&#xff0c; ManyToMany&#xff0c; ElementCollection。 所有這些默認情況下都是惰性的。 這意味著集合是List或Set接口的特定實現&#xff0c;其中包含對持久會話的引用&#xff0c;并且只…

2016年,我的和自己談談

2016年過去三分之一了&#xff0c;現在談規劃晚點但總比沒想法強。想了半天還是從這個方面著手吧&#xff1a; 一.升級改造自己的辦公學習環境&#xff1a; 給自己的電腦加內存&#xff0c;加SSD&#xff0c;再添置一個顯示器&#xff0c;換上心儀已久的cherry青軸鍵盤&#xf…

C語言的四舍五入實現

習題3-2 高速公路超速處罰 (15 分) 按照規定&#xff0c;在高速公路上行使的機動車&#xff0c;達到或超出本車道限速的10%則處200元罰款&#xff1b;若達到或超出50%&#xff0c;就要吊銷駕駛證。請編寫程序根據車速和限速自動判別對該機動車的處理。 輸入格式: 輸入在一行中…

ACTGame項目

項目地址&#xff1a;https://github.com/alonecat06/ACTGame游戲地址&#xff1a;http://pan.baidu.com/s/1hqD3IYw 項目是一個自制單機動作游戲demo&#xff0c;方向是手游&#xff0c;使用Unity5&#xff0c;5月中開工至今。 做這個項目&#xff0c;是為加深自己對Unity的理…

Xuggler教程:幀捕獲和視頻創建

注意&#xff1a;這是我們的“ Xuggler開發教程 ”系列的一部分。 到目前為止&#xff0c;在我們的Xuggler教程系列中&#xff0c;我們已經對視頻處理的Xuggler進行了介紹&#xff0c;并討論了轉碼和媒體修改 。 在本教程中&#xff0c;我們將看到如何解碼視頻和捕獲幀&#xf…

面向對象-原型對象

創建對象 Js中可以用構造函數模式創建對象&#xff0c;如&#xff1a; function Person(name, age, job) {this.name name;this.age age;this.job job;this.sayName function () {alert(this.name);}}var person1 new Person("Nicholas", 29, "aa");v…

索引類型

1.B樹索引 在Oracle中是通用索引&#xff0c;是創建索引時的默認索引。B樹索引可以是單列索引&#xff0c;也可以是組合/復合索引。B樹索引最多可以包括22列。 2.位圖索引 位圖索引時決策支持系統&#xff08;DSS&#xff09;和數據倉庫的理想選擇&#xff0c;它們不應該用于事…

C語言條件運算符

先看一個error error: lvalue required as left operand of assignment| i 0 ? X 1.0 : X * x;修改后 i 0 ? (X 1.0) : (X * x);也就是說條件運算符可以執行語句&#xff0c;當是賦值語句時要加括號規定優先級&#xff0c;不然會干擾程序判斷。 因為條件運算符作為三目…

EJB 3.0注入和查找簡介

介紹 Enterprise JavaBeans Specification v。3.0引入了簡化的&#xff0c;基于注釋的API&#xff0c;用于EJB注入和查找。 EJB 3.0現在是POJO&#xff0c;可以使用簡單的注釋將其注入其他組件&#xff08;例如EJB和Servlet&#xff09;。 EJB 3.0是Java EE 6的許多其他基于POJ…

SignalR + MVC5 簡單示例

SignalR MVC5 簡單示例 原文:SignalR MVC5 簡單示例本文和前一篇文章很類似&#xff0c;只不過是把 SignalR 應用在了 MVC 中 新建項目&#xff0c;選擇 MVC 模板 安裝 SignalR Install-Package Microsoft.AspNet.SignalR 在項目中添加文件夾 Hubs 在 Hubs 文件夾中添加 Sign…

Java內存模型–快速概述和注意事項

在計算中&#xff0c; 內存模型描述了線程如何通過內存進行交互&#xff0c;或更一般地&#xff0c;它指定了為分段內存或分頁內存平臺生成代碼時允許編譯器進行的假設。 在給定程序和該程序的執行跟蹤的情況下&#xff0c;它實質上描述了執行跟蹤是否是該程序的合法執行。 Jav…