收稿日期:2017-07-05      修回日期:2017-11-16      网络出版时间:2018-03-07
基金项目:云南省科技创新强省计划项目(2014AB 021);云南省高校数字媒体重点实验室开放基金项目(2015KFKT 002)作者简介:陈培德(1966-),男,工程师,研究方向为文件系统与数据恢复技术㊂网络出版地址:http ://knski /kcms /detail /61.1450.TP.20180307.1417.016.html
NTFS 被快速格式化成NTFS 后数据恢复的研究
陈培德1,2,王丽清1,2,吴建平1,2
(1.云南大学信息学院,云南昆明650223;
2.云南省高校数字媒体技术重点实验室,云南昆明650223)
摘 要:快速格式化是高级格式化中的一种特殊形式㊂逻辑盘被快速格式化后数据能否恢复取决于快速格式化操作对原来文件系统中所存储数据的破坏程度㊂以Windows 7为平台,WinHex 15.08为分析工具,对NTFS 文件系统结构进行分析,将逻辑盘由NTFS 文件系统快速格式化成NTFS 文件系统,通过快速格式化后与快速格式化前对元文件$MFT 变化的对比,提出了恢复快速格式化前NTFS 文件系统数据的基本思路㊁方法与步骤㊂实验结果表明,将逻辑盘由NTFS 文件系统快速格式化成NTFS 文件系统后,只要恢复格式化前的元文件$MFT 的80H 属性值,通过CHKDSK 命令,便可以恢复被快速格式化破坏的NTFS 文件系统结构,除部分数据被覆盖无法恢复外,其他未覆盖的数据均可全部恢复㊂关键词:格式化;FAT32文
件系统;NTFS 文件系统;数据恢复中图分类号:TP311.12      文献标识码:A 
   文章编号:1673-629X (2018)08-0191-05
doi:10.3969/j.issn.1673-629X.2018.08.040
Research on Data Recovery of Quick NTFS Formatted
CHEN Pei -de 1,2,WANG Li -qing 1,2,WU Jian -ping 1,2
(1.School of Information Science and Engineering ,Yunnan University ,Kunming 650223,China ;
2.Key Laboratory of Digital Media Technology of Universities and Colleges in Yunnan Province ,
Kunming 650223,China )
Abstract :The quick disk formatting is advanced and special.After the logic disk has been quickly formatted ,the data recovery depends on the extent to the data stored in the original file system.Based on Windows 7and WinHex 15.08,we analyze the systematic structures of NTFS and the logical disk quick formatted into NTFS.Contrasting the change of the $MFT to the quick formatting before and after ,we present the basic idea ,method and steps to restore the data of NTFS
file system.Experiment shows that as long as the 80H value of the $MFT is restored before quick formatting ,by running CHKDSK command ,most of the data on the logical disk will recover after the log⁃ical disk is quickly formatted into NTFS file system.But the partial data be overwritten cannot recover.Key words :format ;FAT 32file system ;NTFS file system ;data recovery
0 引 言
格式化是指对磁盘或磁盘中的分区进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除㊂格式化通常分为低级格式化和高级格式化[1]㊂如果没有特别指明,对硬盘的格式化通常是指高级格式化㊂低级格式化
外存储器在生产出来后,一般要经过低级格式化㊁
分区和高级格式操作后,才能用来存储数据[1]㊂低级格式化针对的是整个硬盘,一般由外存储器生产厂商来完成;而对外存储器的分区和高级格式化一般由销售商或者用户来完成,高级格式化针对的是某个分区㊂
对逻辑盘进行高级格式化后数据能否恢复,取决
于格式化操作对原来文件系统中数据的破坏程度[2]㊂而快速格式化则是高级格式化的一种特殊形式㊂文中对NTFS 文件系统的逻辑盘被快速格式化成NTFS 文件系统后的数据恢复进行了大量实验㊂结果表明,在Windows 7平台下,NTFS 的逻辑盘被快速格式化成NTFS 后,除被元文件$MFT 覆盖后的记录无法恢复外,其他未被覆盖的记录均可全部恢复㊂
1 NTFS 文件系统
从整体结构上讲,NTFS 文件系统由元文件㊁用户
第28卷 第8期2018年8月          计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT
          Vol.28 No.8
Aug. 2018
文件以及数据等组成㊂NTFS文件系统在创建时,会将一些重要的系统信息以文件的形式分散地存储在NTFS卷中[3],存储这些重要系统信息所对应的文件就是元文件[4],它是NTFS文件系统最重要的组成部分㊂除根目录外,元文件的名称均以 $”符号开头[5];元文件是隐藏的系统文件[6],用户不能直接对元文件进行访问,在资源管理器中也查看不到元文件㊂
2 元文件$MFT
在NTFS文件系统中,最重要的元文件就是$MFT[7-8],它是NTFS文件系统中所有文件和文件夹(目录)的集合[9]㊂它记录着NTFS文件系统中所有文件和文件夹的基本情况[10],包括卷的信息㊁引导记录㊁元文件$MFT本身等的重要信息,以及文件名(或文件夹名)㊁文件安全属性㊁文件大小㊁数据运行列表等等[11]㊂元文件$MFT由许许多多记录组成[12],每条记录的大小固定为1024字节[13],一般情况下,每个文件或文件夹在元文件$MFT中只占用一条记录[14]㊂每条记录以 FILE”
作为开始标记,一般以第1个 FF FF FF FF00000000”或者 FF FF FF FF82794711”(存储形式)为结束标志[15]㊂元文件$MFT的结构大致如图1所示[15]
图1 元文件$MFT结构示意图(注:假设元文件$MFT的0号记录B0H属性值存放在元文件$MFT记录之前)
3 实验环境及制作实验素材
3.1 实验环境
(1)操作系统:Windows7;
(2)逻辑盘容量:5.99GB;
(3)分区形式:MBR;
(4)数据恢复工具:WinHex15.08㊂
3.2 制作实验素材
制作实验素材步骤如下:
(1)在Windows7操作系统下,使用计算机管理功能中的磁盘管理功能建立一个虚拟磁盘文件,文件名为abcd.vhd,文件大小为6.0GB,将该虚拟磁盘文件abcd.vhd附加成虚拟盘;
(2)将虚拟盘初始化,分区形式选择MBR,分区大小为5.99GB,假设对应的盘符为G盘; (3)将G盘格式化,文件系统选择NTFS,每个簇的扇区数选择 默认配置大小”;
(4)格式化完成后,复制125000多个文件(夹)到G盘中,复制完成后;G盘的基本情况如下:
文件系统:NTFS;
总容量:6439301120字节(5.99GB);
已用空间:1552965632字节(1.44GB);
可用空间:4886335488字节(4.54GB);
每个簇的扇区数:8;
元文件$MFT记录范围:0~125183㊂(5)快速格式化前,NTFS主要元文件在G盘分布情况如表1所示㊂
表1 NTFS主要元文件在G盘分布情况
(快速格式化前)
元文件扇区号对应簇号
$Boot0~150~1
$MFTMirr16~232
$UpCase24~2793~34
$LogFile1962736~2029743245342~253717
$Attrdef2030264~2030271253783
$Bitmap2096752~2097135262094~262141
$MFT2097152~2347519262144~293439  (6)将G盘进行快速格式化,文件系统选择NT⁃FS,每个簇的扇区数选择 默认配置大小”;快速格式化后,G盘的基本情况如下:
文件系统:NTFS;
总容量:6439301120字节(5.99GB);
已用空间:61476864字节(58.60MB);
可用空间:6377824256字节(5.93GB);
每个簇的扇区数:8;
元文件$MFT记录范围:0~255㊂
(7)快速格式化后,NTFS主要元文件在G盘分布情况如表2所示㊂
表2 NTFS主要元文件在G盘分布情况
(快速格式化后)
元文件扇区号对应簇号
$Boot0~150~1
$MFTMirr16~232
$UpCase24~2793~34
$LogFile1962736~2029743245342~253717
$Attrdef2030264~2030271253783
$Bitmap2096752~2097135262094~262141
$MFT2097152~2097663262144~262207
㊃291㊃                     计算机技术与发展                  第28卷
  至此,在Windows7平台下,G盘由NTFS文件系统被快速格式化NTFS文件系统实验素材已制作完成㊂
4 快速格式化对G盘NTFS元文件的影响从快速格式化前㊁后,G盘NTFS主要元文件分布对比情况来看,G盘NTFS主要元文件变化情况如下: (1)元文件$MFT所占簇数由31296个缩小为64个,元文件$MFT的记录号范围由0~125183缩小为0~255,而快速格式化前元文件$MFT的256~ 125183号记录均完好保存;由于快速格式化后元文件$MFT的记录号范围为
0~255,所以,快速格式化前元文件$MFT的256~125183号记录已不再起作用㊂(2)快速格式化前,元文件$MFT的0号记录B0H属性值记录了125184条记录(记录号范围为0~ 125183)的使用情况,而快速格式化后,只记录了256条记录的使用情况,其中35~255号记录为空记录㊂(3)元文件$MFTMirr所占簇数和位置未发生变化,但是,元文件$MFTMirr的0号记录已被快速格式化后元文件$MFTMirr的0号记录所取代㊂(4)元文件$Bitmap所占簇数和位置未发生变化,但是,元文件$Bitmap的内容已被快速格式化后元文件$Bitmap的内容所取代,即快速格式化前用户文件和文件夹所占据的位图已被全部释放㊂
而G盘MBR分区表㊁元文件$Boot㊁$LogFile㊁$Attrdef㊁$UpCase和元文件$MFT的开始簇号等均未发生任何变化㊂
5 恢复数据的基本思路
从快速格式化操作对NTFS元文件$MFT的影响可知,恢复数据的关键在于重建快速格式化前G盘的NTFS元文件$MFT,即将快速格式化后元文件$MFT的记录号范围由0~255恢复为快速格式化前的0~125183㊂
要实现这一目标,只需要修改元文件$MFT的0号记录80H属性中的如下值:
(1)元文件$MFT所占簇数;
(2)元文件$MFT结束VCN;
(3)系统分配给元文件$MFT的空间;
(4)元文件$MFT实际占用空间;
(5)元文件$MFT初始化空间㊂
将上述属性值修改完成并存盘㊂
回到DOS提示符下,使用CHKDSK命令[13]以元文件$MFT中的记录作为依据对G盘受损的NTFS 文件系统进行自动修复;修复完成后,便恢复出快速格式化前G盘中的大部分数据㊂恢复快速格式前的数据流程如图2所示
图2 恢复快速格式化前数据流程
6 恢复数据的基本方法
计算元文件$MFT所占簇数㊁元文件$MFT结束VCN和系统分配给元文件$MFT的空间等的具体方法如下:
(1)元文件$MFT所占簇数=(元文件$MFT结束扇区号-元文件$MFT开始扇区号+1)/每个簇的扇区数;
(2)元文件$MFT结束VCN=元文件$MFT所占簇数-1;
(3)系统分配给元文件$MFT的空间=元文件$MFT所占簇数×每个簇的扇区数×512字节; (4)元文件$MFT实际占用空间=元文件$MFT 所占簇数×每个簇的扇区数×512字节;
(5)元文件$MFT初始化空间=元文件$MFT记
㊃391㊃
 第8期          陈培德等:NTFS被快速格式化成NTFS后数据恢复的研究
录所占簇数×每个簇的扇区数×512字节㊂
每个簇的扇区数从NTFS_DBR中获得㊂
将以上5个值转换成在元文件$MFT的0号记录80H属性中的存储形式,并替换快速格式化后元文件$MFT的0号记录80H属性中的这5个值,从而达到恢复快速格式化前元文件$MFT的目的㊂
7 恢复数据基本步骤
7.1 计算元文件$MFT的0号记录80H属性值
计算快速格式化前,元文件$MFT的0号记录80H属性值步骤如下:
1.计算快速格式化前,元文件$MFT所占簇数㊂
操作步骤如下:
(1)启动WinHex软件㊂
(2)工具→逻辑硬盘→选择G盘,将光标移动到24号扇区(注:16~23号扇区被元文件$MFTMirr所占据,共计8个扇区)㊂
(3)搜索→查文本→在查文本窗口的文本框中输入元文件$MFT记录的特征值 FILE”,扇区偏移地址为 0”,查方向选择 向下”;在2097152号扇区到,经确认为元文件$MFT的0号记录所在扇区㊂
(4)将光标移动到逻辑盘的最后一个扇区;搜索→查文本→在查文本窗口的文本框中输入元文件$MFT记录的特征值 FILE”,扇区偏移地址为 0”,查方向选择 向上”;在2347518号扇区到,经确认为元文件$MFT最后一条记录的开始扇区号;所以,元文件$MFT结束扇区号为2347519㊂(5)从NTFS_DBR中获得每个簇的扇区数为8㊂
元文件$MFT所占簇数=(元文件$MFT结束扇区号-元文件$MFT开始扇区号+1)/每个簇的扇区数=(2347519–2097152+1)/8=31296(即0X7A40)
2.计算元文件$MFT结束VCN㊂
元文件$MFT结束VCN=元文件$MFT所占簇数-1=31296-1=31295(即0X7A3F)
3.计算系统分配给元文件$MFT的空间㊂
系统分配给元文件$MFT记录空间=元文件$MFT所占簇数×每个簇的扇区数×512字节=31296×8×512字节=128188416(即0X7A40000)字节4.计算元文件$MFT实际占用空间㊂
元文件$MFT实际占用空间=元文件$MFT所占簇数×每个簇的扇区数×512字节=31296×8×512字节=128188416(即0X7A40000)字节
5.计算元文件$MFT初始化空间㊂
元文件$MFT初始化空间=元文件$MFT所占簇数×每个簇的扇区数×512字节=31296×8×512字节=128188416(即0X7A40000)字节
将元文件$MFT所占簇数㊁元文件$MFT结束VCN㊁系统分配给元文件$MFT的空间㊁元文件$MFT实际占用空间和元文件$MFT初始化空间转换为在元文件$MFT的0号记录80H属性中的存储形式,如下所示:
(1)元文件$MFT所占簇数:407A;
(2)元文件$MFT结束VCN:3F7A00000000 0000;
(3)系统分配给元文件$MFT空间:0000A407 00000000;
(4)元文件$MFT实际占用空间:0000A40700 000000;
(5)元文件$MFT初始化空间:0000A4070000 0000㊂
7.2 恢复元文件$MFT的0号记录80H属性值
恢复快速格式化前元文件$MFT的0号记录80H属性中元文件$MFT所占簇数㊁元文件$MFT结束VCN等5个值,操作步骤如下:
1.启动WinHex软件㊂
2.工具→逻辑硬盘→选择G盘,将光标移动到2097152号扇区,即快速格式化后,元文件$MFT的0号记录80H属性处,如图3所示
图3 快速格式化后,元文件$MFT的
0号记录80H属性
3.修改元文件的0号记录80H属性中的以下5个值㊂
(1)将元文件$MFT的0号记录80H属性中的数据运行列表由 314000000400FF FF”修改为 3240 7A00000400FF”,即元文件$MFT所占簇数由0X40修改为0X7A40,也就是将元文件$MFT的记录号范围由0~255恢复为快速格式化前元文件$MFT 的记录号范围0~125183;
(2)将元文件$MFT结束VCN由0X3F修改为 0X7A3F”,即将快速格式化后元文件$MFT的虚拟簇号范围由0~63修改为快速格式化前的0~31295;
(3)将系统分配给元文件$MFT的空间由 0X040000”修改为 0X07A40000”;即将快速格式化后系统分配给元文件$MFT的空间由262144字节修改为快速格式化前的128188416字节; (4)将元文件$MFT实际占用空间由 0X040000”修改为 0X07A40000”;即将快速格式化
㊃491㊃                     计算机技术与发展                  第28卷
后元文件$MFT 实际占用空间由262144字节修改为快速格式化前的128188416字节;
(5)将元文件$MFT 初始化空间由 0X 040000”
修改为 0X 07A 40000”;即将快速格式化后元文件$MFT 初始化空间由262144字节修改为快速格式化前的128188416字节㊂
4.修改完成后,元文件$MFT 的0号记录80H 属
性的值如图4所示,即快速格式化前,元文件$MFT 的0号记录80H 属性值,然后存盘并退出WinHex
图4 快速格式化前,元文件$MFT 的0号记录80H 属性
至此,元文件$MFT 的0号记录已恢复到快速格式化前的状态㊂
5.在DOS 提示符下,使用 CHKDSK G :/F /I ”[14]命令完成如下NTFS 文件系统的自动修改:
(1)通过元文件$MFT 的0号记录自动修复受损的元文件$MFT 和元文件$MFT 的B 0H 属性值;(2)通过元文件$MFT 自动修复受损的元文件$Bitmap ;
(3)通过元文件$MFT 自动修复受损的根目录㊁其他索引目录以及其他元文件等㊂
经过半个多小时,G 盘的元文件$MFT ㊁元文件$Bitmap ㊁根目录㊁索引目录以及其他元文件等已修复完成㊂G 盘的基本情况如下所示:
(1)文件系统:NTFS ;
(2)总容量:6439301120字节(5.99GB );(3)已用空间:1561186304字节(1.44GB );(4)可用空间:4878114816字节(4.54GB );(5)每个簇的扇区数:8;
(6)元文件$MFT 记录范围:0~125183㊂到资源管理器中,可以查看到G 盘中的文件和文
件夹㊂
8摇结束语
在Windows 7平台下,将NTFS 文件系统快速格式化成NTFS 文件系统后,在每个簇的扇区数没有变化的情况下,只要正确修复元文件$MFT 的0号记录
80H 属性相应值,并在DOS 下使用CHKDSK [16]
命令
对受损的元文件以及索引目录进行自动修复,便可恢
复快速格式化前NTFS 文件系统中的大部分数据㊂但是由于元文件$MFT 的38~255之间的记录已被填充为有效记录,这218条记录对应的文件内容可以通过WinHex 软件的 按类型恢复文件”进行恢复㊂
综上所述,在Windows 7平台下,NTFS 文件系统被快速格式化成NTFS 文件系统后,数据恢复的核心在于恢复快速格式化前元文件$MFT 的0号记录
80H 属性中的相应值㊂通过实践证明,该方法方便快捷㊁简单实用,并且用户在资源管理器中可以看到所恢复出来的大部分数据㊂
参考文献:
[1] 陈培德,吴建平,王丽清,等.FAT 32被格式化成NTFS 后
数据恢复的研究[J ].实验科学与技术,2018,16(1):9-12.
[2] 陈培德,吴建平,王丽清.NTFS 文件系统实例详解[M ].
北京:国防工业出版社,2015.
[3] 高志鹏,尤俊生.NTFS 空间再分配清零策略研究[J ].计
算机科学,2015,42(10A ):92-94.[4] 刘 伟.数据恢复技术深度揭秘[M ].北京:电子工业出版社,2010.
[5] 马 林.数据重现:文件系统原理精解与数据恢复最佳实
践[M ].北京:清华大学出版社,2009.
[6] 赵双峰,费金龙,刘 楠,等.Windows NTFS 下数据恢复
的研究与实现[J ].计算机工程与设计,2008,29(2):306-308.
[7] 李步升.基于NTFS 的计算机反取证研究与实现[J ].计算
机工程,2010,36(19):274-276.[8] 戴士剑,涂彦晖.数据恢复技术[M ].北京:电子工业出版社,2005.
[9] 白桂梅,张新颜,朱长青,等.NTFS 文件隐藏方式研究[J ].计算机应用与软件,2014,31(8):298-299.
[10]IVENS K ,GARDINILER K.Windows 200:the complete ref⁃
erence [M ].Beijing :China Machine Press ,2000.[11]CARRIER B.File system forensic analysis [M ].[s.l.]:Ad⁃dison Wesley Professional ,2005.
[12]RUSSINOVICH M E ,SOLOMON D A ,LONESCU A.Win⁃
dows internals [M ].Beijing :Post &Telecom Press ,2009.[13]SOLOMAN D A.Inside windows NT [M ].2nd ed.Washing⁃ton ,USA :Microsoft Corporation ,1998.
[14]梁金千,张 跃.NTFS 文件系统的主要数据结构[J ].计
算机工程与应用,2003,39(8):116-118.
[15]陈培德,吴建平,王丽清.重建NTFS 的DBR 及分区表的
研究与实现[J ].实验科学与技术,2016,14(6):56-59.[16]李佟鸿,王 宁,.计算机系统信息隐藏反取证技术
[J ].计算机系统应用,2013,22(5):1-4.
591㊃ 第8期          陈培德等:NTFS 被快速格式化成NTFS 后数据恢复的研究