WinHex是由X-Ways软件技术公司(官方网站http://www.x-ways.net)开发的一款专业的磁盘编辑工具,该工具文如其名,是在Windows下运行的十六进制(hex)编辑软件,能够支持Windows XP、Windows 2003、Windows 7、Windows 8等操作系统。

该软件功能非常强大,有着完善的分区管理功能和文件管理功能,能自动分析分区表链和文件簇链,并能以不同的方式进行不同程度的备份,直至克隆整个硬盘。作为一款磁盘编辑软件,具有所有编辑软件所具有的通用功能如查找、替换等,它能够完整地显示和编辑任何一种文件类型的二进制内容(用十六进制方式显示),其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任一扇区,内存编辑器可以直接编辑内存,是非常好用的一款磁盘编辑软件。

本书以WinHex15中文版为例介绍WinHex的用法。因为该软件原版为英文版,中文版都是汉化过来的,汉化中某些词条的翻译不一定很精确,所以英文好的读者还是尽量使用英文版。

WinHex“启动中心”对话框

启动WinHex后首先弹出“启动中心”对话框,如图3-1所示。

WinHex使用方法详解-数据恢复迷

图3-1 WinHex“启动中心”对话框

可以在“启动中心”对话框选择所要打开的项目,包括“打开文件”、“打开磁盘”、“打开RAM(内存)”和“打开文件夹”,也可以直接从“最近打开的数据”中选择所要打开的项目。左边是“方案”和“脚本”选项,“方案”为用户有选择地保留操作成果提供便利条件;“脚本”是一个批处理脚本编辑系统,可以调用WinHex已经开发并集成的各种函数指令进行编程工作。

在“启动中心”对话框中的四个选项中,“打开磁盘”是数据恢复中最常用的一项,选择“打开磁盘”后出现如图3-2所示的对话框。

WinHex使用方法详解-数据恢复迷

图3-2 “编辑 磁盘”选择界面

这里可以选择打开“逻辑驱动器”,也可以选择打开“物理驱动器”。选择打开“物理驱动器”后弹出WinHex的主窗口界面,如图3-3所示。

WinHex使用方法详解-数据恢复迷

图3-3 WinHex主窗口

对WinHex主窗口中各个区域定义如下:

①详细资源面板;

②偏移量的纵坐标;

③偏移量的横坐标;

④菜单栏;

⑤工具栏;

⑥十六进制数据编辑区;

⑦文本区;

⑧底边栏。

WinHex主窗口介绍

详细资源面板

WinHex主窗口的左边是“详细资源面板”,分为6个部分:硬盘参数、状态、容量、当前位置、窗口情况和剪贴板情况。

①硬盘参数。包括硬盘的型号、序列号、固件版本号和接口类型。

②状态。状态为“原始的”。如果对内容进行过修改,这里就会显示“被修改”。此外还有撤销级别(0)、反向撤销(由“n/a”→“键盘输入”)。

③容量。包括总容量,112GB/120 033 041 920字节,每扇区512字节,放弃尾部扇区2990(这里指因为分区粒度的原因导致硬盘最后一个分区之后剩余的扇区)。

④当前位置。包括当前位置之前的分区数、有关的扇区号。

⑤窗口情况。包括当前窗口号、窗口数、模式、字符集设置、偏移地址、每一页的字节数。

⑥剪贴板情况。包括剪贴板状态、临时文件夹可用大小(主要取决于所在分区的空闲空间)。

这些参数对把握整个硬盘的情况非常有帮助,其属性值随打开内容的不同而变化。另外,在其上单击鼠标右键,可将“详细资源面板”与编辑窗口对换位置,或关闭“详细资源面板”。

“访问”功能菜单

编辑窗口的右上角有一个向下的三角形,这就是“访问”功能菜单,如图3-4所示。

WinHex使用方法详解-数据恢复迷

图3-4 WinHex“访问”功能菜单

“访问”功能菜单是恢复分区的最好工具,它把每一个分区按照顺序排成一串。如果分区表有问题,该处也会有一定的反映,而且通过这个菜单可以直接查看分区文件系统类型、打开各个分区、直接转移到各个分区的分区表、开始扇区等,并都有相应模板,可以非常直观地显示分区和启动扇区参数,而且可直接在模板上修改、创建备份。

对于每个区域,软件都提供有右键弹出菜单。如在编辑区单击鼠标右键,会弹出定义选块和编辑菜单,如图3-5所示。

WinHex使用方法详解-数据恢复迷

图3-5 WinHex编辑区的弹出菜单

WinHex的偏移量(Offset)

偏移量(Offset)是指某个地址相对于一个指定的起始地址所发生的位移,也就是“距离”。WinHex的偏移量由横坐标和纵坐标构成,用来具体定位十六进制数据编辑区中每个字节的地址。

偏移量的横坐标和纵坐标中的数值默认为十六进制,如果需要改成十进制,只需在纵坐标处的任意位置单击鼠标左键即可。

WinHex的十六进制数据编辑区

当用WinHex打开一个编辑目标时,编辑目标中存储的所有数据都会以十六进制的形式显示在WinHex的十六进制数据编辑区。编辑区的右侧有滚动条,可以上下拖动,这样就可以方便地查看和编辑这些数据了。

文本区

文本区的作用是将十六进制数据编辑区中的数据按照一定的编码解释为相应的字符。这里的编码种类是可以在菜单中选择的,这个在后面讲解。

底边栏

主窗口的最下边一栏是一些非常有用的辅助信息,图3-3左下角的“0/234439535”是指当前的逻辑扇区号/总扇区数。

“偏移地址”是光标在十六进制数据编辑区中停留处所在字节的偏移地址,后面等号处的数值是该光标处十六进制字节的十进制值。

“选块”后的数据是指在十六进制数据编辑区中所选择的一片数据的起始偏移地址和结束偏移地址;“大小”后的数据是选择的数据块中包含的字节数。

这些区域也都有相应的快捷方式,如单击扇区/总扇区区域的任一地方,都会弹出“跳至扇区”对话框,如图3-6所示。

WinHex使用方法详解-数据恢复迷

图3-6 WinHex“跳至扇区”对话框

单击“偏移地址”区域,会弹出“转到偏移量”对话框,如图3-7所示。

WinHex使用方法详解-数据恢复迷

图3-7 WinHex“转到偏移量”对话框

单击“选块”区域会弹出“定义选块”对话框,如图3-8所示。

WinHex使用方法详解-数据恢复迷

图3-8 WinHex“定义选块”对话框

WinHex工具栏介绍

WinHex工具栏中排列的都是WinHex最常用的一些功能,这些功能也是WinHex的使用基础,我们用大写字母A~Y对应给每一个功能编号,进行一一讲解,如图3-9所示。

WinHex使用方法详解-数据恢复迷

图3-9 WinHex的工具栏

A.“新建”。单击“新建”图标,出现“建立新文件”对话框,如图3-10所示。

WinHex使用方法详解-数据恢复迷

图3-10 “建立新文件”对话框

对话框中提示输入要创建文件的大小,单位可以是字节、KB、MB、GB。如输入512Bytes,单击“OK”按钮就创建了一个以“未命名”为文件名、大小为512个零值字的文件。此时就可以为这些零字节赋予有意义的值,然后另存为文件。

B.打开。单击“打开”图标,出现一个文件选择对话框,如图3-11所示。

WinHex使用方法详解-数据恢复迷

图3-11 文件选择对话框

这时可以选择一个任意文件,然后单击右下角的“打开”按钮,便可以浏览该文件的十六进制编码。打开文件后就可以进行各种修改、查找、替换及销毁工作了。

需要注意的是,普通文件被打开后将不再按照扇区的结构进行显示,而是采用“页面”方式,就无法看到原本扇区之间的分割线。单个页面没有固定大小,纯粹是显示单位。如果打开的是一个原始磁盘镜像文件,按页面浏览就会产生诸多不便,会让分析、定位扇区及解释文件系统等常规工作无法完成,这时就需要将此文件强制按照每512字节/扇区进行处理,WinHex的介质管理器就会视此文件为一个标准磁盘,从而激活许多针对磁盘操作的特殊功能。该功能在菜单栏的“专业工具”→“将镜像文件转换为磁盘”这个选项中,如图3-12所示。

WinHex使用方法详解-数据恢复迷

图3-12 将镜像文件转换为磁盘

C.保存。在WinHex的默认编辑模式,数据修改后不是直接存盘,而是写入临时文件中,编辑好后如果需要存盘,就单击一下“保存”图标即可。

WinHex的编辑模式有三种,分别为只读模式、默认编辑模式、替换模式:在只读模式下不能修改只能查看;在替换模式下,所有的修改即时写入立即生效。

编辑模式可以在菜单栏的“选项”→“编辑模式”这个选项中设置,如图3-13所示。

WinHex使用方法详解-数据恢复迷

图3-13 编辑模式菜单

打开编辑模式菜单后出现如图3-14所示的选框。

WinHex使用方法详解-数据恢复迷

图3-14 编辑模式选框

选中需要的模式后单击“确定”按钮即可生效。

D.文件属性。该功能可以显示指定文件的基本属性,如文件字节大小、创建时间、最后写入时间、最后访问时间等,打开后如图3-15所示。

WinHex使用方法详解-数据恢复迷

图3-15 “文件属性”信息框

E.打开文件夹。这是WinHex的特色功能之一,可以对某一文件夹内某类型的文件进行批量展开,以方便后续的同步、对比、批量修改等工作。

打开此功能后出现如图3-16所示的对话框。

WinHex使用方法详解-数据恢复迷

图3-16 “打开文件夹”对话框

F.撤销。该功能比较好理解,当我们做了某些错误的修改,想更正回来,就可以用到,这与Word软件中的撤销是一个意思,但是已经保存的修改就不能撤销了。

G.复制扇区。该功能是最常用到的选项之一。在数据恢复工作中往往需要选定一定的字节并复制到合适的地方。例如,需要把6号扇区的内容复制到0号扇区,可以先把6号扇区的全部字节选中,选中的方法可以采用拖动鼠标的方式选中整个扇区的字节,也可以采用定义“选块开始”和“选块结尾”的方式选中整个扇区的字节,选中后单击“复制扇区”图标,就可以把选中的信息存入剪贴板中了,以备随后的操作使用这些信息。

H.写入剪贴板。这是指将已经复制到剪贴板中的数据写入目标位置。例如,刚才把6号扇区的全部字节选中后,返回到0号扇区,光标放在该扇区第一个字节处,单击鼠标“写入剪贴板”图标,就可以把6号扇区的信息写入0号扇区了。

I.修改数据。该功能可以改变数据的排列规律,打开此功能后出现如图3-17所示的对话框。

WinHex使用方法详解-数据恢复迷

图3-17 WinHex“修改数据”对话框

“修改数据”功能应用到了逻辑数学的许多知识,具体功能有给单个或批量字节做指定加数(整数,可以是正负值或是16进制数值)的加法、给单个或批量字节做反转位(0~255元素集合内的补码运算)、16位字节交换(每两个字节左右交换位置)、32位字节交换(每四个字节左右交换位置)、XOR运算、OR运算、AND运算、循环左移一位运算、循环右移一位运算、位移运算、ROT13运算和左旋圆运算。

J.查找文本。该功能的主要作用就是搜索、定位操作对象中存在的特定字符串。很多文件系统中的特殊结构及大多数文件,如Office文档、数据库文件等,都是以某种字符串作为起始的,此时只要查找这些字符串就可以在字节的海洋中轻易找到我们需要的结构。

打开“查找文本”出现如图3-18所示的对话框。

WinHex使用方法详解-数据恢复迷

图3-18 “查找文本”对话框

在对话框的最上方是一个文本填写框,用来输入想要搜索的字符。下方都是为搜索任务量身定做的各种条件,用户可以选择搜索目标大小写的匹配要求、两大字符编码(ASCII和UNICODE)类型,可以在搜索表达式中加入一个通配符,可以要求完整语句搜索,可以选择搜索方向或全局搜索,可以在指定范围内为搜索对象确定方位(偏移计算)、可以选择只在选块中搜索,可以在所有打开的窗口中进行搜索,可以给出并保存搜索列表。

其中“条件:偏移计算”这个设置很重要。这里设定得越精确,在搜索中效率越高。这个设置中有两个表框需要我们填写,第一个表框的含义是搜索单元包含的字节数(十进制),第二个表框的含义是搜索的目标字符在搜索单元中的起始偏移量。

例如,在一个硬盘某个扇区的前四个字节处有“file”这四个ASCII的字符,但我们不知道它在哪个扇区,需要去搜索,那么我们把“file”这四个ASCII的字符填入文本填写框,“条件:偏移计算”的第一个表框填写“512”,因为我们需要以扇区为单位搜索,而每个扇区的字节数为512;第二个表框填写“0”,因为搜索目标“file”这四个ASCII的字符开始于扇区的第一个字节处。

K.查找十六进制数值。这与“查找文本”用法非常相似,打开后界面如图3-19所示。

WinHex使用方法详解-数据恢复迷

图3-19 “查找十六进制数值”对话框

L.同步搜索。该功能可以实现多字符串的同时搜索,也就是说它可以同时完成多个搜索任务,打开后界面如图3-20所示。

WinHex使用方法详解-数据恢复迷

图3-20 “同步搜索”对话框

同步搜索的对象目前仅限于文本,文本框用来输入字符串。这里对格式有一定要求,如果要进行多任务搜索,每个任务必须占用独立的一行。此外还可以从外部导入文本文件来定义搜索内容。

M.转到偏移量。这是一个用来定位的跳转工具,用法非常灵活,打开后界面如图3-21所示。

WinHex使用方法详解-数据恢复迷

图3-21 WinHex“转到偏移量”对话框

最上面“新位置”表框填入想跳转的目标位置偏移值,这个值可以是十六进制,也可以是十进制,这里进制的选择跟主窗口的偏移量所用进制保持一致。另外,这个值的单位可以选择字节、字、双字、扇区。

跳转的目标位置可以选择四个起始点,分别为从最开始处、从光标当前所在位置往后跳转、从光标当前所在位置往前跳转、从结尾处往前跳转。

N.跳至扇区。该功能的使用可谓是最多的,打开后界面如图3-22所示。

WinHex使用方法详解-数据恢复迷

图3-22 “跳至扇区”对话框

该功能用于绝对扇区号的跳转,其中的“逻辑扇区”是指LBA地址的扇区号,“物理”则指C/H/S地址。

O.向前。指让光标回到上一步的操作位置处。

P.向后。指让光标回到后一步的操作位置处。

Q.打开磁盘。该功能在WinHex中使用也很多,打开后界面如图3-23所示。

WinHex使用方法详解-数据恢复迷

图3-23 打开磁盘对话框

对话框中可以根据需求选择需要编辑的逻辑磁盘或者物理磁盘。

R.磁盘克隆。该工具可以很方便地将一块硬盘或一个分区克隆到另一个硬盘上或做成镜像文件,如图3-24所示。

WinHex使用方法详解-数据恢复迷

图3-24 “磁盘克隆”对话框

对话框中的来源和目标可以是硬盘、分区或者文件,可以根据实际情况进行选择。克隆时还能够选择完整复制或者自定义扇区进行复制。另外,如果介质中有坏扇区,可以选择跳过的数目,还能定义坏扇区所对应的目标盘中填入的信息值。

S.打开RAM。该功能也就是打开内存,如图3-25所示。

WinHex使用方法详解-数据恢复迷

图3-25 打开RAM对话框

这是一个很强大的功能,它可以对计算机系统当前正在运行的进程进行查看和编辑。

T.计算器。该功能是直接调用操作系统下的计算器工具来进行计算。

U.常规设置。在该选项中可以进行很多基本的设置,如图3-26所示,其含义很明确,这里就不再详细介绍。

WinHex使用方法详解-数据恢复迷

图3-26 “常规设置”对话框

V.减小一列。该功能是把主窗口界面偏移量的横坐标减少一列数值。

W.增大一列。该功能是把主窗口界面偏移量的横坐标增加一列数值。

X.“进行磁盘快照”。磁盘快照是指对整个文件系统做一次完整遍历,从而能够像资源管理器一样列出分区下的目录及文件。WinHex做完磁盘快照的结果如图3-27所示。

WinHex使用方法详解-数据恢复迷

图3-27 磁盘快照的结果

Y.目录浏览器。“目录浏览器”是对“磁盘快照”后所列目录的设置,打开“目录浏览器”功能后的界面如图3-28所示。

WinHex使用方法详解-数据恢复迷

图3-28 “目录浏览器及过滤设置”界面

WinHex菜单栏介绍

WinHex菜单栏介绍中的大多常用功能都集中在工具栏中了,这里再补充几个比较重要而工具栏中没有的功能。

“查看”菜单

“查看”菜单中几个比较重要的功能如图3-29所示。

WinHex使用方法详解-数据恢复迷

图3-29 “查看”菜单

①仅显示文本。当选中该功能时,WinHex将隐藏主窗口的十六进制数据编辑区,而只显示文本区,如图3-30所示。

WinHex使用方法详解-数据恢复迷

图3-30 “仅显示文本”视图

该功能在字符串查看和识别、编辑、编码转换工作时可以有效排除十六进制数值带来的干扰,更加一目了然。

②仅显示十六进制。当选中该功能时,WinHex将隐藏主窗口的文本区,而只显示十六进制数据编辑区,如图3-31所示。

WinHex使用方法详解-数据恢复迷

图3-31 “仅显示十六进制”视图

在分析十六进制数值时选中该功能可以减少文本带来的干扰。

③模板管理器。这是WinHex中对数据恢复工作最有帮助的功能之一,其中提供了对分区表、文件系统中的DBR、目录项、文件记录、超级块等重要结构的解释,非常好用。

打开“模板管理器”后出现如图3-32所示的对话框。

WinHex使用方法详解-数据恢复迷

图3-32 “模板管理器”视图

“模板管理器”中各个模板的使用方法将在本书的后面章节详细讲解。

④同步窗口。该功能可以让多个窗口在主窗口中同时显示,如图3-33所示。

WinHex使用方法详解-数据恢复迷

图3-33 “同步窗口”视图

“同步窗口”后,拖动某一窗口的滚动条,所有窗口都同步滚动。

⑤同步和比较。该功能在“同步窗口”的基础之上增加了对比功能,可以让多个窗口在主窗口中同时显示并且标示出有差异的字节,如图3-34所示。

WinHex使用方法详解-数据恢复迷

图3-34 “同步和比较”视图

“同步和比较”功能在对比分析时非常有用,尤其是在分析RAID时更加有效。

“专业工具”菜单

“专业工具”菜单中几个比较重要的功能如图3-35所示。

WinHex使用方法详解-数据恢复迷

图3-35 “专业工具”菜单

①重组RAID。该功能在恢复RAID数据时非常有用,支持RAID-0和五种RAID-5结构,打开后如图3-36所示。“重组RAID”功能也将在后面的章节详细讲解。

WinHex使用方法详解-数据恢复迷

图3-36 “重组RAID”视图

②收集空余空间信息。该功能是将分区中未被使用的扇区收集起来,执行后WinHex将自动开始分析和收集,如图3-37所示。

WinHex使用方法详解-数据恢复迷

图3-37 “收集空余空间信息”视图

分析完毕后,WinHex会将分析的结果保存为文件。

③收集残余空间信息。“残余空间”是指文件分配的簇中没有用完的字节,“收集残余空间信息”就是把分区中的这些字节收集起来。执行该功能后将有两个选项需要设置,如图3-38和图3-39所示。

WinHex使用方法详解-数据恢复迷 WinHex使用方法详解-数据恢复迷
图3-38 “收集残余空间信息”的设置1 图3-39 “收集残余空间信息”的设置2

设置完后WinHex将自动开始在每个簇中分析和收集,如图3-40所示。

WinHex使用方法详解-数据恢复迷

图3-40 “收集残余空间信息”视图

“收集残余空间信息”功能在电子取证中比较多用。

④高亮显示空余空间。该功能是指把分区中未使用的扇区用更加明亮的方式显示出来,如图3-41所示。

WinHex使用方法详解-数据恢复迷

图3-41 高亮显示空余空间

图3-41中上半部分是正在使用的空间,下半部分比较明亮的是空余空间。

提示

“高亮显示空余空间”功能必须在对分区做完“磁盘快照”后才能生效。

⑤高亮显示残余空间。该功能是指把分区中每个簇里未使用的字节用更加明亮的方式显示出来,如图3-42所示。

WinHex使用方法详解-数据恢复迷

图3-42 高亮显示残余空间

图3-42中下半部分是正在使用的空间,上半部分比较明亮的是残余空间。

提示

“高亮显示残余空间”功能必须在对分区做完“磁盘快照”后才能生效。

WinHex的“数据解释器”

数据解释器是WinHex中非常重要的功能模块,它可以解析多种编码并且进行运算,同时也能对时间进行解释。“数据解释器”功能在“查看”菜单中,如图3-43所示。

WinHex使用方法详解-数据恢复迷

图3-43 “查看”菜单

只要选择“数据解释器”,就会在WinHex主窗口界面出现“数据解释器”的工具框,如图3-44所示。

WinHex使用方法详解-数据恢复迷

图3-44 “数据解释器”工具框

“数据解释器”最常用的功能有两种,一是把十六进制数值换算为十进制数值,二是把时间的十六进制代码解释为标准的时间表示形式。

在使用“数据解释器”时需要注意,不管是对数值还是时间进行解释,都必须把光标放在该字段的第一个字节处,也就是最前面,然后去查看解释器中的结果即可。

另外,在解释数值时,注意数值的存储有Little-endian和Big-endian之分,这两种字节序在前面的章节中讲解过,并且数值还有无符号和带符号之分,这些都需要特别留意。

有关“数据解释器”的设置在“选项”菜单中,如图3-45所示。

WinHex使用方法详解-数据恢复迷

图3-45 “选项”菜单

单击“数据解释器”选项后,出现设置界面,如图3-46所示。

WinHex使用方法详解-数据恢复迷

图3-46 WinHex“数据解释器选项”设置界面

在该界面中根据需要选中相应的选项即可。