2
回答
手把手教你用WinHex在NTFS分区中恢复被删除的文件(上)
华为云实践训练营,热门技术免费实践!>>>   

      原创文章,转载请注明出处,谢谢!        

       作者:清林,博客名:飞空静渡

 

原文博客地址:http://blog.csdn.net/fjb2080

 

在这篇教程中,我想以一个最简单的例子来说明如何使用winhex来恢复NTFS分区中被

 

删除的文件的,为了使这上篇的文章的知识尽量的简单,我这里所恢复的条件有这么

 

几个:

 

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

 

2、我使用的文件大小小于1K,所以这个文件在NTFS分区的文件记录中的数据属性中是

 

个常驻属性。所以这里不涉及到运行计算的问题,应该 

 

     最简单的文件恢复了,以这个恢复例子的过程,可以建立一个数据恢复的大体原

 

理了。

 

希望大家喜欢 :)

 

下面开始。

 

第一:建立一个文本文件

 

我格式化了我的分区G,分区类型是NTFS,使用快速格式化,正常格式化只在检查磁盘

 

坏道时才有用。。。

 

之后,我在这个分区建了一个文本文件,如下图所示:

[img]http://hi.csdn.net/attachment/201005/22/0_12745372697inO.gif[/img]

 

 

这个文件很简单,内容也很少,我保存这个文件后,然后然后我们来看看这个文件大

 

小信息,如下图所示:

 

[img]http://hi.csdn.net/attachment/201005/22/0_1274537332BtLC.gif[/img]

 

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

 

比一下了咯 嘻嘻 。。。

 

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

 

第二:用winhex打开分区

 

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

 

[img]http://hi.csdn.net/attachment/201005/22/0_1274537342ovvv.gif[/img]

 

我们可以找到$MFT这个文件,然后右击它,然后点击打开,之后就会打开这个文件MFT

 

。如下面两个图所示:

 

[img]http://hi.csdn.net/attachment/201005/22/0_1274537355CC36.gif[/img]

 

[img]http://hi.csdn.net/attachment/201005/22/0_1274537377et13.gif[/img]

 

这里为什么要这么做呢?

 

因为,我们只需要在MFT找到我们丢失的文件,如果我们在整个分区里搜索并且这个分

 

区很大的话,会要很多时间的,而MFT文件就小得多了,最大也就1G左右,这是我人为

 

弄出来的,一般系统是很难见到这么大的MFT文件的,除非你是做服务器,有很多磁盘

 

碎片和小文件。。。

 

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

[img]http://hi.csdn.net/attachment/201005/22/0_1274537391zrXx.gif[/img]

 

 

我们输入我们想要恢复的文件名HelloWorld,而且注意,要选择Unicode。因为MFT的

 

文件名是Unicode形式的,之后就是查找了!

 

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

[img]http://hi.csdn.net/attachment/201005/22/0_1274537423ejPH.gif[/img]

 

 

为了能使用WinHex的颜色,我们转到分区去看这个文件记录!首先,我们看到这个文

 

件记录在MFT的偏移地址是7450H,然后我们在winhex中转到我们分区的视图,然后点

 

击MFT文件,这样就偏移到了我们MFT文件的位置,然后选择菜单中的:位置-->转到偏

 

移位置。

 

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

 

[img]http://hi.csdn.net/attachment/201005/22/0_12745374410mQ0.gif[/img]

 

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

 

[img]http://hi.csdn.net/attachment/201005/22/0_1274537467FrDa.gif[/img]

 

我们看图的左边,文件记录号是29,我们看上图的蓝色框,那个是文件记录的标识:

 

FILE。那么我们怎么知道这是个被删除的文件呢,一种办法是直接在文件记录头上看

 

,如上图的红色框,那2字节为文件记录偏移16H处,0表示文件已被删除,1表示这个

 

文件在使用,2表示是个目录等等。

 

好,现在我们去查找文件记录中的数据属性,这个属性是80H开头,好在winhex有这个

 

颜色分类,很容易找到,如上图的橙色框所示。

 

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

[img]http://hi.csdn.net/attachment/201005/22/0_1274537489frX2.gif[/img]

 

 

我们一个一个来分析框中的内容表示的意思,第一个红色的框表示这是个数据属性,

 

值是80H。橙色框:0表示这是个常驻属性,即这个文件的内容就在这个文件记录中,

 

如果是1就表示这是个非常驻属性,那么我们要获取数据就得从运行中一个一个的计算

 

获得,这个在下期讲解!

 

蓝色框的4个字节表示这个文件的数据大小:E0H,折合十进制就是224,即这个文件大

 

小是224个自己,记得我在前面讲过吗,上面还有文件大小的截图呢!绿色框的4个字

 

节表示这个文件的数据的偏移位置18H,这个偏移从这个数据属性的开始位置计算,就

 

是上图中的80H位置,这个位置这样计算:75b0H + 18H = 75c8H。

 

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

 

 

最后,我们用鼠标来选择这些数据(选择的数据的颜色会变的),然后点击右键,选

 

择:编辑-->复制选项块-->植入新文件,如下图所示:

[img]http://hi.csdn.net/attachment/201005/22/0_1274537535oEO4.gif[/img]

 

 

在这里,我们最好就选择另外一个分区,不要在要恢复的分区中保存文件,已保证我

 

们的数据不会被覆盖掉!

 

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

 

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

[img]http://hi.csdn.net/attachment/201005/22/0_1274537551u6Ww.gif[/img]

 

 

文件被恢复了!

 

这节讲到这里,以后讲解更加复杂的恢复!

 

 

 

本文来自CSDN博客,转载请标明出处:

 

http://blog.csdn.net/fjb2080/archive/2010/05/22/5617111.aspx

<无标签>
举报
hello_world
发帖于8年前 2回/1K+阅
顶部