使用Winhex进行数据恢复(2)

发表于 2019-11-17更新于 2019-11-29阅读次数

前言

在上一篇文章后,我们了解到了Winhex是什么,以及Winhex的快捷键等。

本篇,我们将正式使用Winhex进行简单的分区恢复。

你可以在 http://winhex.baklib.com 中查看所有例题文件

题库密码:im0o.top

知识点总览

  • Winhex 窗口使用介绍
  • 实例:填写MBR
  • 什么是 DBR
  • 主分区与扩展分区

Winhex窗口使用介绍

winhex.png

  • 文件类功能

功能名称 作用
新建 新建一个文件(可以自定义大小,导出文件时可以自定义扩展名)
打开 打开一个文件
保存 保存更改
创建磁盘镜像 为一个分区/磁盘创建镜像
打印 将范围内的二进制数据导出为*.xps格式的文档
属性 查看一个文件的属性
打开文件夹 打开一个文件夹进行编辑
  • 编辑类功能

功能名称 作用
撤销 撤销上一次的操作
复制选区 复制选定的区域
粘贴选区 将刚刚复制的内容粘贴
写入剪贴板 将剪贴板的数据写入
叠加扇区 叠加扇区
修改数据 对选定的数据批量操作(动刀子)
  • 查找类功能

功能名称 作用
同步搜索 高级搜索
查找文本 查找ASCII/Unicode等其他格式的文本
查找十六进制数值 查找16进制格式的数值
替换文本 查找并替换ASCII/Unicode等其他格式的文本
替换十六进制数值 查找并替换16进制格式的数值
  • 跳转类功能

功能名称 作用
转到偏移量 转到相对位置
跳至扇区 转到绝对位置
向前 转到上一个光标所在的位置
向后 转到后一个光标所在的位置
  • 其他功能

功能名称 作用
打开磁盘 在Winhex中打开一个磁盘/分区进行编辑
克隆磁盘 克隆一个磁盘
打开RAM 打开RAM内存
计算器 打开计算机基带软件——计算器
分析选快 分析选中的区域
进行磁盘快照 对磁盘进行磁盘快照
Mount as Drive Letter
(空)
  • 设置项

功能名称 作用
常规设置 打开常规设置菜单
目录浏览器 打开目录浏览器设置菜单
减小一列 减小16进制编辑器中显示的一列(默认16列,不会更改分区/磁盘大小)
增大一列 增加16进制编辑器中显示的一列
内容 Winhex帮助,打开时会提示“是否打开”
  • 工具:数据解释器

数据解释器

数据解释器是Winhex中比较重要的一个工具,你可以通过点击某字节/某字节组的头看到这(几)个字节的数值大小。

  • 如何打开数据解释器?

在WinHex中,数据解释器默认会一直存在,如果你不小心关闭了它,可以在【查看】–【显示】–【数据解释器】中打开它(如图)

image.png

  • 使用数据解释器

sector.gif

如图,黄色部分则为16进制(Little-Endian)数值,红色部分则为前方黄色部分的数值,FF则为例子填充。

当点击字节时,数据解释器默认会以Little-Endian显示从光标开始(包括光标所在字节)向后3个字节的数值大小,8Bit栏为1个字节,16Bit栏为2个字节,32Bit栏为4个字节。

数据解释器可以在【选项】–【数据解释器】中修改(快捷键:Alt+F5)

image.png

打开后的界面如下:

image.png

实例:填写MBR

  1. 导入题目 MBR.vhd 后使用Winhex打开:

MBR.vhd 0

image.png

  1. 填写0扇区中的结束标志:55 AA

观察0扇区后面的几个扇区,发现是这个虚拟磁盘的分区结构是MBR分区结构

填写完结束标志后保存并关闭,重新打开虚拟磁盘

55aa.png

  1. 寻找第一个分区

可以通过多种方法寻找到第一个分区,这里举例两种方法:

通过位置管理器跳转到第一个分区

​ 如果你能够像图中在位置管理器中看到第一个分区,可以直接点击该分区跳转到该分区的DBR处

通过搜索结束标志

​ 你可以搜索每个扇区结尾2字节的55 AA(结束标志)来找到分区的DBR,如果55 AA被删除了,就无法通过该方法找到DBR

通过搜索非零

​ 你可以在MBR主引导记录后的空闲扇区中向下搜索!00(非零)找到DBR,在本例题中,你需要进行搜索非零或直接通过导航跳转。

记录DBR的信息

打开记事本,记录DBR的信息,一般的记录格式为:

| 分区类型1| 分区地址 | 分区大小 |

如果该分区是 FAT32 类型,则记录格式为:

| 分区类型 | 分区地址 | 分区大小 | 保留区大小 | FAT表大小 | 每簇扇区数 |

如果该分区是扩展分区2,则记录格式为:

| 分区类型(05) | EBR地址 | 分区类型 | ……(同上)

记录格式只是为了方便分区的恢复与数据的填写,这玩意……怎么顺手怎么来吧。


查看该分区的位置与大小

image.png

如上图,在黄色标记处为该分区的绝对位置,红色标记处为该分区的大小,通过点击4个字节中的第一个字节,可以在数据解释器中看到位置和大小的数据。图中的分区为NTFS分区,其位置的16进制数值为00 08 00 00;其分区大小数值为FF 07 A0 00,换算为Big-Endian为00 00 08 0000 A0 07 FF其值为204810487807

填写数值

将刚刚找到的数值填入记事本(如下图)

image.png

接着,从该分区的 DBR 向后跳转其分区大小10487807即可转到该分区的备份

下图为该分区跳转示意图

image.png

由跳转图我们可以知道,NTFS分区DBR中描述的分区大小不包括NTFS分区的备份,所以最后填写到MBR主引导记录中的分区大小要比记录的大小+1

在第一个分区的备份后即为第二个分区的DBR,重复上述的步骤,得到以下数据。

image.png

  1. 填写MBR

跳转到0扇区后,填写主引导记录中的分区表。

image.png

在填写分区表前,我们需要了解分区表结构:

字节偏移 字段长度 字段名定义
0x01BE 1字节 0x80 引导标志:指明该分区是否为活动分区
0x01BF 1字节 0x20 开始磁头
0x01C2 1字节 0x07 分区类型描述
0x01C6 4字节 0x00008000 分区起始扇区
0x01CA 4字节 0x0C800800 分区大小

实际需要填写的内容为上表中加粗的部分,将记事本中的内容填入分区表。

填完之后的效果:

image.png

Ctrl+S保存后进入计算机管理——存储——磁盘管理中刷新虚拟分区

如果你看到的是图中的效果,那么恭喜你,你成功恢复了这4个分区

image.png

什么是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个扇区到达备份

FATbackup.gif

主分区与扩展分区

主分区

MBR磁盘的分区形式一般有3种:主分区,扩展分区和非DOS分区3。主分区又被称为主DOS分区,目前也称为主磁盘分区。

为了便于用户对磁盘的管理,操作系统引用了分区的概念,即将一块磁盘逻辑划分为几个区域。在分区表的64字节中,以16个字节为一个分区表项来描述一个分区的结构。

一块硬盘中可以有多个主磁盘分区,被激活的主磁盘分区称为活动分区,活动分区在一块分区中只能有一个。

image.png

扩展分区

在了解扩展分区之前,我们先看看MBR中分区表的结构:

image.png

图中加黑部分为MBR主引导记录中的分区表,分区表被分为了4个主分区表项,这就意味着,在MBR分区结构中只能存在4个主分区表项,即4个主分区。那我们如何分出4个以上的分区呢?

使用分区工具DiskGenius的快速分区功能,我们可以看到

image.png

可以看到高级设置中分区的最右方有主分区选项,当我们把分区数目选择为4个分区以上时,再视图将所有分区设置为主分区,可以看到这样的效果

image.png

只能将3个分区分配成主分区,剩下两个分区无法设置成分配为主分区,当我们点击确定后,该磁盘将被分成5个分区

请务必在虚拟磁盘上执行该操作!格式化之前请注意不要格成自己的硬盘,以免造成数据丢失!

格式化后可以在DiskGenius中看到分区情况

image.png

可以看到虚拟磁盘被分为了3个主分区和一个扩展分区,扩展分区内包含了两个分区。

再在Winhex中打开该虚拟磁盘查看它的分区表

image.png

可以观察到扩展分区的标识符是 0F,通过数据解释器可以看出其大小为41,934,848,约为20GB,即为2个分区(L:和J:)的大小。

接下来跳转到扩展分区的位置,查看它的“DBR”

image.png

可以观察到,扩展分区的“DBR”类似于MBR,拥有分区表,里面指向了两个分区。

由此可见,扩展分区严格意义上并不算是一个分区,它的作用仅仅是指向后面的分区。

因此,我们给扩展分区的“DBR”定义了一个专属的名字:EBR(Extended Boot Record)

在扩展分区内的分区也有专属的称呼:逻辑分区

下图为MBR指向扩展分区的流程:

image.png


  1. 0.这里访问本题地址
  2. 1.这里查看(近乎)所有的分区类型标识符
  3. 2.扩展分区仅在MBR结构分区中存在,将在以后的教程讲到。
  4. 3.一般情况为启动盘