exFAT檔案系統例項(二)

2021-10-08 18:05:30 字數 2995 閱讀 1322

在sd卡根目錄下複製乙個abc.txt的測試檔案進入,檔案中包含一些內容,如下圖所示:

在分析之前,先回顧一下使用者目錄項的基礎知識

exfat檔案系統中每個使用者檔案至少有三個目錄項,稱為三個屬性:

屬性1: 目錄項首位元組的特徵值為「85h」

描述檔案的基本資訊,修改日期等

屬性2: 目錄項首位元組的特徵值為「c0h」

屬性2主要用來查詢檔案所在的簇, 大小等

屬性3: 目錄項首位元組的特徵值為「c1h」

描述檔名;

通過目錄項查詢,找到的紅色框中的資料,即abc.txt檔案的描述,分析如下(起始位址為0x3180d0):

屬性1("85h"):

位元組偏移

長度欄位名和定義

實際值(hex)

0x00

表示目錄型別

85h(表示使用者檔案目錄項)

0x01

附屬目錄項數

02  (包含兩個目錄項,乙個目錄項大小為32位元組,即後續c0,c1)

0x02

校驗和0beb(計算方式參考)

0x04

檔案屬性

20000000 (含義參考下表)

0x08

檔案建立時間

1d440151

0x0c

檔案最後修改時間

19440151

0x10

檔案最後訪問時間

1d440151

0x14

1檔案建立時間精確至10ms

b20x15~0x1f

保留(表7--5屬性具體含義)

二級制值

屬性含義

二進位制值

屬性含義

00000000

讀寫00001000

卷標00000001

唯讀00010000

子目錄00000010

隱藏00100000

存檔00000100

系統屬性2("c0"):

位元組偏移

字段長度(位元組)

內容及含義

實際值(hex)

0x00

1目錄項的型別(特徵值為「c0h」)

c0 表示屬性2

0x01

1檔案碎片標誌

03 乜有碎片(注: 有碎片用01表示)

0x021保留

0x03

1檔名字元數n

07檔名長度,用unicode 表示,每個字元佔2位元組

0x04

2檔名hash值

0028

0x062保留

0x08

8檔案大小1

0000000012

0x104保留

0x14

4起始簇號

00000009

0x18

8檔案大小2

0000000012

屬性3("c1"):

位元組偏移

字段長度(位元組)

內容及含義

0x00

1目錄項的型別(特徵值為「c1h」)

0x011保留

0x02

2n檔名

從第二個字段開始,全是檔名,長度請看屬性2中長度字段;

這裡有個問題,如果檔案長度很長,會怎麼樣呢?

構造乙個長檔名的空檔案如下:

夠長了吧! 重新整理一下winhex

在最後乙個紅色區域,為了支援長檔名,可以發現,差異點在:

1 在屬性1(85開頭)中的附屬目錄項個數變成了05,

2 屬性3(c1開頭)的項一共有3個,用來儲存檔名資料;

比較好奇的是,中間紅色框,多了一共05開頭的目錄項??,  直接上結果:

「85h」、「」c0h、「c1h」改變為「05h」、「40h」、「41h」, 是刪除的目錄項標記;

可能是別的應用在這其間建立臨時檔案,後由刪除了;

根據上一章節,對目錄項屬性2的分析,可知道abc.txt檔案內容所在簇為 00000009;

計算所在扇區=0x1800 + (9-2)* 64= 0x19c0 (2號簇起始扇區 + 偏移簇所佔扇區)

是不是與檔案寫入的資料是一樣的!!

然後,fat表應該是什麼樣子呢?

找到fat表,第9個簇項,

依舊是0, 

但並不能說這些fat項對應的簇就是空簇。這一點和fat16、fat32 是不一樣的;

那簇位**件是什麼樣子呢?

找到簇位**件,

第乙個位元組為 ffh,  二進位制為 1111 1111  , 對應資料區的8個簇,即2~9 這8個簇,說明9號簇是被應用狀態的;

其他的後續再做介紹!

exfat檔案系統(二)

獲取到exfat nofuse 後,先看看 中自帶的readme.md文件,check發現該開源 是在linux系統中以命令modprobe exfat方式load the driver manually,然後使用標準的mount載入exfat檔案系統。modprobe exfat的控制主要是執行 ...

exFAT檔案系統介紹

exfat 全稱extended file allocation table file system,擴充套件fat,即擴充套件檔案分配表 是microsoft在windows embeded 5.0以上 包括windows ce 5.0 6.0 windows mobile5 6 6.1 中引入的...

微軟最新檔案系統ExFAT

微軟檔案系統經歷了fat12 fat16 fat32 ntfs幾個階段,ntfs檔案系統以其非常好的安全性及可恢復性得到廣泛認可,也是微軟力推的一種檔案系統。目前,微軟又對fat系列檔案系統做了進一步發展,推出了exfat extended file allocation table file sy...