一、简介
百度百科:NTFS(New Technology File System)是Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,提供长文件名、数据保护和恢复,能通过目录和文件许可实现安全性,并支持跨越分区。
二、特点
(1)安全性较高 ,NTFS文件系统有日志容错功能,所以安全性比FAT文件系统高。
(2)NTFS文件系统可以给文件设置访问权限
(3)支持文件压缩和文件加密
(4)支持磁盘配额
(5)NTFS文件系统支持大分区(在MBR磁盘最大支持2T,在GPT磁盘支持的分区更大)
(6)NTFS文件系统支持大文件(大于4G)
三、NTFS文件系统的总体结构
1.NTFS结构
·$BOOT:引导文件
· $MFT:主文件表,每个文件的信息都在这个MFT中有记录
· $MFTMirr:$MFT前面4个表项的备份文件
·备份DBR:其中$DBR 源文件在0号扇区
打开winhex后看到这些$boot,$MFT这些带符号的文件是元文件
$BadClus:坏簇列表文件
$Secure:安全文件,用来控制文件或目录的访问权限
$Volume:记录卷标信息
$AttrDef:属性定义表
$MFTMirr:$MFT前面4个表项的备份
$BOOT:引导文件
$LogFile:日志文件
$MFT:主文件表,每个文件的信息都在这个MFT中有记录
对照说明
对照表1:
对照表2:
2.分析$Boot文件
关于DBR的属性,可以尝试对照一下, 上图罗列了一些比较重要的属性
对照表1:
3.$MFT的分析
上面有提到,每个文件信息MFT都有记录。
(1)特点
•以明文“FILE”开头
•每个MFT项都占用1024字节,即两个扇区
•NTFS文件系统中的所有文件,都有一个MFT项记录相应的数据
•每个MFT项占用的两个扇区,最后两个字节是一个修正值,这个修正值和MFT项中的更新序列号相同,如果系统发现不同,就会认为这个MFT项错误,会把开头标志明文“FILE”改成“BAAD”
•红色边框 46 49 4c 45 是固定开头对应FILEO
•第一个黄色边框的是 更新序列号的偏移 ,第二个 黄色框是更新序列号的个数
•蓝色边框 95 52 20 0000......是日志序列号
•绿色边框 38 00 是第一个属性的偏移地址
•上面和下面黑色边框 02 00就是更新序列号,一般是相同的
对照表1:
对照表2:
(2)结构
通常会有10、20、30、40、50、60、70、80、90、A0属性等,其中要牢记80属性会存有文件的内容或文件的簇流运行。这里有涉及到常驻属性与非常住属性,后面会详细说明
•10属性是标准信息
•30属性是文件名
•40对象ID
•80是文件内容(要记住)
对照表1:
对照表2:
(3)属性
这里由于MFT存储有限,只有较小的文件在存MFT表中,大文件会存在其他扇区,这就要引入簇流运行和常驻属性与非常驻属性。
1)常驻属性:直接在MFT项中记录属性体
•优点:访问速度快
•缺点:只能记录少量的数据
这里相对于80偏移8的地方是 00 代表的是常驻属性,文件的内容就存在这里
常驻属性对照表:
2)非常驻属性:在MFT之外的区域记录属性体
•优点:用簇流记录文件存储的数据区域,可以记录很大的数据
•缺点:访问速度较慢
这里相对于80偏移8的地方是 01 代表的是非常驻属性,文件的内容存在其他扇区,而定位扇区关键在于蓝色框的簇流运行。
对照表1:
对照表2:
(4)簇流运行
簇流就是存放数据的区域
簇流运行:是记录簇流的具体在文件系统哪个位置的代码。
1)结构:
这里拆开看 21 10 53 08,这里的21高位的2代表的是簇流的起始簇指向53 08 ,低位的1代表的是簇流的的大小 指向10。
这里的起始簇要写成16进制的形式,反过来看即可 0853H(开头的0可以省略)
所以文件的结尾位置=起始簇的位置+簇的大小,即2131(0853H转成十进制)到2147(2131+16(10H转成十进制))。恢复即可
注意:
•如果后面是00 ,那么这个簇流运行结束 ,否则表示还有簇流运行。
•存在多个簇流时,下一个簇流的起始簇号是相对于这个簇流的起始簇号。
•如果下个簇流的起始簇号是负数 ,那么表示下个簇流在这个簇流的前面。
如有错误的地方还请各位多多指教,谢谢
恢复文件实例: