用WinHex抢救丢失的硬盘数据 在DOS时代，我们编辑文件代码用的一般都是PCTOOLS 5.0，可是自从FAT 32出现以来，PCTOOLS 5.0不能用了，就很少优秀的文件编辑器出现过，不过现在笔者向大家介绍的这一款winhex可以说是继前者之后的最优秀的文件编辑器了。 作为一个16进制文件编辑与磁盘编辑软件。WinHex 以文件小、速度快，功能强大而著称。它可以胜任Hex和ASCII码编辑修改，多文件寻替换功能，一般运算及逻辑运算，磁盘磁区编辑（支持 FAT16、FAT32 和 NTFS）自动搜寻编辑，文件比对和分析，编辑内存里面的资料等功能，现在最新的版本是10.5（如图1）。

图1

一、使用方法
首先我们到:http://www.itbook.com.cn去下载一个665KB大小的WINHEX，值得一提的是WINHEX是免费软件，你可以在所有的WINDOWS平台上面运行。安装过程非常简单，成功安装之后，程序图标就会出现在“开始/程序菜单”和桌面上。其界面由标题栏、工具栏、菜单栏、图片浏览区和状态栏组成。下面我们来简要介绍一下：
功能菜单：WINHEX的菜单栏由八个菜单组成，分别是：文件、编辑、查找、位置、工具、选项、文件管理器、窗口和帮助。所有的功能都已经包含在里面了。在文件菜单里面包含的是新建、打开文件和保存以及退出命令，另外还有备份管理、创建备份和载入备份功能。在编辑菜单里面除了复制粘贴之类的常见命令之外还有对数据格式进行转换和修改的功能。查找功能是方便你在文件里面查找特定的文本内容或者是十六进制代码的，支持整数值和浮点数值。位置菜单里面的命令就是让你在编辑大体积的文件的时候能够方便地进行定位，你可以根据其中的偏移地址或者是区块的位置来快速定位。工具菜单里面包括的都是一些十分实用的功能，譬如磁盘编辑工具（类似PCTOOLS里面的DISKEDIT）、文本编辑工具（类似记事本）、计算器、模板管理工具和十进制、十六进制转换器等等。如果你要对WINHEX的功能进行设置，那么就必须进入选项菜单了，里面除了常规选项的设置，还有安全性设置和还原选项设置。在文件管理菜单中，你可以对文件进行分割、比较、复制和剖析，功能十分强大。“工具”选项里面包含的是文件新建、打开、保存、打印、属性工具；剪切、粘贴和复制编辑工具；查找文本和Hex值，替换文本和Hex值；文件定位工具、RAM 编辑器、计算器、区块分析和磁盘编辑工具等等。这些功能除了在菜单里面进行选择之外，还可以通过菜单下面的一列快捷按钮来执行。
修改：在使用 Winhex 时首先打开一个需要处理的文件，窗口中显示十六进制 HEX 格式的数值和地址。在旁边的区域显示文件名称、大小、创建时间、最后修改日期，窗口属性以及相关信息。利用鼠标拖放功能你可以选择一块数值进行修改编辑。按 Ctrl+T，弹出数据修改对话框，选择数据类型和字节变换方式，可以方便的修改区块中的数据。
备份：执行文件菜单中的创建备份命令，弹出备份对话框，你可以指定备份的文件名和路径、备份说明，还可以选择是否自动由备份管理指定文件夹，是否保存检查和摘要，是否压缩备份和加密备份，这样你可以方便的将你的文件进行备份，下次执行文件菜单中的装载备份就可以打开备份文件了，十分方便。
查找功能：Winhex具有强大的查找搜索功能，可以查找和替换文本或 Hex 值。选择搜索菜单中的联合搜索项，弹出搜索对话框，先输入该文件要搜索的十六进制值选择通配符和搜索的范围就可以开始搜索了。你可以选择在整个文件中搜索，也可选择仅在区块中进行有条件的搜索。而且在 Winhex 中可以方便的进行定位操作，快速转到新的位置。执行定位菜单中的标记定位命令，或按 Ctrl＋L，将鼠标指向需要定位的位置，就可以在当前鼠标所在的位置作上标记，不管你操作到什么地方，按组合键 Ctrl+k，就可以返回到标记所在的位置。执行定位菜单中的删除标记命令，可以将所作的标记删除。除了利用标记定位以外，你还可以方便的转到文件的开始和结尾，区块的开始和结尾，行首和行尾以及页首和页尾。
Winhex集成了强大的工具，包括磁盘编辑器，计算器，Hex 转换器和 RAM 编辑工具，使用十分方便。按 F9，弹出磁盘编辑器对话框，首先选择磁盘分区，然后按确定按钮就可以方便的对磁盘的空余空间进行清理。点击工具栏中的 RAM 编辑工具按钮，弹出 RAM 编辑器，选择需要浏览或编辑修改的 RAM 区，选择确定就可以了，RAM 的内容就显示在主窗口了。
在未登记注册的版本中，只能浏览而不能修改编辑 RAM 区域。按 F8，弹出十六进制和十进制转换器，左边栏显示十六进制数字，右边栏显示十进制数字。 如果你在PCTOOLS之后再也没有碰到过称心的十六进制编辑器，那么我推荐你使用WINHEX。下面，我们就来看看怎么用WINHEX抢救被误格的硬盘。
二、用WINHEX抢救被误格的硬盘
由于我是个对磁盘空间过敏的人，每当磁盘空间少到几百兆，就会想办法删掉不用的软件，时间一长，系统会变的千疮百孔，直到有一天实在无法忍受，决定重装系统，麻烦极了。于是想用Guest做个系统镜像，没想到人世间最痛苦的事情发生了。
我有两个物理硬盘，主盘分了两个区，一个C盘，一个E盘，所以把Guest这个软件放到第二个硬盘D盘的根目录下。重起进入DOS进入到软件的画面，不管三七二十一，玩玩再说。好奇的我直接选择第一项功能: To Disk，经过乱七八糟的英文提示后，毅然点了OK 按扭，接下来两个硬盘开始狂响，我突然意识到事情不对，强行重起动后，打开资源管理器，点下D盘，发现已经空白一片了。天哪！我的软件！我的游戏！我的一切！我浑身冒汗，好像做梦一样，早知道......咦，对了！好像WinHex有打开磁盘的功能，只要知道一些文件的开头标记，兴许能恢复一些文件。
幸好WinHex装到C盘上了，启动后选“OpenDisk”打开D盘，在WinHex子窗口的表格内共有三个列，最左边的是偏移值，相当于行号；中间显示的是16进制代码，右边是每组代码对应显示的文字。因为无论是那种格式的文件开头都会有特定的标记，所以只要知道对应的代码就能知到文件的类型。由于我D盘上大部分是RAR压缩格式的文件，所以我先用WinRar创建一个RAR文件，再用WinHex打开，在右边开头显示出Rar!字样(如图2)，对应的16进制的值就是52 61 72 21，一同选种后按 Ctrl+Shift+C 把这串代码复制到剪贴板。

图2

然后切换到刚才打开D盘的窗口，依次选择 “Search/Find Hex Values”，按Ctrl+V或在输入框内点右键选择“粘贴”，确认无误后点OK开始搜索。
因为D盘容量是4GB，所以要经过漫长的等待。为了恢复文件，等他个一二天也值得。好在只用了5分钟的时间，便找到了第一个数值完全相同的一串代码，双击选种开头部分。
说明一下，有些软件在结尾也会有标记，比如ZIP格式，但RAR的结尾没有标记，这并不是件坏事，打个比方，一个RAR文件有300KB大小，如果你选择的数值超过了300KB而达到10M，那么用WinRar压时还可将原内容完整解压出来，只是在后面提示“非预期的压缩包结尾!”，你想一下，不可能多个RAR文件都会按顺序排列，中间可能会加入其它的文件，比如EXE文件，因此如果恢复的是RAR文件，选多点也无所谓，就怕选少了。所以下面我还要按 F3 键继续查找（如图3、图4、图5）。

图3

图4

图5

好在运气不错，硬盘上的RAR文件排列紧密，很快找到了第二个相同的代码串，这回要在代码串的前一个位置点击右键，在弹出的快捷菜单中选择“End of block”，选中区会变成浅兰色，这样就成功的选择住了一个RAR文件。
在此为你提个建议，最好每找到一串代码，就用笔记下它的偏移值，免得误操作后还得从头查找，这将是件非常麻烦的事。
那么怎样把选好的编码提取出来并变成文件呢？很简单，WinHex提供了这项功能，打开菜单上的“Edit”项，指向“Copy Block”，在弹出的子菜单中选择“Into New File”项(如图6)。

图6

在弹出的“Save File As”窗口下方写入建立的文件名，别忘了加上扩展名，比如“noname1.RAR”，点“Save”按扭后，会出现保存文件的进度条，快慢要看这个文件的大小了。待保存完成后，在保存的目录内就会出现刚命名的那个文件，双击用WinRar打开，哈哈！压缩包的文件目录完好，不过不要高兴的过早，解压试试，索性没提示错误，至此，我成功抢救了第一个文件。用同样的方法恢复了部分重要的文件，不过也有一些文件提示损坏，原因就是被Guest重新写入的文件给覆盖掉了。
以后大家遇到类似现象后千万不要着急，首先要做的就是尽量保证不要对硬盘进行写操作，只有这样，你才能把损失降到最小。
（钟瑾瑜）