winhex⽐较详细的图⽂使⽤教程+WinHex使⽤⽅法详解
数据恢复分类:硬恢复和软恢复。
所谓硬恢复就是硬盘出现物理性损伤,⽐如有盘体坏道、电路板芯⽚烧毁、盘体异响,等故障由此所导致的普通⽤户不容易取出⾥⾯数据,那么我们将它修好,同时⼜保留⾥⾯的数据或后来恢复⾥⾯的数据,这些都叫数据恢复,只不过这些故障有容易的和困难的之分;
所谓软恢复,就是硬盘本⾝没有物理损伤,⽽是由于⼈为或者病毒破坏所造成的数据丢失(⽐如误格式化,误分区),那么这样的数据恢复就叫软恢复。
这⾥呢,我们主要介绍软恢复,因为硬恢复还需要购买⼀些⼯具设备(⽐如pc3000,电烙铁,各种芯⽚、电路板),⽽且还需要懂⼀点点电路基础,我们这⾥所讲到的所有的知识,涉及⾯⼴,层次深,既有数据结构原理,为我们⼿⼯准确恢复数据提供依据,⼜有各种数据恢复软件的使⽤⽅法及技巧,为我们快速恢复数据提供便利,⽽且所有软件均为⽹上下载,不需要我们投资⼀分钱。
数据恢复的前提:数据不能被⼆次破坏、覆盖!
关于数码与码制:
关于⼆进制、⼗六进制、⼋进制它们之间的转换我不想多说,因为他对我们数据恢复来说帮助不⼤,⽽且很容易把我们绕晕。如果你感兴趣想多了解⼀些,可以到百度⾥⾯去搜⼀下,这⽅⾯资料已经很多了,就不需要我再多说了。
数据恢复我们主要⽤⼗六进制编辑器:Winhex (数据恢复⾸选软件)
我们先了解⼀下数据结构:
下⾯是⼀个分了三个区的整个硬盘的数据结构
MBR C盘EBR D盘EBR E盘
MBR,即主引导纪录,位于整个硬盘的0柱⾯0磁道1扇区,共占⽤了63个扇区,但实际只使⽤了1个扇区(512字节)。在总共512字节的主引导记录中,MBR ⼜可分为三部分:
第⼀部分:引导代码,占⽤了446个字节;
第⼆部分:分区表,占⽤了64字节;
第三部分:55AA,结束标志,占⽤了两个字节。
后⾯我们要说的⽤winhex软件来恢复误分区,主要就是恢复第⼆部分:分区表。
引导代码的作⽤:就是让硬盘具备可以引导的功能。如果引导代码丢失,分区表还在,那么这个硬盘作为从盘所有分区数据都还在,只是这个硬盘⾃⼰不能够⽤来启动进⼊系统了。如果要恢复引导代码,可以⽤DOS下的命令:FDISK /MBR;这个命令只是⽤来恢复引导代码,不会引起分区改变,丢失数据。另外,也可以⽤⼯具软件,⽐如DISKGEN、WINHEX等。
但分区表如果丢失,后果就是整个硬盘⼀个分区没有,就好象刚买来⼀个新硬盘没有分过区⼀样。是很多病毒喜欢破坏的区域。
EBR,也叫做扩展MBR(Extended MBR)。因为主引导记录MBR最多只能描述4个分区项,如果想要在⼀个硬盘上分多于4个区,就要采⽤扩展MBR的办法。
MBR、EBR是分区产⽣的。
⽐如MBR和EBR各都占⽤63个扇区,C盘占⽤1435329个扇区……那么数据结构如下表:
631435329631435329631253889
MBR C盘EBR D盘EBR E盘
扩展分区
⽽每⼀个分区⼜由DBR、FAT1、FAT2、DIR、DATA5部分组成:⽐如C 盘的数据结构:
C 盘
DBR FAT1FAT2DIR DATA
Winhex
Winhex是使⽤最多的⼀款⼯具软件,是在Windows下运⾏的⼗六进制编辑软件,此软件功能⾮常强⼤,有完善的分区管理功能和⽂件管理功能,能⾃动分析分区链和⽂件簇链,能对硬盘进⾏不同⽅式不同程度的备份,甚⾄克隆整个硬盘;它能够编辑任何⼀种⽂件类型的⼆进制内容(⽤⼗六进制显⽰)其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任意扇区,是⼿⼯恢复数据的⾸选⼯具软件。
⾸先要安装Winhex,安装完了就可以启动winhex了,启动画⾯如下:⾸先出现的是启动中⼼对话框。
这⾥我们要对磁盘进⾏操作,就选择“打开磁盘”,出现“编辑磁盘”对话框:
在这个对话框⾥,我们可以选择对单个分区打开,也可以对整个硬盘打开,HD0是我现在正⽤的西部数据40G系统盘,HD1是我们要分析的硬盘,迈拓2G。这⾥我们就选择打开HD1整个硬盘,再点确定.然后我们就看到了Winhex的整个⼯作界⾯。
最上⾯的是菜单栏和⼯具栏,下⾯最⼤的窗⼝是⼯作区,现在看到的是硬盘的第⼀个扇区的内容,以⼗六进制进⾏显⽰,并在右边显⽰相应的ASCII码,右边是详细资源⾯板,分为五个部分:状态、容量、当前位置、窗⼝情况和剪贴板情况。这些情况对把握整个硬盘的情况⾮常有帮助。另外,在其上单击⿏标右键,可以将详细资源⾯板与窗⼝对换位置,或关闭资源⾯板。(如果关闭了资源⾯板可以通过“察看”菜单——“显⽰”命令——“详细资源⾯板”来打开)。
最下⾯⼀栏是⾮常有⽤的辅助信息,如当前扇区/总扇区数⽬……等
向下拉拉滚动条,可以看到⼀个灰⾊的横杠,每到⼀个横杠为⼀个扇区,⼀个扇区共512字节,每两个数字为⼀个字节,⽐如00。
下⾯我们来分析⼀下MBR ,因为前⾯我们说过,前446个字节为引导代码,对我们来说没有意义,这⾥我们只分析分区表中的64
个字节。
分区表64个字节,⼀共可以描述4个分区表项,每⼀个分区表项可以描述⼀个主分区或⼀个扩展分区(⽐如上⾯的分区表,第⼀个分区表项描述主分区C 盘,第⼆个分区表项描述扩展分区,第三第四个分区表项填零未⽤)
每⼀个分区表项各占16个字节,各字节含义如下:(H 表⽰16进制)
字节位置
内容及含义第1字节
引导标志。若值为80H 表⽰活动分区;若值为00H 表⽰⾮活动分区。第2、3、4
字节本分区的起始磁头号、扇区号、柱⾯号
第5字节分区类型符:
00H——表⽰该分区未⽤
06H——FAT16基本分区
0BH——FAT32基本分区
05H——扩展分区
07H——NTFS 分区
0FH——(LBA 模式)扩展分区
83H—— Linux 分区
第6、7、8字节
本分区的结束磁头号、扇区号、柱⾯号第9、10、11、12字节
本分区之前已⽤了的扇区数第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 ,将他转成⼗进制数我们才能知道实际的隐含扇区数是多⼤。这可以使⽤计算器来算,单击⼯具栏上的“计算器”
按钮,如下图:
这样就启动了计算器
计算器有两种型号,我们要进⾏进制转换,就要选择“科学型”
⽐如我们要将⼗六进制3F转换为⼗进制,就要先选中“⼗六进制”,然后输⼊3F
再选中“⼗进制”,⼗六进制3F转为⼗进制等于63。想⼀想我们前⾯所讲的,MBR占⽤63个扇区,也就是C盘之前已⽤了的扇区数为63,第64个扇区就是C盘的第⼀个扇区,但要注意的是,整个硬盘的LBA地址是从零开始的,0~62的扇区为MBR。
第13、14、15、16字节本分区总扇区数(当然,这也就是C盘的⼤⼩):C1 E6 15 00,同样,实际的⼗六进制数也要反过来才对,也就是00 15 E6 C1,将它转换成⼗六进制数是1435329。给你出个题,你知道D盘的EBR在哪个扇区吗?我们⼀起来算⼀下,还记得前⾯数据结构那个表吗?C盘后⾯不就是D盘的EBR吗?D 盘EBR的第⼀个扇区=MBR+C盘的⼤⼩,也就是 63+1435329=1435392。
16进制转换器计算器我们来看看对不对,单击⼯具栏上的“转到扇区”按钮,出现⼀个“转到扇区”对话框
然后输⼊1435392,再点“确定”,就到了1435392扇区了(你可以使⽤它再转回到0扇区)
这个就是D盘的EBR,也就是D盘的分区表了,怎么知道的呢?因为MBR和EBR的结构是完全⼀样的,都是占⽤了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盘,好像我们前⾯算过这个数?)同样,先将它反过来,就是
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(柱⾯/磁头/扇区)是⽼式硬盘的寻址⽅式,这种寻址⽅式来管理硬盘效率很低;⽽现在⼏乎所有的硬盘都⽀持LBA(全称是Logic Block Address,即扇区的逻辑块地址)寻址⽅式,这种管理⽅式简单⾼效。在LBA⽅式下,系统把所有的物理扇区都统⼀编号,按照从零到某个最⼤值排列,这样只⽤⼀个序数就确定了⼀个唯⼀的物理扇区。