公开/公告号CN106055990A
专利类型发明专利
公开/公告日2016-10-26
原文格式PDF
申请/专利权人 厦门市美亚柏科信息股份有限公司;
申请/专利号CN201610373770.X
申请日2016-05-30
分类号G06F21/60;
代理机构厦门市精诚新创知识产权代理有限公司;
代理人何家富
地址 361000 福建省厦门市软件园二期观日路12号102-402单元
入库时间 2023-06-19 00:43:59
法律状态公告日
法律状态信息
法律状态
2018-11-27
授权
授权
2016-11-23
实质审查的生效 IPC(主分类):G06F21/60 申请日:20160530
实质审查的生效
2016-10-26
公开
公开
技术领域
本发明属于计算机取证安全领域,具体涉及一种NTFS文件系统的数据彻底粉碎方法和装置。
背景技术
NTFS作为windows操作系统下最主流使用范围最广的文件系统,不管是数据恢复技术还是文件粉碎技术都已经有非常多的研究,国内外有着非常多相关的资料和软件。在文件粉碎方面,现有的一个技术主要是通过定位待粉碎文件的MFT记录,在填充完数据区域删除文件后同时清空相应的MFT记录,从而实现文件的粉碎。
参考专利文献CN102693387A公开了一种NTFS 文件系统的数据擦除方法,包括以下步骤:一、在Windows下打开X盘即NTFS的卷;然后读取该卷的前512 字节,即起始扇区;二、根据所要删除文件的路径,查找该文件ID ;三、擦除文件相关信息。该方法没有完全粉碎与文件相关的信息,存在着被恢复的风险。
由于NTFS是一个日志型的文件系统且具有索引查找机制,所以采用上述专利文献公开的方法进行文件粉碎,只能够处理掉大部分的文件信息,并不能不留痕迹的彻底粉碎。
很多情况下现有技术对NTFS文件粉粹过后,通过一些日志恢复或者索引恢复技术还是可以到一些文件名称等文件属性信息,针对一些内容存在常驻属性的文件甚至可以完整的把文件恢复回来,无法满足一些高保密系统的要求。
发明内容
针对现有技术存在的不足之处,本发明提出了一种NTFS文件系统的数据彻底粉碎方法,该方法通过获取与文件关联的MFT记录信息、索引信息、日志信息,并在文件被删除之后清空这些区域,从而达到了彻底删除的目的。
本发明采用如下技术方案:
一种NTFS文件系统的数据彻底粉碎方法,包括以下步骤,
S1,解析NTFS卷头信息,定位$MFT文件的位置;
S2,解析$MFT文件获取相应的文件信息,文件信息包括日志文件信息,通过解析日志文件获取与文件相关联的日志信息;
S3,根据要粉碎的文件或文件夹路径获取相应的文件信息和相关的日志信息,删除文件或文件夹,以及清除相应的文件信息和相关的日志信息。
进一步的,步骤S1中定位$MFT文件的位置包括以下步骤,
S101,解析NTFS卷头信息,获取$MFT文件的起始位置MFTStartOffset;
S102,读取偏移MFTStartOffset位置的文件记录信息,并做解析获取$MFT文件的区域范围列表DSm={D1,D2,D3,…,Dm},其中Di包括起始偏移startoffseti和占用的字节数bytecounti,i=1,2,3,…,m。
更进一步的,步骤S2具体包括以下步骤,
S201, 通过获取到的$MFT文件的区域范围列表DSm.,解析$MFT中的文件记录信息获取相应的文件信息列表FS={F1,F2,F3,…,Fn},其中Fi包括文件记录号MFTNumi、父节点文件记录号ParentMFTNumi、文件名称FileNamei、文件记录数据区域MFT_DSi、文件数据区域Data_DSi,i=1,2,3,…,n;
S202,从FS列表中获取文件记录号MFTNumk为2的元素Fk并从Fk中获取对应的文件数据区域Data_DSk;
S203,按照NTFS日志结构解析Data_DSk对应的数据区域,获取相应的日志操作记录列表JS={J1,J2,J3,…,Jt},Ji包括日志记录操作的起始偏移targetoffseti和操作记录数据区域record_DSi,i=1,2,3,…,t。
更进一步的,还包括步骤S204,对日志操作记录列表JS中的元素,按照targetoffseti升序或降序进行排序。
更进一步的,步骤S3具体包括以下步骤,
S301,在FS中查找要粉碎的文件或文件夹的文件信息Fh,若查找待粉碎文件或文件夹的文件信息失败,则转到步骤S305,否则转到步骤S302;
S302,粉碎查找到的文件或文件夹;
S303,文件信息Fh中的MFT_DSh列表属性的第一个元素(startoffseth,bytecounth),在JS中查找targetoffsetk等于startoffseth的元素Jk,如果查找失败转到步骤S305,否则转到步骤S304;
S304,将Jk中操作记录数据区域为record_DSk对应的区域清除为0;
S305,将Fh中文件记录数据区域MFT_DSh和文件数据区域Data_DSh对应的区域清除为0。
更进一步的,步骤S302中粉碎查找到的文件或文件夹包括调用DELETEFOLDER删除文件夹或/和调用DELETEFILE删除文件。
一种NTFS文件系统的数据彻底粉碎装置,它包括,
定位单元,用于解析NTFS卷头信息,定位$MFT文件的位置;
解析单元,用于解析$MFT文件获取相应的文件信息,文件信息包括日志文件信息,通过解析日志文件获取与文件相关联的日志信息;
粉碎单元,根据要粉碎的文件或文件夹路径获取相应的文件信息和相关的日志信息,删除文件或文件夹,以及清除相应的文件信息和相关的日志信息。
进一步的,定位单元执行以下步骤,
S101,解析NTFS卷头信息,获取$MFT文件的起始位置MFTStartOffset;
S102,读取偏移MFTStartOffset位置的文件记录信息,并做解析获取$MFT文件的区域范围列表DSm={D1,D2,D3,…,Dm},其中Di包括起始偏移startoffseti和占用的字节数bytecounti,i=1,2,3,…,m。
更进一步的,解析单元执行以下步骤,
S201, 通过获取到的$MFT文件的区域范围列表DSm.,解析$MFT中的文件记录信息获取相应的文件信息列表FS={F1,F2,F3,…,Fn},其中Fi包括文件记录号MFTNumi、父节点文件记录号ParentMFTNumi、文件名称FileNamei、文件记录数据区域MFT_DSi、文件数据区域Data_DSi,i=1,2,3,…,n;
S202,从FS列表中获取文件记录号MFTNumk为2的元素Fk并从Fk中获取对应的文件数据区域Data_DSk;
S203,按照NTFS日志结构解析Data_DSk对应的数据区域,获取相应的日志操作记录列表JS={J1,J2,J3,…,Jt},Ji包括日志记录操作的起始偏移targetoffseti和操作记录数据区域record_DSi,i=1,2,3,…,t。
更进一步的,还包括步骤S204,对日志操作记录列表JS中的元素,按照targetoffseti升序或降序进行排序。
更进一步的,粉碎单元执行以下步骤,
S301,在FS中查找要粉碎的文件或文件夹的文件信息Fh,若查找待粉碎文件或文件夹的文件信息失败,则转到步骤S305,否则转到步骤S302;
S302,粉碎查找到的文件或文件夹;
S303,文件信息Fh中的MFT_DSh列表属性的第一个元素(startoffseth,bytecounth),在JS中查找targetoffsetk等于startoffseth的元素Jk,如果查找失败转到步骤S305,否则转到步骤S304;
S304,将Jk中操作记录数据区域为record_DSk对应的区域清除为0;
S305,将Fh中文件记录数据区域MFT_DSh和文件数据区域Data_DSh对应的区域清除为0。
更进一步的,步骤S302中粉碎查找到的文件或文件夹包括调用DELETEFOLDER删除文件夹或/和调用DELETEFILE删除文件。
本发明通过获取与文件关联的MFT记录信息、索引信息、日志信息,然后删除文件并在之后清空相应的关联区域,达到了彻底粉碎文件的目的。通过本发明的粉碎方法,可以彻底消除数据恢复带来的隐患,为涉密文件的安全管理提供了强有力的支持。
附图说明
图1是NTFS文件系统的数据彻底粉碎方法流程一结构图;
图2是NTFS文件系统的数据彻底粉碎方法流程二结构图;
图3是采用现有数据粉碎技术粉碎文件后用R-studio的恢复效果图;
图4是采用本发明粉碎文件后用R-studio的恢复效果图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
现结合附图和具体实施方式对本发明进一步说明。参阅图1至图2所示,本发明优选一实施例的NTFS文件系统的数据彻底粉碎方法。该粉碎方法包括以下步骤,
S1,解析NTFS卷头信息,定位$MFT文件的位置;
S2,解析$MFT文件获取相应的文件信息,文件信息包括日志文件信息,通过解析日志文件获取与文件相关联的日志信息;
S3,根据要粉碎的文件或文件夹路径获取相应的文件信息和相关的日志信息,删除文件或文件夹,以及清除相应的文件信息和相关的日志信息。
该实施例将上述步骤分为两个流程,其中步骤S1和步骤S2为流程一,步骤S3为流程二。在叙述具体的方法前,先进行一些相关定义:
1)FS={F1,>2,F3, ....,>n}表示文件信息的列表,其中,Fi包括文件记录号MFTNumi(整型)、父节点文件记录号ParentMFTNumi(整型)、文件名称FileNamei(字符串)、文件记录数据区域MFT_DSi(列表)、文件数据区域Data_DSi(列表),i=1,2,3,…,n。
2)DSm={D1,D2,D3,…,Dm}表示一个数据区域范围列表。其中,>i包括起始偏移startoffseti(整型)和占用的字节数bytecounti(整型),i=1,2,3,…,m。
3)JS={J1,J2,J3,…,Jt}表示日志操作记录列表,Ji包括日志记录操作的起始偏移targetoffseti(整型)和操作记录数据区域record_DSi(列表),i=1,2,3,…,t。
参阅图1所示,为该实施例流程一的结构图,流程一为文件/文件夹关联信息获取,粉碎文件之前,需要定位到需要粉碎的文件信息在磁盘中的位置。该流程一通过解析文件分配表获取相应的文件信息(包括日志文件信息),并通过解析日志文件获取与文件相关联的日志操作记录所在的区域,为流程二的文件粉碎做准备。具体的流程如下:
S101,解析NTFS卷头信息,获取$MFT文件的起始位置MFTStartOffset;
S102,读取偏移MFTStartOffset位置的文件记录信息,并做解析获取$MFT文件的区域范围列表DSm,转到步骤S201;
S201, 通过获取到的$MFT文件的区域范围列表DSm.,解析$MFT中的文件记录信息获取相应的文件信息列表FS;
S202,对文件信息列表FS中的元素,按照ParentMFTNumi从小到大进行排序;
S203,从FS列表中获取文件记录号MFTNumk为2的元素Fk并从Fk中获取对应的文件数据区域Data_DSk;
S204,按照NTFS日志结构解析Data_DSk对应的数据区域,获取相应的日志操作记录列表JS;
S205,对日志操作记录列表JS中的元素,按照targetoffseti从小到大进行排序(便于流程二进行查找)。
参阅图2所示,为该实施例流程二的结构图,流程二为文件/文件夹彻底粉碎,该流程二通过流程一获取到的FS和JS两个列表信息,查找待粉碎文件/文件夹的关联系信息并将这些关联系信息清除,从而达到粉碎的效果。具体的流程如下:
S301,在FS中查找要粉碎的文件/文件夹的文件信息Fh,若查找待粉碎文件/文件夹的文件信息失败,则转到步骤S306,否则转到步骤S302;
在FS中查找要粉碎的文件/文件夹的文件信息Fh的步骤如下:
a)、假设待粉碎的文件路径为“D:document est.txt”;
b)、在FS中查找ParentMFTNum等于0并且FileName为“document”的文件信息Fh,如果查找失败则转到步骤e,否则转到步骤c;
c)、在FS中查找ParentMFTNum等于MFTNumh并且FileName为“test.txt”的文件信息Fh,如果查找失败则转到步骤e,否则转到步骤d;
d)、则Fh为待粉碎文件的文件信息;
e)、查找结束。
S302,若待粉碎的是文件,粉碎该文件,转到步骤S304;
S303,若待粉碎的是文件夹,粉碎该文件夹下所有子文件和文件夹;
需要说明的是,粉碎文件和粉碎文件夹调用的命令不同,调用DELETEFOLDER删除相应的文件夹,调用DELETEFILE删除相应的文件。
S304,文件信息Fh中的MFT_DSh列表属性的第一个元素(startoffseth,bytecounth),在JS中查找targetoffsetk等于startoffseth的元素Jk,如果查找失败转到步骤S306,否则转到步骤S305;
S305,将Jk中操作记录数据区域为record_DSk对应的区域清除为0;
S306,将Fh中文件记录数据区域MFT_DSh和文件数据区域Data_DSh对应的区域清除为0。
为了证明本发明的方法比现有NTFS数据粉碎技术具有更强的可靠性,进行了如下实验。实验过程为:在windows操作系统下,建立了一个简单的NTFS分区。在分区下新建了一个test文件夹并在文件夹中新建了两个文件DOCUMENT.TXT和READMINE.TXT。
分别采用现有的数据粉碎技术以及本发明的文件粉碎方法对DOCUMENT.TXT进行粉碎操作,再采用恢复软件进行恢复,恢复效果如图3和图4所示。
本发明还提出一种NTFS文件系统的数据彻底粉碎装置,它包括,
定位单元,用于解析NTFS卷头信息,定位$MFT文件的位置;
解析单元,用于解析$MFT文件获取相应的文件信息,文件信息包括日志文件信息,通过解析日志文件获取与文件相关联的日志信息;
粉碎单元,根据要粉碎的文件或文件夹路径获取相应的文件信息和相关的日志信息,删除文件或文件夹,以及清除相应的文件信息和相关的日志信息。
需要说明的是,定位单元执行以下步骤,
S101,解析NTFS卷头信息,获取$MFT文件的起始位置MFTStartOffset;
S102,读取偏移MFTStartOffset位置的文件记录信息,并做解析获取$MFT文件的区域范围列表DSm={D1,D2,D3,…,Dm},其中Di包括起始偏移startoffseti和占用的字节数bytecounti,i=1,2,3,…,m。
此外,解析单元执行以下步骤,
S201, 通过获取到的$MFT文件的区域范围列表DSm.,解析$MFT中的文件记录信息获取相应的文件信息列表FS;
S202,对文件信息列表FS中的元素,按照ParentMFTNumi从小到大进行排序;
S203,从FS列表中获取文件记录号MFTNumk为2的元素Fk并从Fk中获取对应的文件数据区域Data_DSk;
S204,按照NTFS日志结构解析Data_DSk对应的数据区域,获取相应的日志操作记录列表JS;
S205,对日志操作记录列表JS中的元素,按照targetoffseti从小到大进行排序。
更进一步的,粉碎单元执行以下步骤,
S301,在FS中查找要粉碎的文件/文件夹的文件信息Fh,若查找待粉碎文件/文件夹的文件信息失败,则转到步骤S306,否则转到步骤S302;
在FS中查找要粉碎的文件/文件夹的文件信息Fh的步骤如下:
a)、假设待粉碎的文件路径为“D:document est.txt”;
b)、在FS中查找ParentMFTNum等于0并且FileName为“document”的文件信息Fh,如果查找失败则转到步骤e,否则转到步骤c;
c)、在FS中查找ParentMFTNum等于MFTNumh并且FileName为“test.txt”的文件信息Fh,如果查找失败则转到步骤e,否则转到步骤d;
d)、则Fh为待粉碎文件的文件信息;
e)、查找结束。
S302,若待粉碎的是文件,粉碎该文件,转到步骤S304;
S303,若待粉碎的是文件夹,粉碎该文件夹下所有子文件和文件夹;
需要说明的是,粉碎文件和粉碎文件夹调用的命令不同,调用DELETEFOLDER删除相应的文件夹,调用DELETEFILE删除相应的文件。
S304,文件信息Fh中的MFT_DSh列表属性的第一个元素(startoffseth,bytecounth),在JS中查找targetoffsetk等于startoffseth的元素Jk,如果查找失败转到步骤S306,否则转到步骤S305;
S305,将Jk中操作记录数据区域为record_DSk对应的区域清除为0;
S306,将Fh中文件记录数据区域MFT_DSh和文件数据区域Data_DSh对应的区域清除为0。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
机译: 一种彻底消灭液体(9)并彻底混合的方法以及执行该方法的混合头和设备
机译: DNA一种针对大规模DNA序列数据库彻底设计有效和目标特异性引物的方法
机译: 一种具有数据符号错误校正的信息传输方法,一种用于数据符号的错误校正解码方法,一种用于该方法的信息传输装置,一种用于该方法的信息解码装置以及一种用于该方法的装置设备