牛人教你用WinHex在NTFS分区中恢复被删除的文件
2016-07-03 12:10:14 来源:华军科技数据恢复
1、我格式化了一个分区,所以这个分区中是没有任何文件的。
2、我使用的文件大小小于1K,所以这个文件在NTFS分区的文件记录中的数据属性中是个常驻属性。所以这里不涉及到运行计算的问题,最简单的文件恢复了,以这个恢复例子的过程,可以建立一个数据恢复的大体原理了。
具体操作步骤如下:
第一:建立一个文本文件
我格式化了我的分区G,分区类型是NTFS,使用快速格式化,正常格式化只在检查磁盘坏道时才有用。。。之后,我在这个分区建了一个文本文件,如下图所示:
这个文件很简单,内容也很少,我保存这个文件后,然后然后我们来看看这个文件大小信息,如下图所示:
我们看到,这个文件大小是224个字节,记住了哦,等下恢复这个文件的时候就可以对比一下了咯 嘻嘻 。。。
之后我就删除了这个文件,现在,我们看看怎么恢复这个文件!
第二:用winhex打开分区
我们运行winhex,然后点击菜单:工具-->打开磁盘,来打开G盘。如下图所示:
我们可以找到$MFT这个文件,然后右击它,然后点击打开,之后就会打开这个文件MFT。如下面两个图所示:
这里为什么要这么做呢?
因为,我们只需要在MFT找到我们丢失的文件,如果我们在整个分区里搜索并且这个分区很大的话,会要很多时间的,而MFT文件就小得多了,最大也就1G左右,这是我人为弄出来的,一般系统是很难见到这么大的MFT文件的,除非你是做服务器,有很多磁盘碎片和小文件。。。
之后,我们可以点击菜单中的:搜索-->查找文本。如下图所示:
我们输入我们想要恢复的文件名HelloWorld,而且注意,要选择Unicode。因为MFT的文件名是Unicode形式的,之后就是查找了!
一会我们就找到了这个文件,如下图所示:
为了能使用WinHex的颜色,我们转到分区去看这个文件记录!首先,我们看到这个文件记录在MFT的偏移地址是7450H,然后我们在winhex中转到我们分区的视图,然后点击MFT文件,这样就偏移到了我们MFT文件的位置,然后选择菜单中的:位置-->转到偏移位置。
然后输出7450,位置是从当前位置开始!如下图所示:
之后,我们就找到了这个文件记录,如下图所示:
我们看图的左边,文件记录号是29,我们看上图的蓝色框,那个是文件记录的标识:FILE。那么我们怎么知道这是个被删除的文件呢,一种办法是直接在文件记录头上看,如上图的红色框,那2字节为文件记录偏移16H处,0表示文件已被删除,1表示这个文件在使用,2表示是个目录等等。
好,现在我们去查找文件记录中的数据属性,这个属性是80H开头,好在winhex有这个颜色分类,很容易找到,如上图的橙色框所示。
下面我们集中抽取这个数据属性来分析,如下图所示:
我们一个一个来分析框中的内容表示的意思,第一个红色的框表示这是个数据属性,值是80H。橙色框:0表示这是个常驻属性,即这个文件的内容就在这个文件记录中,如果是1就表示这是个非常驻属性,那么我们要获取数据就得从运行中一个一个的计算获得,这个在下期讲解!
算:75b0H + 18H = 75c8H。蓝色框的4个字节表示这个文件的数据大小:E0H,折合十进制就是224,即这个文件大小是224个自己,记得我在前面讲过吗,上面还有文件大小的截图呢!绿色框的4个字节表示这个文件的数据的偏移位置18H,这个偏移从这个数据属性的开始位置计算,就是上图中的80H位置,这个位置这样计算:75b0H + 18H = 75c8H。
然后,我们就可以由这个数据的偏移位置和大小得到这个文件的数据,如紫色框表示。
最后,我们用鼠标来选择这些数据(选择的数据的颜色会变的),然后点击右键,选择:编辑-->复制选项块-->植入新文件,如下图所示:
在这里,我们最好就选择另外一个分区,不要在要恢复的分区中保存文件,已保证我们的数据不会被覆盖掉!
这里,我把文件保存在D盘中,也命名为HelloWorld.txt。
最后,我们来看下我们恢复的文件:
文件被恢复了