Board logo

标题: Windows的磁盘数据清除技术 [打印本页]

作者: samwalton    时间: 2013-8-31 14:41     标题: Windows的磁盘数据清除技术

安全的磁盘清理软件可以很好地为数字化信息系统服务。目前大部分磁盘清理软件未能彻底清除在磁盘中的数据,对于磁盘上已经删除的文件信息在未重新写入新的文件时,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必须对目录中的文件名属性进行索引。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0