淺嘗輒止53-FAT32-拆個(gè)優(yōu)盤4

不拆優(yōu)盤,拆遷就好了。

分區(qū)引導(dǎo)扇區(qū)

上一篇,我們從優(yōu)盤的分區(qū)引導(dǎo)扇區(qū)得知

  • 保留扇區(qū)大小為0xD80扇區(qū)
  • FAT個(gè)數(shù)為0x2
  • 一個(gè)FAT表大小為0x3940扇區(qū)

根目錄

因?yàn)?strong>保留扇區(qū)、FAT表根目錄是挨在一起的,所以從分區(qū)引導(dǎo)扇區(qū)開始,跳過前兩個(gè),就找到了第三個(gè)。

  • 已知
  1. 分區(qū)引導(dǎo)扇區(qū)地址=0x4000(前面的文章算的)
  2. 保留扇區(qū)大小=0xD80扇區(qū)
  3. FAT個(gè)數(shù)=2
  4. 一個(gè)FAT表大小=0x3940扇區(qū)
  5. 扇區(qū)大小=512字節(jié)
  6. 保留扇區(qū)FAT表根目錄是挨在一起的

  • 根目錄地址

  • 0x4000+(0xD80+0x3940\times 2) \times 512 = 0x1004000即下圖中的Offset。

文件項(xiàng)

上圖中,每個(gè)紅框中是一個(gè)文件項(xiàng),一個(gè)文件項(xiàng)記錄了文件的文件名、大小、起始簇、創(chuàng)建時(shí)間、修改時(shí)間等元數(shù)據(jù)。文件項(xiàng)根據(jù)文件名長短有兩種,分別是短文件項(xiàng)和長文件項(xiàng)。

短文件項(xiàng)

上圖中的0x1004020、0x10040E0處就是短文件項(xiàng)。如果一個(gè)文件的名字(不包括后綴)不超過8個(gè)字節(jié),后綴也不長的話,它的元數(shù)據(jù)就會(huì)是一個(gè)短文件項(xiàng)。也就是說,一個(gè)短文件項(xiàng)存儲(chǔ)的文件名的字符數(shù)是有限的。

長文件項(xiàng)

上圖中的0x1004040、0x1004100處就是長文件項(xiàng),看右側(cè)的字符,很明顯它們的名字比較長,所以先存了個(gè)截?cái)嗟拿郑ɡ?x10040C0),然后向上依次以某種格式存儲(chǔ)unicode格式的文件名(例如0x10040A0、0x1004080、0x1004060、0x1004040)。

根目錄本身就是個(gè)目錄,可以從以上介紹看出,目錄也是有內(nèi)容的,就是目錄下文件和目錄的文件項(xiàng)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容