十六进制编辑软件Winhex

Winhex 是一款 Windows 下的十六进制磁盘编辑软件,可以直接从底层访问磁盘,并对磁盘内容进行编辑,而且还可以对内存进行编辑。随着版本的不断升级,功能越来越强大。另外,它的数据恢复功能也不断完善,不仅可以进行基本的数据恢复,还可以重组阵列,对 Raid 进行数据恢复。下面我们就对它进行简单的介绍,为了方便刚接触 Winhex 的读者,我们先以它的汉化版为例进行介绍。但后面的章节中,将以功能更为完善的较新版本的英文版为主要使用对象。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1. 主界面

打开 Winhex ,在“启动中心”界面单击【磁盘编辑器】按钮(有的版本可能会译为“打开磁盘”),或者关闭“启动中心”后在主界面选择“磁盘编辑器”工具按钮,如图 1.14 所示。

 

 

1.14  启动中心

 

在弹出的对话框中选择“物理媒介”中的硬盘,可以打开物理磁盘。这时候, Winhex 将整个物理磁盘的所有扇区内容以十六进制的形式呈现在我们面前。界面中将磁盘按每块 512 字节进行了划分,每块为一个扇区。如图 1.15 所示。

1.15  Winhex 中显示的磁盘扇区

提示:在此,我们插入一个名词介绍——“偏移量”。偏移量,也称为“偏移”。是指某个字节相对于一个指定字节位置的位移,通俗地讲就是“距离”。如图1.16所示,0x<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3C位置处的“60,相对于起始处的“46的偏移量是0x3C;但相对于0x38处的“10,它的偏移量就是0x04

1.16  偏移示意图

我们再回到图1.15,对Winhex的主界面做一个简要的介绍:

u         中间最大的部分为十六进制显示区域,以十六进制的形式显示磁盘中相应位置所存储的内容。

u         右侧的文本字符区域则根据不同的字符码形式显示相应的字符内容。

u         左侧的偏移纵坐标与顶部的偏移横坐标组成一个二维平面坐标,纵坐标的值加上横坐标的值可以唯一地定位十六进制区域内的任意一个位置,这个值即为相应位置的绝对偏移量,也就是相对于磁盘第一个字节――偏移0x00字节处的位移。可以用鼠标点击偏移纵坐标区实现用十六进制和十进制进行偏移量显示的转换。

u         界面左下角的“扇区 1/312581808”表示现在所处的位置是1号扇区,这个磁盘一共有312581808个扇区,编号从0开始直到312581807

u         右侧的“偏移量”会同步地显示指针所点选位置的绝对偏移。

2. 将镜象解释为磁盘

Winhex还支持直接打开一个镜象文件,然后将文件解释成一个磁盘。

步骤1 选择要打开的镜象文件。如图1-17所示,单击图中所示的打开文件工具按钮就可以出现选择文件路径窗口,在窗口中选择要打开的镜象文件就可以将其打开。

1.17  打开文件工具按钮

步骤2 将镜象文件解释为磁盘。文件打开后,单击菜单【专用】|【解释映像文件为磁盘】,便可以达到直接打开一个磁盘一样的效果。如图1.18所示。

1.18  将文件解释为磁盘

 

3. 制作磁盘镜象

WINHEX还可以用来制做扇区级磁盘镜象。“扇区级镜象”不同于我们平时使用ghost软件所做的“镜象”,ghost基于逻辑层面进行镜象,只对文件系统而言存在的数据进行操作。扇区级镜象是一种“完全克隆”的方式,即从物理层面对原盘进行扇区对扇区的复制,从而得到一个与原盘完全相同的副本,包括对文件系统而言没有被使用的空闲区域也一并复制。在本书中,除特殊说明外,“镜象”均指这种扇区级镜象。
步骤1 打开WINHEX,单击工具|【磁盘工具|克隆磁盘,即可弹出“克隆磁盘”设置框,如图1.191.20所示。

 

1.19  克隆磁盘菜单

 

1.20  克隆磁盘设置框

 

步骤2 选择镜象来源。“来源:媒体”是指将要对其进行镜象的来源盘或文件,一般情况下都是对磁盘进行镜象,所以选择左侧的磁盘按钮 <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> ,会弹出“选择磁盘”对话框,可以根据不同情况选择是针对单个逻辑盘做镜象还是对某一物理磁盘进行镜象,如图1.21所示。

1.21 选择来源磁盘

 

步骤3 选择镜象目标。选择好来源盘后,可以选择“目标:原始映象文件”栏中左侧的磁盘按钮进行磁盘对磁盘的克隆,也可以选择右侧的文件按钮 把镜象保存成一个文件。
4. 清除磁盘数据

通过操作系统对磁盘进行格式化、对数据进行删除等操作是无法彻底清除数据的,这也是数据有可能被恢复的原因所在。但有些时候因为各种原因需要将数据进行彻底清除,比如涉密设备转为非涉密设备、办公设备报废等。WINHEX为我们提供了对磁盘数据进行彻底清除的功能,一种是直接销毁文件,另一种是针对磁盘进行底层填充。下面我们就来看一看如何通过底层填充所有字节对一个磁盘的所有数据进行彻底清除操作。
步骤1 选择起始位置。在0扇区的第一个字节上右击,在弹出的快捷菜单中选择【选块开始】,如图1.22所示。

1.22  选块开始

步骤2 选择结束位置。然后拉动滚动条至磁盘的最后一个扇区,在最后一个字节上右击,选择【选块结束】。如图1.23所示。
1.23   选块结束

 
步骤3 设置参数。这时,选块开始与结束之间的部分会用预置的颜色进行显示,表示被选中。在选中的区域内右击,选择【编辑】|【填充选块】。如图1.24所示。

1.24  填充选块

弹出“填充选块”设置框,点选“用十六进制数值填充”(默认),默认使用“00”进行填充,也可以任意指定十六进制数值,还可以选择“用随机字节填充”,这时会使用无规律的数值进行填充。在此,我们在数值框内填入“26”,然后【确定】,如图1.25所示。

1.25  填充选块设置框

步骤4 开始填充。对弹出的所有警告框选择【确定】后,即开始填充,填充后的整个磁盘每个字节都显示为十六进制“26”,这样就达到了对原磁盘上的所有数据进行清除的目的。

提示:通常的数据彻底删除软件只能删除对操作系统而言正常存在的数据,而用Winhex这种清除方法可以清除磁盘中的所有内容,包括未分配空间中的残留数据。

5. 数据解释器

Winhex有一个“数据解释器”的功能,非常实用,可以直接查看十六进制数的十进制值。勾选菜单【查看】|【显示】|【数据解释器】,可以调出一个数据解释器窗口,能够直接对指针点选的十六进制数值进行转换。默认数据存储顺序为little-endian,如果所分析的对象是以big-endian顺序存储的,则可以在数据解释器窗口中右击,然后选择“big-endian”或者“大头位序”即可。如图1.26所示。
 
1.26  数据解释器

 
提示:以上是WINHEX的简单介绍,我们将在后续的学习过程中通过实际应用来陆续介绍它的其它功能。