Skip to content

牛人教你用WinHex在NTFS分区中恢复被删除的文件

2016-07-03 12:10:14   来源:华军科技数据恢复

如何使用winhex来恢复NTFS分区中被删除的文件?在这篇教程中,我想以一个最简单的例子来说明。恢复的前提条件有这么几个:

       1、我格式化了一个分区,所以这个分区中是没有任何文件的。

       2、我使用的文件大小小于1K,所以这个文件在NTFS分区的文件记录中的数据属性中是个常驻属性。所以这里不涉及到运行计算的问题,最简单的文件恢复了,以这个恢复例子的过程,可以建立一个数据恢复的大体原理了。

 

具体操作步骤如下:

 

第一:建立一个文本文件

       我格式化了我的分区G,分区类型是NTFS,使用快速格式化,正常格式化只在检查磁盘坏道时才有用。。。之后,我在这个分区建了一个文本文件,如下图所示:

 

用WinHex在NTFS分区中恢复被删除的文件
 

       这个文件很简单,内容也很少,我保存这个文件后,然后然后我们来看看这个文件大小信息,如下图所示:

用WinHex在NTFS分区中恢复被删除的文件
 

 

       我们看到,这个文件大小是224个字节,记住了哦,等下恢复这个文件的时候就可以对比一下了咯 嘻嘻 。。。

       之后我就删除了这个文件,现在,我们看看怎么恢复这个文件!

 

第二:用winhex打开分区

       我们运行winhex,然后点击菜单:工具-->打开磁盘,来打开G盘。如下图所示:

用WinHex在NTFS分区中恢复被删除的文件
 

       我们可以找到$MFT这个文件,然后右击它,然后点击打开,之后就会打开这个文件MFT。如下面两个图所示:

 

用WinHex在NTFS分区中恢复被删除的文件
 

用WinHex在NTFS分区中恢复被删除的文件

 

       这里为什么要这么做呢?

       因为,我们只需要在MFT找到我们丢失的文件,如果我们在整个分区里搜索并且这个分区很大的话,会要很多时间的,而MFT文件就小得多了,最大也就1G左右,这是我人为弄出来的,一般系统是很难见到这么大的MFT文件的,除非你是做服务器,有很多磁盘碎片和小文件。。。

 

       之后,我们可以点击菜单中的:搜索-->查找文本。如下图所示:

用WinHex在NTFS分区中恢复被删除的文件

 

       我们输入我们想要恢复的文件名HelloWorld,而且注意,要选择Unicode。因为MFT的文件名是Unicode形式的,之后就是查找了!

 

一会我们就找到了这个文件,如下图所示:

用WinHex在NTFS分区中恢复被删除的文件

 

       为了能使用WinHex的颜色,我们转到分区去看这个文件记录!首先,我们看到这个文件记录在MFT的偏移地址是7450H,然后我们在winhex中转到我们分区的视图,然后点击MFT文件,这样就偏移到了我们MFT文件的位置,然后选择菜单中的:位置-->转到偏移位置。

       然后输出7450,位置是从当前位置开始!如下图所示:

用WinHex在NTFS分区中恢复被删除的文件

 

       之后,我们就找到了这个文件记录,如下图所示:

用WinHex在NTFS分区中恢复被删除的文件

 

       我们看图的左边,文件记录号是29,我们看上图的蓝色框,那个是文件记录的标识:FILE。那么我们怎么知道这是个被删除的文件呢,一种办法是直接在文件记录头上看,如上图的红色框,那2字节为文件记录偏移16H处,0表示文件已被删除,1表示这个文件在使用,2表示是个目录等等。

       好,现在我们去查找文件记录中的数据属性,这个属性是80H开头,好在winhex有这个颜色分类,很容易找到,如上图的橙色框所示。

 

       下面我们集中抽取这个数据属性来分析,如下图所示:

用WinHex在NTFS分区中恢复被删除的文件

 

       我们一个一个来分析框中的内容表示的意思,第一个红色的框表示这是个数据属性,值是80H。橙色框:0表示这是个常驻属性,即这个文件的内容就在这个文件记录中,如果是1就表示这是个非常驻属性,那么我们要获取数据就得从运行中一个一个的计算获得,这个在下期讲解!

       算:75b0H + 18H = 75c8H。蓝色框的4个字节表示这个文件的数据大小:E0H,折合十进制就是224,即这个文件大小是224个自己,记得我在前面讲过吗,上面还有文件大小的截图呢!绿色框的4个字节表示这个文件的数据的偏移位置18H,这个偏移从这个数据属性的开始位置计算,就是上图中的80H位置,这个位置这样计算:75b0H + 18H = 75c8H。

       然后,我们就可以由这个数据的偏移位置和大小得到这个文件的数据,如紫色框表示。

 

       最后,我们用鼠标来选择这些数据(选择的数据的颜色会变的),然后点击右键,选择:编辑-->复制选项块-->植入新文件,如下图所示:

用WinHex在NTFS分区中恢复被删除的文件
 

       在这里,我们最好就选择另外一个分区,不要在要恢复的分区中保存文件,已保证我们的数据不会被覆盖掉!

       这里,我把文件保存在D盘中,也命名为HelloWorld.txt。

 

       最后,我们来看下我们恢复的文件:

用WinHex在NTFS分区中恢复被删除的文件

文件被恢复了

Back To Top
Search