数据恢复专题:学习 MBR 的恢复方法,了解分区结构(2)
前言
在上一篇文章后,我们了解到了 Winhex 是什么,以及 Winhex 的快捷键等。
本篇,我们将正式使用 Winhex 进行简单的分区恢复。
你可以在 https://winhex.im0o.top/ 中查看所有例题文件
知识点总览
- Winhex 窗口使用介绍
- 实例:填写 MBR
- 什么是 DBR
- 主分区与扩展分区
Winhex 窗口使用介绍
功能名称 | 作用 |
---|---|
新建 | 新建一个文件(可以自定义大小,导出文件时可以自定义扩展名) |
打开 | 打开一个文件 |
保存 | 保存更改 |
创建磁盘镜像 | 为一个分区/磁盘创建镜像 |
打印 | 将范围内的二进制数据导出为*.xps 格式的文档 |
属性 | 查看一个文件的属性 |
打开文件夹 | 打开一个文件夹进行编辑 |
功能名称 | 作用 |
---|---|
撤销 | 撤销上一次的操作 |
复制选区 | 复制选定的区域 |
粘贴选区 | 将刚刚复制的内容粘贴 |
写入剪贴板 | 将剪贴板的数据写入 |
叠加扇区 | 叠加扇区 |
修改数据 | 对选定的数据批量操作 |
功能名称 | 作用 |
---|---|
同步搜索 | 高级搜索 |
查找文本 | 查找 ASCII/Unicode 等其他格式的文本 |
查找十六进制数值 | 查找 16 进制格式的数值 |
替换文本 | 查找并替换 ASCII/Unicode 等其他格式的文本 |
替换十六进制数值 | 查找并替换 16 进制格式的数值 |
功能名称 | 作用 |
---|---|
转到偏移量 | 转到相对位置 |
跳至扇区 | 转到绝对位置 |
向前 | 转到上一个光标所在的位置 |
向后 | 转到后一个光标所在的位置 |
功能名称 | 作用 |
---|---|
打开磁盘 | 在 Winhex 中打开一个磁盘/分区进行编辑 |
克隆磁盘 | 克隆一个磁盘 |
打开 RAM | 打开 RAM 内存 |
计算器 | 打开计算机基带软件——计算器 |
分析选快 | 分析选中的区域 |
进行磁盘快照 | 对磁盘进行磁盘快照 |
Mount as Drive Letter | |
(空) |
功能名称 | 作用 |
---|---|
常规设置 | 打开常规设置菜单 |
目录浏览器 | 打开目录浏览器设置菜单 |
减小一列 | 减小 16 进制编辑器中显示的一列(默认 16 列,不会更改分区/磁盘大小) |
增大一列 | 增加 16 进制编辑器中显示的一列 |
内容 | Winhex 帮助,打开时会提示“是否打开” |
数据解释器是Winhex中比较重要的一个工具,你可以通过点击某字节/某字节组的头看到这(几)个字节的数值大小。
- 如何打开数据解释器?
在 WinHex 中,数据解释器默认会一直存在,如果你不小心关闭了它,可以在【查看】—【显示】—【数据解释器】中打开它(如图)
- 使用数据解释器
如图,黄色部分则为 16 进制(Little-Endian)数值,红色部分则为前方黄色部分的数值,FF 则为例子填充。
当点击字节时,数据解释器默认会以 Little-Endian 显示从光标开始(包括光标所在字节)向后 3 个字节的数值大小,8Bit 栏为 1 个字节,16Bit 栏为 2 个字节,32Bit 栏为 4 个字节。
数据解释器可以在【选项】—【数据解释器】中修改(快捷键:Alt+F5)
打开后的界面如下:
实例:填写 MBR
MBR.vhd 0
观察 0 扇区后面的几个扇区,发现是这个虚拟磁盘的分区结构是MBR 分区结构
填写完结束标志后保存并关闭,重新打开虚拟磁盘
可以通过多种方法寻找到第一个分区,这里举例两种方法:
通过位置管理器跳转到第一个分区
如果你能够像图中在位置管理器中看到第一个分区,可以直接点击该分区跳转到该分区的 DBR 处
通过搜索结束标志
你可以搜索每个扇区结尾 2 字节的55 AA
(结束标志)来找到分区的 DBR,如果55 AA
被删除了,就无法通过该方法找到 DBR
通过搜索非零
你可以在 MBR 主引导记录后的空闲扇区中向下搜索!00
(非零)找到 DBR,在本例题中,你需要进行搜索非零或直接通过导航跳转。
记录 DBR 的信息
打开记事本,记录 DBR 的信息,一般的记录格式为:
| 分区类型
1| 分区地址 | 分区大小 |
如果该分区是 FAT32 类型,则记录格式为:
| 分区类型 | 分区地址 | 分区大小 | 保留区大小 | FAT表大小 | 每簇扇区数 |
如果该分区是扩展分区2,则记录格式为:
| 分区类型(05) | EBR地址 | 分区类型 | ……(同上)
记录格式只是为了方便分区的恢复与数据的填写,这玩意……怎么顺手怎么来吧。
查看该分区的位置与大小
如上图,在黄色标记处为该分区的绝对位置,红色标记处为该分区的大小,通过点击 4 个字节中的第一个字节,可以在数据解释器中看到位置和大小的数据。图中的分区为 NTFS 分区,其位置的 16 进制数值为00 08 00 00
;其分区大小数值为FF 07 A0 00
,换算为 Big-Endian 为00 00 08 00
和00 A0 07 FF
其值为2048
和10487807
。
填写数值
将刚刚找到的数值填入记事本(如下图)
接着,从该分区的 DBR 向后跳转其分区大小10487807
即可转到该分区的备份
下图为该分区跳转示意图
由跳转图我们可以知道,NTFS 分区 DBR 中描述的分区大小不包括 NTFS 分区的备份,所以最后填写到 MBR 主引导记录中的分区大小要比记录的大小+1
在第一个分区的备份后即为第二个分区的 DBR,重复上述的步骤,得到以下数据。
跳转到 0 扇区后,填写主引导记录中的分区表。
在填写分区表前,我们需要了解分区表结构:
字节偏移 | 字段长度 | 值 | 字段名定义 |
---|---|---|---|
0x01BE | 1 字节 | 0x80 | 引导标志:指明该分区是否为活动分区 |
0x01BF | 1 字节 | 0x20 | 开始磁头 |
0x01C2 | 1 字节 | 0x07 | 分区类型描述 |
0x01C6 | 4 字节 | 0x00008000 | 分区起始扇区 |
0x01CA | 4 字节 | 0x0C800800 | 分区大小 |
实际需要填写的内容为上表中加粗的部分,将记事本中的内容填入分区表。
填完之后的效果:
Ctrl+S 保存后进入计算机管理——存储——磁盘管理中刷新虚拟分区
如果你看到的是图中的效果,那么恭喜你,你成功恢复了这 4 个分区
什么是 DBR
DBR(DOS BOOT RECORD),分区引导扇区,是由 FORMAT 高级格式化命令写到该扇区的内容,DBR 是由硬盘的 MBR 装载的程序段。DBR 装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区的 DBR 才会被 MBR 装入内存运行。
DBR 一般位于一个分区的分区头,是这个分区的开始。各个分区的 DBR 结构也会有所不同,若将分区的 DBR 删除,则系统将无法识别这个分区(即会显示为 RAW)
一般情况下,分区的 DBR 会有其备份,例:
分区类型 | 备份偏移地址 |
---|---|
NTFS | 分区结束后 1 个扇区 |
FAT32 | DBR 后 6 个扇区 |
ExFAT | DBR 后 12 个扇区 |
图为 FAT32 从 DBR 向后跳转了 6 个扇区到达备份
主分区与扩展分区
主分区
MBR 磁盘的分区形式一般有 3 种:主分区,扩展分区和非 DOS 分区3。主分区又被称为主 DOS 分区,目前也称为主磁盘分区。
为了便于用户对磁盘的管理,操作系统引用了分区的概念,即将一块磁盘逻辑划分为几个区域。在分区表的 64 字节中,以 16 个字节为一个分区表项来描述一个分区的结构。
一块硬盘中可以有多个主磁盘分区,被激活的主磁盘分区称为活动分区,活动分区在一块分区中只能有一个。
扩展分区
在了解扩展分区之前,我们先看看 MBR 中分区表的结构:
图中加黑部分为 MBR 主引导记录中的分区表,分区表被分为了 4 个主分区表项,这就意味着,在 MBR 分区结构中只能存在 4 个主分区表项,即 4 个主分区。那我们如何分出 4 个以上的分区呢?
使用分区工具 DiskGenius 的快速分区功能,我们可以看到
可以看到高级设置中分区的最右方有主分区选项,当我们把分区数目选择为 4 个分区以上时,再视图将所有分区设置为主分区,可以看到这样的效果
只能将 3 个分区分配成主分区,剩下两个分区无法设置成分配为主分区,当我们点击确定后,该磁盘将被分成 5 个分区
请务必在虚拟磁盘上执行该操作!格式化之前请注意不要格成自己的硬盘,以免造成数据丢失!
格式化后可以在 DiskGenius 中看到分区情况
可以看到虚拟磁盘被分为了 3 个主分区和一个扩展分区,扩展分区内包含了两个分区。
再在 Winhex 中打开该虚拟磁盘查看它的分区表
可以观察到扩展分区的标识符是 0F
,通过数据解释器可以看出其大小为41,934,848
,约为 20GB,即为 2 个分区(L:和 J:)的大小。
接下来跳转到扩展分区的位置,查看它的“DBR”
可以观察到,扩展分区的“DBR”类似于 MBR,拥有分区表,里面指向了两个分区。
由此可见,扩展分区严格意义上并不算是一个分区,它的作用仅仅是指向后面的分区。
因此,我们给扩展分区的“DBR”定义了一个专属的名字:EBR(Extended Boot Record)
在扩展分区内的分区也有专属的称呼:逻辑分区
下图为 MBR 指向扩展分区的流程: