版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、winhex教程 winhex 数据恢复分类:硬恢复和软恢复。所谓硬恢复就是硬盘出现物理性损伤,比如有盘体坏道、电路板芯片烧毁、盘体异响,等故障,由此所导致的普通用户不容易取出里面数据,那么我们将它修好,同时又保留里面的数据或后来恢复里面的数据,这些都叫数据恢复,只不过这些故障有容易的和困难的之分;所谓软恢复,就是硬盘本身没有物理损伤,而是由于人为或者病毒破坏所造成的数据丢失(比如误格式化,误分区),那么这样的数据恢复就叫软恢复。这里呢,我们主要介绍软恢复,因为硬恢复还需要购买一些工具设备(比如pc3000,电烙铁,各种芯片、电路板),而且还需要懂一点点电路基础,我们这里所讲到的所有的知识,涉
2、及面广,层次深,既有数据结构原理,为我们手工准确恢复数据提供依据,又有各种数据恢复软件的使用方法及技巧,为我们快速恢复数据提供便利,而且所有软件均为网上下载,不需要我们投资一分钱。数据恢复的前提:数据不能被二次破坏、覆盖!关于数码与码制:关于二进制、十六进制、八进制它们之间的转换我不想多说,因为他对我们数据恢复来说帮助不大,而且很容易把我们绕晕。如果你感兴趣想多了解一些,可以到百度里面去搜一下,这方面资料已经很多了,就不需要我再多说了。数据恢复我们主要用十六进制编辑器:Winhex (数据恢复首选软件)我们先了解一下数据结构:下面是一个分了三个区的整个硬盘的数据结构MBRC盘EBRD盘EBRE
3、盘MBR,即主引导纪录,位于整个硬盘的0柱面0磁道1扇区,共占用了63个扇区,但实际只使用了1个扇区(512字节)。在总共512字节的主引导记录中,MBR又可分为三部分:第一部分:引导代码,占用了446个字节;第二部分:分区表,占用了64字节;第三部分:55AA,结束标志,占用了两个字节。后面我们要说的用winhex软件来恢复误分区,主要就是恢复第二部分:分区表。引导代码的作用:就是让硬盘具备可以引导的功能。如果引导代码丢失,分区表还在,那么这个硬盘作为从盘所有分区数据都还在,只是这个硬盘自己不能够用来启动进系统了。如果要恢复引导代码,可以用DOS下的命令:FDISK /MBR;这个命令只是用
4、来恢复引导代码,不会引起分区改变,丢失数据。另外,也可以用工具软件,比如DISKGEN、WINHEX等。但分区表如果丢失,后果就是整个硬盘一个分区没有,就好象刚买来一个新硬盘没有分过区一样。是很多病毒喜欢破坏的区域。EBR,也叫做扩展MBR(Extended MBR)。因为主引导记录MBR最多只能描述4个分区项,如果想要在一个硬盘上分多于4个区,就要采用扩展MBR的办法。MBR、EBR是分区产生的。比如MBR和EBR各都占用63个扇区,C盘占用1435329个扇区那么数据结构如下表:631435329631435329631253889MBRC盘EBRD盘EBRE盘
5、扩展分区 而每一个分区又由DBR、FAT1、FAT2、DIR、DATA5部分组成:比如C 盘的数据结构:C 盘DBRFAT1FAT2DIRDATA WinhexWinhex是使用最多的一款工具软件,是在Windows下运行的十六进制编辑软件,此软件功能非常强大,有完善的分区管理功能和文件管理功能,能自动分析分区链和文件簇链,能对硬盘进行不同方式不同程度的备份,甚至克隆整个硬盘;它能够编辑任何一种文件类型的二进制内容(用十六进制显示)其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任意扇区,是手工恢复数据的首选工具软件。首先要安装Winhex
6、,安装完了就可以启动winhex了,启动画面如下:首先出现的是启动中心对话框。 这里我们要对磁盘进行操作,就选择“打开磁盘”,出现“编辑磁盘”对话框:在这个对话框里,我们可以选择对单个分区打开,也可以对整个硬盘打开,HD0是我现在正用的西部数据40G系统盘,HD1是我们要分析的硬盘,迈拓2G。这里我们就选择打开HD1整个硬盘,再点确定.然后我们就看到了Winhex的整个工作界面。最上面的是菜单栏和工具栏,下面最大的窗口是工作区,现在看到的是硬盘的第一个扇区的内容,以十六进制进行显示,并在右边显示相应的ASCII码,右边是详细资源面板,分为五个部分:状态、容量、当前位置、
7、窗口情况和剪贴板情况。这些情况对把握整个硬盘的情况非常有帮助。另外,在其上单击鼠标右键,可以将详细资源面板与窗口对换位置,或关闭资源面板。(如果关闭了资源面板可以通过“察看”菜单“显示”命令“详细资源面板”来打开)。最下面一栏是非常有用的辅助信息,如当前扇区/总扇区数目等 向下拉拉滚动条,可以看到一个灰色的横杠,每到一个横杠为一个扇区,一个扇区共512字节,每两个数字为一个字节,比如00。下面我们来分析一下MBR,因为前面我们说过,前446个字节为引导代码,对我们来说没有意义,这里我们只分析分区表中的64个字节。分区表64个字节,一共可以描述4个分区表项,每一个分区表项可以描述一个主
8、分区或一个扩展分区(比如上面的分区表,第一个分区表项描述主分区C盘,第二个分区表项描述扩展分区,第三第四个分区表项填零未用)每一个分区表项各占16个字节,各字节含义如下:(H表示16进制)字节位置内容及含义第1字节引导标志。若值为80H表示活动分区;若值为00H表示非活动分区。第2、3、4字节本分区的起始磁头号、扇区号、柱面号第5字节分区类型符:00H表示该分区未用06HFAT16基本分区0BHFAT32基本分区05H扩展分区07HNTFS分区0FH(LBA模式)扩展分区83H Linux分区第6、7、8字节本分区的结束磁头号、扇区号、柱面号第9、10、11、12字节本分区之前已用了的扇区数第
9、13、14、15、16字节本分区的总扇区数 此硬盘的第一分区表(即MBR)分析如下: 第一个分区表项(C盘)第1字节80:表示此分区为活动分区;第5字节0B:表示分区类型为Fat32;第9、10、11、12字节 系统隐含扇区3F 00 00 00:所谓系统隐含扇区就是本分区(C盘)之前已用了的扇区数,这是一个十六进制数,但要注意:真正的隐含扇区数应该反过来填写(比如:隐含扇区数为3E 4D 5A 6F,则反过来就是6F 5A 4D 3E ,这才是实际的隐含扇区数)。那么,3F 00 00 00反过来写就是00 00 003F,也就是3F,将他转成十进制数我
10、们才能知道实际的隐含扇区数是多大。这可以使用计算器来算,单击工具栏上的“计算器”按钮,如下图: 这样就启动了计算器计算器有两种型号,我们要进行进制转换,就要选择“科学型” 比如我们要将十六进制3F转换为十进制,就要先选中“十六进制”,然后输入3F 再选中“十进制”,十六进制3F转为十进制等于63。想一想我们前面所讲的,MBR占用63个扇区,也就是C盘之前已用了的扇区数为63,第64个扇区就是C盘的第一个扇区,但要注意的是,整个硬盘的LBA地址是从零开始的,062的扇区为MBR。第13、14、15、16字节本分区总扇区数(当然,这也就是C盘
11、的大小):C1 E6 15 00,同样,实际的十六进制数也要反过来才对,也就是00 15 E6 C1,将它转换成十六进制数是1435329。给你出个题,你知道D盘的EBR在哪个扇区吗?我们一起来算一下,还记得前面数据结构那个表吗?C盘后面不就是D盘的EBR吗?D盘EBR的第一个扇区=MBR+C盘的大小,也就是 63+1435329=1435392。我们来看看对不对,单击工具栏上的“转到扇区”按钮,出现一个“转到扇区”对话框然后输入1435392,再点“确定”,就到了1435392扇区了(你可以使用它再转回到0扇区)这个就是D盘的EBR,也就是D盘的分区表了,怎么知道的呢?因为MBR和EBR的结
12、构是完全一样的,都是占用了63个扇区,但只用了第一个扇区,其余62个扇区填零不用。第一个扇区前446个字节都为引导代码,后64个字节为分区表,最后2个字节为55AA结束标志。因为EBR不是活动分区,不需要引导代码,所以前446个字节为零。还有另一种方法直接找到D盘的EBR,单击“访问”下拉按钮“分区二”“分区表”,直接就到1435392扇区.这样,分区表中的第一个分区表项共十六个字节分析完毕,下面我们再来看看第二个分区表项(扩展分区)。第1字节00:表示非活动分区第5字节05:表示扩展分区第9、10、11、12字节00 E7 15 00:本分区之前的扇区数(扩展分区前面也就是MBR和C盘,好像
13、我们前面算过这个数?)同样,先将它反过来,就是00 15 E7 00 ,再转为十进制是1435392,看来我们前面真的算过这个数。第13、14、15、16字节40 09 29 00:本分区的总扇区数。也就是扩展分区的总扇区数。转为十进制应该是2689344。想一想,用这个数加上前面的1435392,不正好是整个硬盘的总扇区数4124736吗?这样,如果分区表被破坏,我们只要把这些数值都计算出来并填上,分区表不就恢复了?那么,这里我们为什么不分析第2、3、4字节(本分区的起始磁头号、扇区号、柱面号)和第6、7、8字节(本分区的结束磁头号、扇区号、柱面号)呢?这是因为C/H/S(柱面/磁头/扇区)
14、是老式硬盘的寻址方式,这种寻址方式来管理硬盘效率很低;而现在几乎所有的硬盘都支持LBA(全称是Logic Block Address,即扇区的逻辑块地址)寻址方式,这种管理方式简单高效。在LBA方式下,系统把所有的物理扇区都统一编号,按照从零到某个最大值排列,这样只用一个序数就确定了一个唯一的物理扇区。小知识:具体一个硬盘有多少个LBA(扇区)不需要我们去记忆,因为用各种工具软件(如MHDD WINHEX等)都可以检测到。我们只要知道个大概就行了:如10G的硬盘大概有2000万个扇区;20G的硬盘大概有4000万个扇区;40G的硬盘大概有8000万个扇区那么,2G的硬盘大概有400万个扇区。那
15、么,你可能要问了:如果要恢复分区表,这个起始磁头号、扇区号、柱面号还有结束磁头号、扇区号、柱面号应该怎么填呢?简单得很,在后面恢复分区表的时候我会告诉你,直接填,都不用计算。还有兴趣来分析一下D盘的EBR吗?其实D盘的EBR和盘的EBR我们不分析也罢,因为无非也是分区表,跟MBR的结构是一样的,但却很容易把我们绕晕,又因为EBR一般不容易被破坏,所以我不建议分析EBR。但如果你一定要分析,那就分析吧。单击“访问”下拉按钮“分区二”“分区表”,直接就到1435392扇区,即D盘的分区表EBR。第一个分区表项(D盘):第1个字节00:表示非活动分区第5个字节06:表示FAT16分区第9、10、11
16、、12字节3F 00 00 00:本分区之前已用了的扇区数,也就是EBR的数目,63个。第13、14、15、16字节C1 E6 15 00:本分区的总扇区数,也就是D盘的扇区数,先反过来排列就是00 15 E6 C1,转为十进制就是1435329。第二个分区表项(D盘后面的):第1个字节00:表示非活动分区第5个字节05:表示扩展分区第9、10、11、12字节00 E7 15 00:本分区之前已用了的扇区数,也就是D盘的EBR加D盘总共的大小, 63+1435329=1435392第13、14、15、16字节40 22 13 00:本分区的总扇区数,1253952,也就是E盘的大小再加上一个E
17、BR的数目。单击“访问”下拉按钮“分区三”“分区表”,直接就到2870784扇区,即E盘的分区表EBR。因为E盘后面没有分区了,所以没有第二个分区表项。这里我们就不再研究了,有兴趣的话可以自己多备一块硬盘作从盘,然后自己分分区研究研究。通过以上的研究我们总结一下,MBR在定义分区的时候,将多余的容量定义为扩展分区,指定该扩展分区的起止位置,根据起始位置指向硬盘的某一个扇区,作为下一个分区表项,接着在该扇区继续定义分区,如果只有一个分区,就定义该分区,然后结束;如果不止一个分区,就定义一个基本分区和一个扩展分区,扩展分区再指向下一个分区描述扇区,在该分区上按照上述原则继续定义分区,直至分区定义结
18、束。这些用来描述分区的扇区形成一个“分区链”,通过这个分区链,就可以描述所有的分区。系统在启动时按照分区链的连接顺序查找分区,直至找出所有分区。这个链显然是个开链结构,如果形成一个环,系统本身并不会去判断它,它只是按照这个链忠实的查找分区,而不进行任何额外的检测与处理。所谓硬盘逻辑锁,就是让分区链形成一个环,这样系统在启动时就在分区表内循环,表现为系统无法引导,就是从软盘启动,也不能进入硬盘。明白了其结构原理,解决这个问题就简单了,目前有很多种方法解决这个问题,后面我们还会讲到。系统就是利用这种方法使一个硬盘分区后看起来象多个硬盘。系统能够找到C盘以外的其他逻辑盘的唯一办法就是,沿着EBR所描
19、述的分区链查找分区。其实,通常情况下EBR是不会被破坏的,或者破坏的几率极低极低,通常情况下,都是只有MBR被破坏,那么这种情况下,我们只要把MBR的分区表64个字节复原,其他的分区顺着分区表所提供的链自然而然就出来了。那么,如何才能将分区表复原呢?这就要通过计算结合Winhex强大的功能来实现了。下面我们就来模仿分区表被病毒破坏的情况,将MBR全部填零。我们首先将MBR所在的扇区选中。鼠标指向第一个字节,单击右键,选择“选块开始”然后鼠标指向MBR的最后一个字节,单击右键,选择“选块结尾”然后我们在选区内部单击鼠标右键,选择“编辑”这样就有出来一个菜单然后我们选“填充选块”,这样就出来一个填
20、充选块对话框在“用十六进制填充”的输入框中输入“00”,再点“确定”这样MBR所在扇区全部被我们填充为“00”如果想取消选区,那就用鼠标拖动随便选中一块区域,那么原来的选区就会取消。注意,如果扇区数据被修改了而没有存盘就会变为别的颜色。修改了扇区,这时候还没有存盘生效,如果你想存盘生效的话,就选择“文件”菜单“保存扇区”命令。这时候就会出现一个提示,如果你不想存盘了就点取消,如果想存盘,就点确定,再点是。好,这样就存盘了,扇区被修改的数据又变为黑色。这样我们就把分区表给删除了,这时候必须重新启动才能生效,如果你打开我的电脑,会发现三个分区(F 、G、 H)还在那里,并且里面的数据还能正常使用。
21、现在,我们关闭所有程序将电脑重新启动经过不长时间的等待,电脑启动起来了,我们打开我的电脑看看,发现F 、G 、H三个分区不见了。 再打开Winhex发现MBR全部为零了,下面我们就着手开始手工恢复分区表首先恢复引导代码,这最简单了,只要用Winhex到别的系统盘把引导代码复制过来就行了。我现在的机器上不是挂着两个硬盘吗?一个迈拓2G,一个西数40G,西数40G是我的系统盘,那就从这个盘上复制就行了。单击“磁盘编辑器”按钮出现“编辑磁盘”对话框选择“HD0 WDC WD400EB-00CPF0”,点“确定”这样我们就把系统盘的分区表给打开了,注意,现在我们是打开了两个窗口,当前的窗口是
22、“硬盘0”,在标题栏上有显示。另外,打开窗口菜单也能看出来,当前窗口被打上一个勾,如果想切换回原来的窗口,就点击“硬盘1”。首先选中系统盘的引导代码然后在选区中单击鼠标右键,选“编辑”又出来一个菜单,然后我们选“复制选块”“正常”然后我们切换回硬盘1窗口,在零扇区的第一个字节处单击鼠标右键,选“编辑”然后选“剪贴板数据”“写入”出现一个窗口提示,点“确定”这样,我们就把一个正常系统盘上的引导代码复制过来了。下面,我们就开始恢复分区表(共64个字节,分为4个分区表项,每个分区表项占用16个字节,一般只使用前两个分区表项),我们首先来恢复第一个分区标项(也就是用来描述C盘的)。首先,在第1个字节处
23、(0扇区倒数第五行,倒数第二个字节)填上分区引导标志,因为C盘是活动分区,所以填上80。接着是第2、3、4字节(本分区起始磁头号、扇区号、柱面号),填上:01 01 00。第5字节是分区类型符,因为原先C盘是Fat32格式,所以填上:0B。那么,如果你不知道C盘是什么格式怎么办呢?你会说问问客户呀,那么如果他也不知道呢?别着急,后面在说恢复DBR的时候我会教你怎么分辨分区的格式。第6、7、8字节是本分区的结束磁头号、扇区号、柱面号,这怎么知道呢?别着急,现在的磁盘都是按照LBA方式寻址,并不按照C/H/S(及柱面、磁头、扇区)方式寻址,所以这个地方你填些什么一般关系不大,但是我要告诉你有一个通
24、用的填法,那就是:FE FF FF。第9、10、11、12字节,本分区之前已用了的扇区数,也就是MBR所占用的扇区数,那不是63吗?对,但是要将63转为十六进制数,再反过来倒着填写上。还记得怎么用计算器吗?将63转为十六进制数是3F,不够四个字节前面加零,也就是00 00 00 3F,再将此数从右向左依次序反过来就是3F 00 00 00。第13、14、15、16字节是本分区的总扇区数,也就是C盘的大小,这就要通过稍微一点点计算来得到了。因为C盘是从第63个扇区开始,而C盘后面紧接着的是EBR,所以用EBR所在的第一个扇区数减去63就是C盘的大小。那么如何才能找到EBR所在的第一个扇区呢?我们
25、前面说过,EBR的结构和MBR是一样的,所以,EBR的结束标志也一定是55AA,那么,只要我们找到这个结束标志,再看看这个扇区是不是EBR不就行了?单击“搜索”“查找十六进制数值”,然后出来一个对话框在文本框中输入“55AA”,搜索框中选“全部”,然后选中“条件”,把偏移量设置为“512=510”。再单击“确定”。画面如下:首先找到第一个“55AA”,我们看到,个扇区在第63个扇区上,并不是我们要找的EBR,再按F3继续查找又找到好几个扇区,都不是,那么下面这个扇区是不是?前面我们说过,EBR的结构和MBR的结构是一样的,所以在倒数第五行倒数第二个字节应该是00 01,并且前446个字节应该是
26、0,显然这也不是EBR,继续按F3查找终于找到了真正的EBR,在1435392扇区。小技巧:现在的硬盘都比较大,要逐个扇区的查找55AA确实太慢了,那么有没有办法快点呢?有,那就是先问问客户C盘大概有多大,大多数客户还是知道的,比如他说C盘大概有10个G,那么你就不要从头开始找了,因为那实在太慢了。10个G大概是2000万个扇区,那么你可以用转到扇区命令直接到1900万扇区,从那个地方再开始找不就省事多了。用1435392减去63,得到1435329,再转为16进制,就是15E6C1,将他倒转过来就是C1E61500,这就是C盘的大小。这样,第一个分区表项填写完毕,我们保存一下,再接着填写第二
27、个分区表项。第二个分区表第1个字节:因为是非活动分区,所以写00第2、3、4字节,填写01 01 00(通用的)第5字节:因为是扩展分区,所以填写0F第6、7、8字节:填写FE FF FF(通用)第9、10、11、12字节是本分区之前已用了的扇区数,应该就是C盘大小加63,也就是1435392,前面刚计算出来的,转为十六进制数再反过来就是00 E7 15 00第13、14、15、16字节是本分区的总扇区数,也就是扩展分区的总扇区数,也就是用整个硬盘的大小减去C盘的大小再减去63,即4124736-1435329-63=2689344,转为十六进制就是290940,反过来就是40092900。&
28、#160;这样,第二个分区表项就填写完了。不要忘了把最后的结束标志55AA填上,这样,MBR就全恢复完了,最后,保存,再重新启动启动完毕,迫不及待的打开我的电脑,发现三个分区全部又回来了,并且里面的数据完好无损。再右击“我的电脑”,选“管理” 出现一个对话框,选“磁盘管理”,在右边可以看到磁盘一的三个分区(Fat32、Fat16、Ntfs)全部都回来了,至此,手工恢复分区表顺利完成。手工恢复数据恢复成功率比较高,而且比较有趣味和挑战性,能找回许多傻瓜似的软件所找不回来的文件,但是要求工程师一定要有耐性,而且一定要保持清醒,清楚自己正在操作什么,操作完了会有什么后果,能不能退回到上一步
29、状态。特别是对一些破坏性操作,一定要考虑周到,只要条件允许,就一定要在操作之前进行备份,否则会造成“血”的教训,切记!下面我们会说到手工恢复DBR、FAT(此教程被收录在付费教程中),这些比手工恢复分区表还要复杂,更需要大量的计算。再说完了使用Winhex手工恢复数据之后,我们会说到一些数据恢复软件,结合数据恢复软件会使数据恢复成功率大大提高,但有一些软件在扫描过程中会对原盘破坏数据,在使用中一定要谨慎!而且同一个软件,一个新手用和一个老手用数据恢复成功率绝对是不一样的,这些软件我们会免费赠送,绝对不会让你学习了资料却找不到软件的。FAT文件系统下的手工数据恢复案例关键词:数据恢复,数据恢复资
30、料,数据恢复技术本文针对FAT分区。使用工具:winhex(非数据恢复专用)磁盘的具体存储原理,这里我解释一下:1、剩余扇区是什么:剩余扇区有分区内的剩余扇区和整个磁盘的剩余扇区。先说分区内的扇区:描述磁盘容量的单位是扇区,分区内部又是采用簇来管理的。通常情况下,扇区的容量是512b,簇的单位容量大于等于扇区的容量。以具体事例来讲,一个 7gb的fat32分区,其簇的大小是4k,相当于8个扇区,而分区内的存储单位是4k,分区的扇区总数如果不是8的倍数,那余下来的扇区便是剩余扇区了。整个磁盘的剩余扇区与上述原理相似,不同的是,每个分区的结束必须以254头,63扇为结束(也应该是老的磁盘管理模式留
31、下的弊端吧!虽然分区内是以线性逻辑扇区为首要参数的)也就是说,如果磁盘的总容量正好分不净一个柱面的容量(1*254*63*512b=8193024b),那么,剩下的容量便是整个磁盘的剩余扇区了,其最大也就是大约7.8m。这也是通常情况下,分区的最小容量是7.8m,分区容量是8193024b倍数的原因。(简图并未画出整个磁盘的剩余扇区,大家理解吧!)2、对于fat32的保留扇区的数目,一般来说是32个,但也不肯定是,有时候可能会是38个或其他数目,当然也可以在dbr中的bpb(bios parameter block)参数表中更改,后面要讲到在数据恢复中了解他的重要性。(dbr的参数说明到数据恢
32、复网 找找)3、在小容量的磁盘分区中也存在fat16的分区格式,原理吗?和软盘的存储原理相,见数据恢复网 “反黑行动之数据恢复”。下面我们进入实战:第一种情况,分区被格式化。如果格式化以后,当然可以用现成的数据恢复软件来恢复,但软件毕竟是软件,并不能应对多变的复杂的情况。而手工不同,如果对磁盘结构了解,是可以最大程度的恢复的。我们抛开数据恢复软件来看和通过手工来恢复被格式化的磁盘分区。对于fat格式的分区(包括fat16),format命令会重建dbr扇区,清空两个fat表,清空分区的第一个簇(存放原根目录)。不管是快速格式化还是完全格式化(快速格式化和完全格式化的区别在于他们是否对所涉及到的
33、磁盘扇区进行检测扫描,清除上面的数据事都要做得)。对于dbr,分区只要正确格式化就会生成正确的dbr,故而重点是fat表和原根目录(如果原根目录大于一个簇,这仅仅是第一个簇,为了方便,以后就以原根目录称)的问题。如果你格式花前备份了此分区的fat表和根目录。那么,只要将dbr初始化,恢复fat表和根目录即可完全恢复数据。不过,既然是被格式化,那一定没有fat表和根目录的备份(废话!)。继续:先说根目录,跟目录的第一扇一但清空,别无法找回了。所以,格式化前存储在根目录的文件就会因其在第一扇存储的文件特征描述表丢失而很难找回了,除非你知道文件中包含的特征字符串,根据其在整个分区内查找,又确定文件的
34、大小,而恰好要恢复的文件又是在磁盘内连续存储的。再说fat表,fat表的丢失对交叉存储的文件来说是几乎毁灭的灾难。原则上如果丢失,就只能恢复从文件第一簇开始的连续几簇了。但一般如要恢复的文件较小或分区并未经过频繁的文件删增的话, 还是有希望的。手动填写fat表是不现实的,我们只好先让原来的目录结构重现,再想办法。windows的磁盘文件格式是tree型的,格式化只是将tree的根折,在根折断以后,其实就象生成了多颗tree(想想数据结构)。如果我们要恢复的文件全部位于一个子目录当中。那好了,我们只要将这颗子树的树根放入原tree 的根位置上,即可生成一颗新树。推介使用winhex,下面以win
35、hex为例具体而言,首先,若磁盘未格式化或格式化格式不太正确,先格式化,以生成可参照的dbr和fat表。接着我们在分区中寻找相关的字符串来确定此子树的'根'位置。,如记得原目录中有sjhfnet.txt的文件(选择其他目录没有或很少有此文件名的文件),可在整个分区内查找'sjhfnet txt',再根据相关特征确定。这时候注意一下,我们需要目录中提供的'.'目录来推测原分区的一些特性,主要是dbr中的bpb参数,如保留扇区的数目。(一般是不不会错的,但如果有那怕一个扇区的出入,整个分区中目录的映射将不能套用,还是看看吧!),是不是要问,'
36、.'目录是什么?学过dos的人都知道,目录'.' 表当前所在目录,'.'表上级目录,在32个子节的目录项中,包含有和其他目录项相同的特征,我们关心目录的位置(在原分区格式的第几个簇中),他应该是等于他所在的簇号的!也就是看一下偏移量为15h 14h 1bh 1ah的数值是否等于现在簇号。在winhex中格式化后的磁盘可清楚的列出当前簇的簇号,可比较一下(可能需要16进制与10进制的转换)。相同不说了,如果不相同,也应该相差不多。计算一下相差的簇的数目,然后在本分区dbr扇区的0eh0fh作相应增减,是保留扇区的数目回到原来的数目。重起一下计算机,是新的d
37、br生效,清空现fat表(根目录簇可以不清空,因后边讲到会覆盖的)。文件目录项的映射与实际地址便正确的结合了。(不明白吗?想想原理,努力消化一下)接着将找到的簇复制-定位到现在的根目录-写入。打开“资源管理器“,浏览,出来了吗?慢!还没完,现在的目录结构是出来了,但还不能访问,因为fat表所记录的簇还是空闲的。怎么办?手动写,算一下,可能写完得30年吧!呵呵!哪。,其实,如果要恢复的文件大小都在1簇范围内,可在win98下运行磁盘扫描程序,在出现修复的提示时选相应的选象修复即可(别选“删除涉及到的文件”选项,另外,win2000下不行,扫描程序会直接删除文件的)。这样,大小在1簇范围的文件别完
38、全恢复了(包括文件)。那如何在这种情况下恢复大于1个簇的文件呢?一是你可以写一个小的程序来实现涉及到的簇的连续。如果你不会,那么也不难,得一个一个文件的来。打开winhex,使用它的目录模板跳转到文件的存储区,从当前簇复制大小为文件大小的一块连续数据,写入新文件中(记得写在其他分区中),即可!当然,如果簇数较少,可直接在fat1中改动。另外,这样恢复的文件也不一定正确。要看当初文件的存储是否连续了?如果恢复后的文件不能用,那。听天由命吧!(要么你在磁盘中在查找,分析,自己把它连接起来。不过,工作量吗?。)这样恢复的是以前一个子目录的数据。如果有多个目录的数据要恢复,可用同样的方法替换根目录(第
39、一个数据簇),也可以采用手动建立根目录的方法,不过,别在资源管理器中进行,手动在winhex中做吧!还有,要是恢复的目录中有多个簇,再用同样的方法,查找,作为根目录。这是分区格式为fat32的情况,如fat16则不需考虑保留扇区的数目情况,fat16无保留扇区。这是有目录项的情况。再来说一下在无目录项参照的情况:以下默认为欲恢复文件是存储在FAT32文件格式当中的文件。假如你的磁盘已经被xxx破坏的一塌糊涂。或者已经经过了N位高手二次处理"加工"过了,什么工具软件都用过了!结果仍然没有看到你需要的数据的影子。或者你要恢复的数据本来就很少(若干源代码,或是若干论文,若干小的数
40、据库,或是确认在数据丢失前正好做了磁盘碎片整理),不值得采用我上面采用的方法。你可以采用在磁盘内通过查找的方法,总结来找回数据(不要笑,有技巧的,况且,也许这是唯一的方法!)可以通过磁盘文件的存储特征和文件固有的类型特征来考虑。看过反黑行动之数据恢复(风般的男人著)应该可以知道,文件在磁盘内至少是以扇区为单位的,也就是说,每个文件在磁盘内实际存储的开始,一定是某扇区的开始。这是其一,其二是每种类型的文件都有其特定的文件标志,可根据文件的特定标志(通常还是在文件的开头)与其在磁盘的位置来圈定。如果是文本文件,可通过在磁盘内查找特征字串的方法来找到。不过,稍有知识的人是都知道的,不说了。(还是使用
41、winhex吧!硬盘速度可以的话,应该查找1G的空间不超过1分钟)我们来通过具体的例子看一看已加密或无明显特征字串的情况(这是最通常的情况)。以一Office文档的恢复为例。Office文档的实际构成总是以“00000000 D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00 邢.唷?.”开头,以下列二进制特征为尾:-00148940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF00148950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF00148960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF00148970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF00148980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF00148990 FF FF FF FF FF FF FF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习主题单元12第31课时电路故障课件
- 冀少版八年级生物上册专项突破2根对水分的吸收和蒸腾作用课件
- 冀少版八年级生物上册第三单元第三节光合作用的场所课件
- 《买文具》教学设计
- 《人体解剖学》电子教案关节学(人卫版)
- 新兴城区房产打印发展潜力
- 湘教版五年级音乐上册教案
- 建筑施工承包合同样本
- 机场休息室改造敲墙协议
- 科技园区装修施工安全协议
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- JT-T-617.1-2018危险货物道路运输规则第1部分:通则
- 教育新篇章:数字化转型
- 机动车登记证书翻译件中英文模板(共2页)
- C++程序设计:第8章 数组
- 小学书法人美版五年级下册 第10课 广字头 课件(10张PPT)
- 两自一包体制改革策略应用案例探索
- 生产计划与排产管理
- 设施农业用地备案申报材料(全套表格)
- 双培养工作实施方案3页
评论
0/150
提交评论