(完整版)WinHex数据恢复教程笔记

(完整版)WinHex数据恢复教程笔记
(完整版)WinHex数据恢复教程笔记

WinHex 数据恢复教程笔记 WinHex 是在 Windows 下运行的十六进制编辑软件,此软件功能非常强大。 有完善的分区管理功能和文件管理功能,能自动分析分区链和文件簇链,能对硬盘进行不同方式不同程度的备份,甚至克隆整个硬盘; 它能够编辑任何一种文件类型的二进制内容(用十六进制显示)其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任意扇区,是手工恢复数据的首选工具软件。 数据恢复的前提:数据不能被二次破坏、覆盖! 数据恢复首选软件用十六进制编辑器:WinHex MBR 、EBR 是分区产生的。 MBR 主引导记录大小是固定的,位于整个硬盘的 0 柱面 0 磁道 1 扇区。共占用了 63 个扇区,实际只使用了 1 个扇区,即硬盘第一扇区中的 512 字节。 DBR 是分区引导扇区,是由 FORMAT 高级格式化命令写到该扇区的内容,DBR 是由硬盘的 MBR 装载的程序段。DBR 装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区才会被 MBR 装的 DBR 入内存运行

表 32 扇区

04H 分区系统标志

当该值为 00H 时,表示此分区为不可识别的系统;

为 04H 时该分区为 FAT16 分区;

为 05H 或 0FH 该分区为扩展分区;

为 0B 时该分区为 FAT32 分区;

F8H FFH FFH 0FH 开始的 FAT 表,(对于 FAT16 是以 F8H FFH 开始的),每个 FAT 项占 32 位(4 个字节), FAT16 的每个 FAT 项占 16 位(2 个字节),

也就是说 FAT 和簇是一一对应的关系,对于 FAT32 的 FAT 来说每 4 个字节为 1 个 FAT 项. (对于 FAT16 的 FAT 每 2 个字节为一个 FAT 项)

512 字节的 MBR 主引导记录又分为三部分:

1.主引导扇区里的主引导程序代码(boot loader ),占 446 个字节;

2.硬盘分区表 DPT (Disk Partition table ),占 64 字节;

主分区表项 1 占 16 字节,447-461

每一个分区表项各占 16 个字节.

硬盘中分区有多少以及每一分区的大小都记在其中。

3.硬盘 55AA 有效结束标志 magic number ,占两个字节。

MBR 被清零的话,硬盘将不能引导。

如果 0 号扇区被清零,硬盘分区将不被系统识别。提示未初始化。

备份 MBR 只要备份前 512 字节就可以了,包含分区表。

用 WinHex 软件来恢复误分区,主要就是恢复第二部分:分区表。

主引导程序代码(boot loader )的作用:就是让硬盘具备可以引导的功能。

如果引导代码丢失,分区表还在,那么这个硬盘作为从盘所有分区数据都还在,只是这个硬盘自己不能够用来启动进系统了。

如果要恢复引导代码,可以用 DOS 下的命令:FDISK /MBR ;这个命令只是用来恢复引导代码,不会引起分区改变,丢失数据。也可以用工具软件,比如: DiskGenius 、WinHex 等。

EBR ,也叫做扩展 MBR (Extended MBR )。占 63 个扇区。因为主引导记录 MBR 最多只能描述 4 个分区 项,如果一个硬盘上分多于 4 个区,就用 EBR.

EBR 的结构和 MBR 的结构是一样的,所以在倒数第五行倒数第二个字节应该是 00 01,并且前 446 个字节应该是 0。

DBR 的备份:

分区格式是 FAT32 的话,备份在分区的 6 扇区。

NTFS 分区格式的话,在分区的最后一个扇区。

DBR FAT16 没有备份 文件跳转指令 EB 3C 90 FAT16 FAT32 文件跳转指令 EB 58 90 DBR 备份在第 6 扇区 有第一扇区的备份。FAT NTFS 文件跳转指令 EB 52 90 DBR 备份在最后一个扇区

ntfs 格式没有 FAT 表。

而每一个分区又由 DBR、FAT1、FAT2、DIR、DATA5 部分组成。

分区表:

分区表 64 个字节,一共描述 4 个分区表项,每个分区表项可以描述一个主分区或一个扩展分区. (比如上面的分区表,第一个分区表项描述主分区 C 盘,第二个分区表项描述扩展分区,第三第四个分

区表项填零未用)

每一个分区表项各占 16 个字节。

注意:真正的隐含扇区数应该反过来填写!

主分区图:

主分区表项 1 占 16 字节,447-461

80 41 02 00 07 15 F5 FF 00 10 00 00

00 10 B8 05

80 激活标记表示活动分区

41 02 00

07 NTFS 分区

15 F5 FF 分区的结束物理地址位置

9-12 字节 00 10 00 00

00 00 10 00=4096 本分区之前已用了 4096 扇区

13-16 字节=C 盘大小

00 10 B8 05

科学计算器 16 进制转换 10 进制,

05 B8 10 00=95948800 扇区*512=/1024/1024/1024=45.75G 扩展分区表

00 4B C1 FF 0F 0E FF FF15 2D B8 05 2C 1F 80 34

00 非活动分区

4B C1 FF

0F (LBA 模式)扩展分区

0E FF FF

9-12 字节15 2D B8 05

05 B8 2D 15=95956245 扇区D 盘起始扇区

13-16 字节2C 1F 80 34 扩展分区的总扇区数

34 80 1F 2C=880811820 扇区=420G

D 盘起始扇区

95956245*512 扇区=49129597440 字节

D 盘分区表

0077D8FF079CFCFFEB0A000000080005

00A5C1FF050EFFFFE6140005460A802F

00

77 D8 FF

07

9C FC FF

EB 0A 00 00

00 00 0A EB=2795 扇区

00 08 00 05

05 00 08 00=83888128*512

=42950721536 字节=40G D 盘

00

A5 C1 FF

05 扩展分区

0E FF FF

E6 14 00 05=83891430

46 0A 80 2F=796920390

E 盘:880811820-83888128=796923692 扇区=380G 总扇区数:

976773168

硬盘的第一分区表(即 MBR)

9、10、11、1

2 字节

LBA=0 到 DBR 之间的距离。

真正的隐含扇区数应该反过来填写!

13、14、15、

16 字节

本分区的总扇区数,就是 C 盘的大小。

因为 C 盘是从第 63 个扇区开始,而 C 盘后面紧接着的是 EBR,所以用 EBR 所

在的第一个扇区数减去 63 就是C 盘的大小。

搜索 EBR

搜索文件夹

MBR 在定义分区的时候,将多余的容量定义为扩展分区,指定该扩展分区的起止位置,根据起始位置指向硬盘的某一个扇区,作为下一个分区表项,接着在该扇区继续定义分区,如果只有一个分区,就定义该分区,然后结束。

如果不止一个分区,就定义一个基本分区和一个扩展分区,扩展分区再指向下一个分区描述扇区,在该分区上按照上述原则继续定义分区,直至分区定义结束。

用来描述分区的扇区形成一个“分区链”,通过这个分区链,就可以描述所有的分区。

系统在启动时按照分区链的连接顺序查找分区,直至找出所有分区。这个链显然是个开链结构,如果形成一个环,系统本身并不会去判断它,它只是按照这个链忠实的查找分区,而不进行任何额外的检测与处理。

所谓硬盘逻辑锁,就是让分区链形成一个环,这样系统在启动时就在分区表内循环,表现为系统无法引导,就是从软盘启动,也不能进入硬盘。

系统就是利用这种方法使一个硬盘分区后看起来象多个硬盘。

系统能够找到 C 盘以外的其他逻辑盘的唯一办法就是,沿着 EBR 所描述的分区链查找分区。

其实,通常情况下 EBR 是不会被破坏的,或者破坏的几率极低极低,通常情况下,都是只有 MBR 被破坏,那么这种情况下,我们只要把 MBR 的分区表 64 个字节复原,其他的分区顺着分区表所提供的链自然而然就出来了。

第 13、14、15、16 字节是本分区的总扇区数,就是 C 盘的大小,需要通过计算得到。

因为 C 盘是从第 63 个扇区开始,而C 盘后面紧接着的是 EBR,所以用 EBR 所在的第一个扇区数减去63 就是C 盘的大小。

EBR 的结构和 MBR 是一样的,所以,EBR 的结束标志也一定是 55AA,找到这个结束标志,再看看这个扇区是不是 EBR 不就行了?

单击“搜索”—“查找十六进制数值……”,然后出来一个对话框

在文本框中输入“55AA”,搜索框中选“全部”,然后选中“条件”,把偏移量设置为“512=510”。

再单击“确定”。

技巧:要逐个扇区的查找 55AA 确实太慢了,有没有办法快点的呢?

有,就是先问问客户 C 盘大概有多大,大多数客户还是知道的,比如 C 盘大概有 10 个 G,那么就不要从头开始找了,10 个 G 大概是 2000 万个扇区,那么可以用转到扇区命令直接到 1900 万扇区,从那个地方再开始找不就省事多了。

用 1435392 扇区减去 63,得到 1435329 扇区,再转为 16 进制,就是 15E6C1,将它倒转过来就是

C1E61500,这就是 C 盘的大小。

相关主题
相关文档
最新文档