当前位置:首页 > 智能硬件 > 智能硬件
[导读]摘要 在研究Windows操作系统中文件管理系统NTFS的基础上,提出一种彻底清除磁盘数据的方法。NTFS对文件的访问操作,主要通过与文件相关的MFT表进行,这与FAT系统存在较大差异。通过分析MFT表管理磁盘数据的方法,建立

摘要 在研究Windows操作系统中文件管理系统NTFS的基础上,提出一种彻底清除磁盘数据的方法。NTFS对文件的访问操作,主要通过与文件相关的MFT表进行,这与FAT系统存在较大差异。通过分析MFT表管理磁盘数据的方法,建立一种树形目录结构,并以该树形目录作为管理磁盘中所有MFT表的工具。采用遍历之后立即释放树结点的方法,解决了内存过度占用的问题。该技术可以在磁盘扇区直接清除数据,还可对数据进行更加直接的管理,减少了对操作系统的依赖,可操作性和安全性良好。
关键词 磁盘数据;NTFS;MFT表;扇区;树结构

    安全的磁盘清理软件可以很好地为数字化信息系统服务。目前大部分磁盘清理软件未能彻底清除在磁盘中的数据,对于磁盘上已经删除的文件信息在未重新写入新的文件时,Windows只是标记,并没有进行数据清理。这就使得可以通过数据恢复的手段获取保密信息,大多数清理软件只是采用重新填写无效文件的方式清除磁盘上的数据。而这样会大大缩短磁盘的使用寿命。文中研究了Windows的文件系统NTFS清除磁盘数据的原理,采用直接访问NTFS的主文件列表找到文件具体存储的位置,并解码二进制文件,从而彻底清除文件,减少了对操作系统的依赖,避免了大量盲目填写无效文件的操作,并保护了磁盘使用寿命。

1 NTFS系统结构原理
1.1 基本原理
    NTFS是Windows NT引入的新型文件系统,由于NTFS的结构复杂,内容繁多,这里仅对NTFS卷上的底层结构做分析。在NTFS格式中,文件以簇的形式分配。最小的单位为扇区,N个扇区为一簇。其中,N的值由引导扇区规定。NTFS格式磁盘的数据分为4大部分:引导区、主文件列表、系统文件和文件数据区。
    引导区(Partition boot sector):所有磁盘格式都有这个区,占用了磁盘第一个扇区。
    主文件列表(Master File List):记录了卷上所有文件,每个文件对应了表上的一条记录。
    系统文件(System file):NTFS一共有16个系统文件,8个隐藏文件。
    文件数据区(File Area):存放文件数据。
    NTFS跟FAT16,FA332一样都在引导扇区中有一些BPB参数,但与FAT32,FAT16并不完全相同。文献对NTFS引导扇区一些重要数据的含义进行了详细介绍。
1.2 主控文件表与元数据文件
    MFT是一个对应的数据库,由一系列的文件记录组成,卷中每一个文件都有一个文件记录。主文件表本身也有自己的文件记录。实际上,MFT自身也是一个文件,因此,主文件列表的第一个记录就是它自身。MFT的每个记录都有一个编号,这里称为ID号,这个ID从0开始。MFT自身是NTFS系统的第一个文件,所以文件$MFT的ID号为0。
    MFT和其他23个文件一起,用户每添加一个文件ID号加1。MFT头的长度跟偏移处的数据含义不变,但属性列表是可变的,其不同的属性列表,有着不同的含义,最后能看到MFT表以FFFFFFFFH结束。
    MFT头的标准信息见文献,它对MFT表的结构进行了全面的分析。MFT前16个文件属于系统文件,也称为元文件,用于存放系统中的元数据,元数据文件及其作用见文献。
1.3 文件的MFT记录及其包含的属性
    一个文件通常占用一条文件记录。然而当一个文件具有多项属性值的时候,就可以占用一个以上的文件记录。这样的情况下,第一个文件记录就是基本文件记录。其中存储了该文件需要其他文件记录的位置。小文件和小的文件夹将全部存放在MFT记录中。
    文件记录包含索引信息,小的文件夹记录完全存储在MFT结构里。然而大文件与文件夹被组织成为B+树结构,一个指针指向一个外部簇,该簇用来存放那些MFT内存储不了的文件夹属性。
    在MFT记录中的每个属性都有一个属性头,这个属性头包含一些该属性的重要信息,如属性类型、大小、名字以及是否为常驻属性等。

2 具体实现方法
    具体实现分为两个模块:(1)索引磁盘中所有文件的数据段在磁盘中存放的起始簇号。(2)动态建立一个与磁盘文件存放相对的文件树,对子树进行遍历查找每个文件数据段的簇号,从而可以从扇区直接清除数据信息。最后删除所建立的子树,释放占据的内存空间。
2.1 索引磁盘中未删除文件的簇号
    在NTFS中,文件目录仅是文件名的一个索引,NTFS使用了一种特殊的方式把文件名组织起来,以便快速访问。当创建一个目录时,NTFS必须对目录中的文件名属性进行索引。
    一个目录的MFT将其目录中的文件名与子目录名进行排序,并保存在索引根属性中。所以可以通过访问根目录的索引分配找到磁盘上面的一级目录,并记录下其MFT参考号,然后在通过该参考号获取MFT文件,进而再找到其索引分配,就可以将一级目录下的子目录全部及找到,直到不再有子目录为止。可建立出整个磁盘的目录树,每项MFT文件中都记录了该文件是被删除或正在被使用的目录。通过解析以上分析的属性就能获取这些信息,该算法流程如图1所示。


    图中每一步操作都是根据MFT表的属性进行编码。
    第一步从分区信息表即中可以获得这些有用的信息。读取特定扇区的信息可以调用CreateFile与ReadFile来实现。读取某个MFT元文件的具体方法是:通过BPB参数获取$MFT的位置,然后根据源文件的MFT记录号,移动句柄,就可以顺利读取MFT元文件。由于每个MFT文件的大小是1 kB,所以句柄的偏移dwStartSector=MFT文件记录号×2+$MFT所在的扇区号。即可访问任何一个磁盘的MFT元数据文件信息。
    第二步根据根目录的MFT文件信息,解析索引A0H属性从而找出索引信息,这涉及到解码二进制文件。
    第三步根据索引中的信息找出根目录的子目录的MFT编号,再根据这个编号打开MFT文件内容,找出30H属性与MFT属性头,解析文件名,以及标记文件是否为目录,是否被删除的信息。
    第四步如果该文件是目录,则继续查找它下面的子目录,否则转第五步。
    第五步 如果该文件已删除,则返回第一步;否则,打开它对应的MFT文件,然后解析80H属性,找到文件数据段开始的簇号,并记录下来。
2.2 建立磁盘对应的文件树
    建立一个N叉树来表示每一个磁盘中的文件存放,只是它的数据信息就是上面获取的文件数据段开始的簇的编号。遍历文件树的过程,即是获取簇号以及对相应簇的信息进行清除的过程。每个磁盘中MFT表的数量巨大,所以在遍历完根目录下子目录的所有文件时,要删除该子树,便于释放内存,从而减少算法的空间开销。而且N叉树的数据结构本身对遍历效率也有很大提升,笔者采用深度优先递归搜索,并对此进行优化,取得了良好效果。
    测试平台为windows7,测试工具为winhex。清除之前可以看到新建文本文档大小是6.9 kB,所在簇的信息如图2所示。


    执行程序后结果如图3所示。可以看到文件的大小归0,并且80H的信息发生变化,原本存储的索引内容全部被清除为0,即文件的数据信息全部被清除。

3 结束语
    NTFS文件系统十分复杂,这里主要针对NTFS系统管理磁盘的MFT文件进行分析,解析它的一系列属性,得到每个文件的数据段信息的开始簇号。通过对磁盘建立文件树,标记所有未删除文件的数据段开始的簇号,从而可以直接清除剩余磁盘簇的信息,达到绕过操作系统直接对扇区进行清除的目的,避免了数据恢复的可能。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭