不拆優(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è)。
- 已知
- 分區(qū)引導(dǎo)扇區(qū)地址=0x4000(前面的文章算的)
- 保留扇區(qū)大小=0xD80扇區(qū)
- FAT個(gè)數(shù)=2
- 一個(gè)FAT表大小=0x3940扇區(qū)
- 扇區(qū)大小=512字節(jié)
- 保留扇區(qū)、FAT表和根目錄是挨在一起的
- 求
根目錄地址 - 解
即下圖中的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)。
