0
点赞
收藏
分享

微信扫一扫

NTFS 文件系统介绍

西特张 2021-09-27 阅读 96

一、简介

    百度百科: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 ,那么这个簇流运行结束 ,否则表示还有簇流运行。

•存在多个簇流时,下一个簇流的起始簇号是相对于这个簇流的起始簇号。

•如果下个簇流的起始簇号是负数 ,那么表示下个簇流在这个簇流的前面。


如有错误的地方还请各位多多指教,谢谢


恢复文件实例:

举报

相关推荐

0 条评论