前言

我看过太多人因为没有做好数据备份或误操作,而把数据丢失的情况。

比如因为病毒的破坏导致文件丢失、打不开、或者成为乱码。

因为某数字安全卫士修复系统漏洞导致电脑无法启动,修复引导后电脑数据硬盘提示需要初始化。

因为一次重装系统,导致所有数据分区被误格式化为一个系统分区等。

本系列教程将介绍如何使用 Winhex 进行逻辑层面的数据恢复与文件修复。

你可以在 这里 中查看所有例题文件

你可以在 这里 找到该教程的索引

知识点总览

  • Winhex 是什么
  • Winhex 的常用快捷键
  • MBR 主引导记录
  • windows 系统常用的分区简述

Winhex 是什么?

简单来讲,Winhex 是一个 16 进制的窗口型编辑器,它专门用来检查和修复文件、恢复删除文件、硬盘损坏、数码相机卡损坏造成的数据丢失等……

当然,它也能够用来人为损坏文件(笑)

Winhex 的常用快捷键

以下是使用 Winhex 进行数据恢复时常用的快捷键:

快捷键 作用
Ctrl+Shift+N 导出(复制)文件
Ctrl+Alt+X 查找 16 进制数值
Ctrl+F 查找文本
Ctrl+W 关闭当前页面
Ctrl+G 跳至扇区
Ctrl+C 复制
Ctrl+B 粘贴
Ctrl+T 编辑选中内容(异或等)
Alt+Tab 切换窗口(Windows 快捷键)
Alt+G 转到偏移量
Enter 打开启动中心
F3 继续上一次的搜索

MBR 主引导记录

MBR 主引导记录通常在分区的开头(0 扇区处)。其作用为指向分区的 DBR/EBR


MBR 主引导记录主要有以下部分构成

  1. 引导程序

    引导程序占用 MBR 的前 440 字节,其地址在偏移 0~偏移 1B7H 处。

  2. Windows 磁盘签名

    Windows 磁盘标签占用引导程序后的 4 个字节,是 Windows 系统对初始化硬盘写入的一个磁盘标签

    Disk Signature (磁盘签名)

    磁盘签名用于在操作系统上标识磁盘。Windows 要求磁盘在使用之前必须有一个签名。将签名写入磁盘后,该磁盘将显示为基本磁盘。

  3. 分区表

    偏移 1BEH~偏移 1FDH 的 64 字节为硬盘分区表,这是 MBR 分区中非常重要的结构。

  4. 结束标志

    扇区最后的两个字节“55 AA”是 MBR 的结束标志,如果丢失了 55 AA,计算机将无法识别出 MBR

    (这也是最简单的故障)。

  • 只有通过分区表才可以指向所有的分区,分区表由以下值构成
字节偏移 字段长度 字段名定义
0x01BE 1 字节 0x80 引导标志:指明该分区是否为活动分区
0x01BF 1 字节 0x20 开始磁头
0x01C2 1 字节 0x07 分区类型描述
0x01C6 4 字节 0x00008000 分区起始扇区
0x01CA 4 字节 0x0C800800 分区大小

注意:上表中超过 1 字节的数据都是以 BIG-ENDIAN(即从低位到高位)的方式显示,因为 Windows 系统是运行在 x86 架构之上的,所以在实际存储时是按低位到高位存储的,两者表现不同。

LITTLE-ENDIAN(小字节序、低字节序),即低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 与之对应的是:BIG-ENDIAN(大字节序、高字节序) ——百度百科