一、簡介
????百度百科:NTFS(New Technology File System)是Windows NT內(nèi)核的系列操作系統(tǒng)支持的、一個(gè)特別為網(wǎng)絡(luò)和磁盤配額、文件加密等管理安全特性設(shè)計(jì)的磁盤格式,提供長文件名、數(shù)據(jù)保護(hù)和恢復(fù),能通過目錄和文件許可實(shí)現(xiàn)安全性,并支持跨越分區(qū)。
二、特點(diǎn)
? ? (1)安全性較高 ,NTFS文件系統(tǒng)有日志容錯功能,所以安全性比FAT文件系統(tǒng)高。
? ? (2)NTFS文件系統(tǒng)可以給文件設(shè)置訪問權(quán)限
? ? (3)支持文件壓縮和文件加密
? ? (4)支持磁盤配額
? ? (5)NTFS文件系統(tǒng)支持大分區(qū)(在MBR磁盤最大支持2T,在GPT磁盤支持的分區(qū)更大)
? ? (6)NTFS文件系統(tǒng)支持大文件(大于4G)
三、NTFS文件系統(tǒng)的總體結(jié)構(gòu)
? ? 1.NTFS結(jié)構(gòu)

? ? ????·$BOOT:引導(dǎo)文件
? ????? · $MFT:主文件表,每個(gè)文件的信息都在這個(gè)MFT中有記錄
????????· $MFTMirr:$MFT前面4個(gè)表項(xiàng)的備份文件
? ? ????·備份DBR:其中$DBR 源文件在0號扇區(qū)
????????打開winhex后看到這些$boot,$MFT這些帶符號的文件是元文件

$BadClus:壞簇列表文件
$Secure:安全文件,用來控制文件或目錄的訪問權(quán)限
$Volume:記錄卷標(biāo)信息
$AttrDef:屬性定義表
$MFTMirr:$MFT前面4個(gè)表項(xiàng)的備份
$BOOT:引導(dǎo)文件
$LogFile:日志文件
$MFT:主文件表,每個(gè)文件的信息都在這個(gè)MFT中有記錄
對照說明
? ? 對照表1:

? ? 對照表2:

? ? 2.分析$Boot文件

????????關(guān)于DBR的屬性,可以嘗試對照一下, 上圖羅列了一些比較重要的屬性
????對照表1:

3.$MFT的分析
? ? 上面有提到,每個(gè)文件信息MFT都有記錄。
(1)特點(diǎn)
?????????以明文“FILE”開頭
?????????每個(gè)MFT項(xiàng)都占用1024字節(jié),即兩個(gè)扇區(qū)
?????????NTFS文件系統(tǒng)中的所有文件,都有一個(gè)MFT項(xiàng)記錄相應(yīng)的數(shù)據(jù)
?????????每個(gè)MFT項(xiàng)占用的兩個(gè)扇區(qū),最后兩個(gè)字節(jié)是一個(gè)修正值,這個(gè)修正值和MFT項(xiàng)中的更新序列號相同,如果系統(tǒng)發(fā)現(xiàn)不同,就會認(rèn)為這個(gè)MFT項(xiàng)錯誤,會把開頭標(biāo)志明文“FILE”改成“BAAD”

? ? ? ? ? ? ??紅色邊框 46 49 4c 45 是固定開頭對應(yīng)FILEO
? ? ? ? ? ? ??第一個(gè)黃色邊框的是 更新序列號的偏移 ,第二個(gè) 黃色框是更新序列號的個(gè)數(shù)
? ? ? ? ? ? ??藍(lán)色邊框 95 52 20 0000......是日志序列號
? ? ? ? ? ? ??綠色邊框 38 00 是第一個(gè)屬性的偏移地址
? ? ? ? ? ? ??上面和下面黑色邊框 02 00就是更新序列號,一般是相同的
? ? ? ? 對照表1:

對照表2:

(2)結(jié)構(gòu)
? ? 通常會有10、20、30、40、50、60、70、80、90、A0屬性等,其中要牢記80屬性會存有文件的內(nèi)容或文件的簇流運(yùn)行。這里有涉及到常駐屬性與非常住屬性,后面會詳細(xì)說明

?????????????10屬性是標(biāo)準(zhǔn)信息
?????????????30屬性是文件名
? ???????????40對象ID
?????????????80是文件內(nèi)容(要記?。?/b>
????????對照表1:

? ??????對照表2:

(3)屬性
? ????????這里由于MFT存儲有限,只有較小的文件在存MFT表中,大文件會存在其他扇區(qū),這就要引入簇流運(yùn)行和常駐屬性與非常駐屬性。
? ?1)常駐屬性:直接在MFT項(xiàng)中記錄屬性體
?????????????優(yōu)點(diǎn):訪問速度快
?????????????缺點(diǎn):只能記錄少量的數(shù)據(jù)

? ? ? ? 這里相對于80偏移8的地方是 00 代表的是常駐屬性,文件的內(nèi)容就存在這里
? ? 常駐屬性對照表:

2)非常駐屬性:在MFT之外的區(qū)域記錄屬性體
?????????????優(yōu)點(diǎn):用簇流記錄文件存儲的數(shù)據(jù)區(qū)域,可以記錄很大的數(shù)據(jù)
?????????????缺點(diǎn):訪問速度較慢

? ??????????? 這里相對于80偏移8的地方是 01 代表的是非常駐屬性,文件的內(nèi)容存在其他扇區(qū),而定位扇區(qū)關(guān)鍵在于藍(lán)色框的簇流運(yùn)行。
????對照表1:

? ? ? ? ? ? 對照表2:

(4)簇流運(yùn)行
????????簇流就是存放數(shù)據(jù)的區(qū)域
????????簇流運(yùn)行:是記錄簇流的具體在文件系統(tǒng)哪個(gè)位置的代碼。
? ? ? ? 1)結(jié)構(gòu):
? ??????

? ? ? ? 這里拆開看? 21? ?10? ? 53 08,這里的21高位的2代表的是簇流的起始簇指向53 08?,低位的1代表的是簇流的的大小 指向10。
這里的起始簇要寫成16進(jìn)制的形式,反過來看即可 0853H(開頭的0可以省略)

? ? 所以文件的結(jié)尾位置=起始簇的位置+簇的大小,即2131(0853H轉(zhuǎn)成十進(jìn)制)到2147(2131+16(10H轉(zhuǎn)成十進(jìn)制))?;謴?fù)即可
注意:
?如果后面是00 ,那么這個(gè)簇流運(yùn)行結(jié)束 ,否則表示還有簇流運(yùn)行。
?存在多個(gè)簇流時(shí),下一個(gè)簇流的起始簇號是相對于這個(gè)簇流的起始簇號。
?如果下個(gè)簇流的起始簇號是負(fù)數(shù) ,那么表示下個(gè)簇流在這個(gè)簇流的前面。
如有錯誤的地方還請各位多多指教,謝謝
恢復(fù)文件實(shí)例: