4.1Winhex简介Winhex是X-Ways公司出品的一款十六进制编辑、磁盘编辑软件,其公司网站对其功能介绍如下:*可以对硬盘、软盘、CD-ROM、DVD、ZIP及各种存储卡进行编辑*支持FAT、NTFS、Ext2/3、ReiserFS、Reiser4、UFS、CDFS、UDF等文件系统*可支持重组RAID及动态磁盘*附带数据恢复功能*可以访问物理内存及虚拟内存*内置数据解释器,可以识别解释20种数据类型*可以用数据结构模板查看、编辑结构数据*可以分割与合并文件*可以对文件进行分析与对比*具有灵活的搜索和替换功能*可以对磁盘进行克隆*可对磁盘进行压缩镜像备份,支持对备份文件进行分卷处理*具有编程接口,支持脚本操作*支持256位加密、校验和、CRC32、hash(MD5,SHA-1)计算*支持对磁盘进行数据安全销毁*包含ANSIASCII,IBMASCII,EBCDIC,Unicode字符集*支持文件大小超过4GB4.2软件的获取与安装读者可以在网络上搜索提供下载Winhex的网站,或直接到其公司网站下载试用版或购买正版。Winhex的安装与普通软件安装没有区别,以在WindowsXP下为例,双击Setup.exe程序即可开始安装过程。如图4.1所示。图4.1程序默认的安装路径是C:\ProgramFiles\WinHex,当然也可以自行选择安装到其他位置。可以选择语言种类,不过用以选择中文的Chinese按钮处于灰色不可选状态,应该是尚不支持中文。用户可以选择其它语言,默认语言是英文。确定安装位置无误后,点击OK按钮,程序会弹出一个询问框,询问是否确定将程序安装到所选位置。如图4.2所示。图4.2如果要对安装位置重新选择,可以按“否”按钮回到原界面进行设置。否则按“是”按钮继续安装。程序随即会弹出询问框询问是否要建立快捷方式。如图4.3所示。点击按钮“是”,程序安装完毕后会在“开始”→“所有程序”中添加程序启动快捷方式。图4.3最后,程序提示安装完毕,询问是否运行程序。如图4.4所示。图4.4点击“是”按钮,程序即开始运行。如果不想立即运行程序,可以点击“否”按钮,在使用程序时从开始菜单中启动程序。4.3软件使用4.3.1启动软件以Winhex15.1为例,第一次运行程序,程序会给出一个设置窗(如图5所示),有两个可选项:*Writeprotectionbydefault:设置写保护,即只可以对打开的对象进行查看,不可以进行修改;*Computerforensicsinterface:如果要使用取证界面,则应该勾选项。我们是要使用底层分析及数据恢复功能,所以不需要在这个设置窗中进行任何设置,直接点击OK按钮即可,这样运行的程序默认允许对打开的对象进行读写操作。图4.5程序运行后的界面如图4.6所示。现在还只是一个空的程序主界面,可以在这个界面中选择所需的各种功能。图4.64.3.2打开对象要对一个对象进行底层分析,首先要将其打开。下面我们以打开一个磁盘后的界面来介绍一下Winhex的十六进制编辑窗口。在Winhex主界面中打开一个磁盘可以有三种方式:1.点击工具栏中的按钮。2.按键盘上的F9键。3.点击菜单Tools→OpenDisk,如图4.7所示。图4.7无论使用哪用方法,都会弹出磁盘选择框,如图4.8所示。图4.8在磁盘选择框中,磁盘以两种形式分组,上面的一组是“逻辑磁盘”,下面的一组是“物理”磁盘。我们可以简单地理解“逻辑磁盘”就是我们在“我的电脑”界面中看到的一个个的分区,它们存在于物理磁盘中。打开逻辑磁盘和打开物理磁盘的区别在于:*打开逻辑磁盘时Winhex使用该分区内的文件系统参数遍历整个分区,可以从文件系统层解释分区内的数据;*打开物理磁盘时,Winhex不以任何文件系统为基础,只是简单地将整个磁盘的内容以十六进制的形式展现在我们面前。由于我们目前尚未接触到文件系统知识,所以在此我们不对此进行详细的介绍,在后面学习到文件系统的知识后自然会理解。图4.9可以帮助大家理解一下物理磁盘和逻辑磁盘的关系。图4.94.3.4界面布局现在我们打开物理磁盘中的HD0,并以它为例对打开后的界面进行介绍。请看图4.10。图4.101.菜单栏菜单栏集合了程序提供的所有功能入口。2.案件数据主要用于取证,可以将一个磁盘装入到案件数据框中查看数据、进行取证记录等。这个功能在数据恢复中并不常用,可以通过勾选菜单栏中的View→Show→CaseData选项控制它的显示与否。如图4.11所示。图4.113.目录浏览器根据打开磁盘方式的不同,目录浏览器内显示的内容会有所不同:*打开物理磁盘时,如果有可识别的分区,目录浏览器中会显示各个分区的类型、大小及起始扇区等信息。*打开逻辑磁盘时,如果有可识别的文件系统,目录浏览器中会显示逻辑磁盘中的数据内容,显示效果与在“我的电脑”中打开一个分区后看到的内容相同。是否显示目录浏览器可以通过View→Show→DirectoryBrowser控制。4.数据解释器数据解释器是一个浮动窗口,可以在屏幕窗口中任意拖拽到任何位置。是否显示数据解释器由View→Show→DataInterpreter控制。当鼠标指针位于十六进制区或文本字符区时,数据解释器可以很方便地将鼠标指针当前所处位置的字节(或字符区的字符在十六进制区的对应字节)及向后若干个字节的十六进制数解释成十进制数、八进制数或同步显示十六进制数。可以在数据解释器窗口中右击,在弹出的快捷菜单中进行相应的设置。快捷菜单如图4.12所示。图4.12(1)Options:点击该选项(或在数据解释器窗口左半部分双击)会弹出数据解释设置框(如图4.13所示),可以在设置框中通过多选形式设置要在数据解释器中显示的内容、性质及类型。默认情况下数据解释器将十六进制解释为十进制,如勾选“8bit,signed”会在数据解释器中显示指针所处位置的这一个字节的十进制值,“signed”表示有符号,即数值有正负之分。如果选择了“8bit,unsigned”,数据解释器会将指针当前所在位置的字节解释成无符号的数值,即只将其当做正数。数据解释设置框中还可以设置数据解释的精度,设置解释成各种时间值,设置按Big-Endian顺序解释多字节数值(默认以Little-Endian解释多字节数值)等。图4.13(2)BigEndian:点击该选项会在其前面显示对勾,表示以BigEndian顺序解释多字节数值(同样的设置功能在数据解释设置框中也有,直接将其放入快捷菜单中是为了便于使用)。在选项被勾选的情况下再次点击它,就会重新回到LittleEndian解释状态。(3)Hexadecimal:点击该选项会在其前面显示对勾,表示将数值显示为十六进制(默认解释为十进制)。再次点击它,就会回到解释为十进制状态。(4)Octal:解释为八进制,该选项的使用方法与前两个选项相同。5.工具栏工具栏集合了一些常用功能的快捷图标。是否显示工具栏可以通过View→Show→Toolbar控制。随后我们会对工具栏进行专门的详细介绍。6.对象卡对象卡用于标识当前打开的对象窗口。是否显示对象卡可以通过是否勾选View→Show→TabControl控制。在对象卡上右击会弹出关闭窗口快捷菜单,可通过该菜单关闭当前选项卡标识的对象窗口。7.详细面板详细面板用以显示当前活动窗口对象的详细信息,是否显示详细面板可以通过是否勾选View→Show→DetailsPanel控制。根据打开对象的不同,详细面板显示的内容会有所不同。打开一个物理磁盘时,详细面板会显示该物理磁盘的型号(Model)、序列号(SerialNo)、固件版本(FirmwareRev)、当前编辑模式、当前状态(磁盘内容是否经过修改)、总容量、每扇区字节数、当前位置所属分区号、在分区中的扇区号、当前指针所在区域(十六进制区/文本区)、字符集、偏移坐标表示形式等一系列信息。打开一个逻辑磁盘时,详细面板会显示该逻辑分区在物理磁盘上的分区号、空闲百分比、文件系统类型、编辑模式、状态、当前簇号、当前扇区所属文件、当前扇区物理扇区号、当前扇区逻辑扇区号、分区已用空间、分区空闲空间、总容量、每簇扇区数、空闲簇数、总簇数、每扇区字节数等信息。8.偏移纵坐标与偏移横坐标配合,唯一地标识十六进制区域中每个字节的偏移地址。在偏移纵坐标区内单击,可以使偏移坐标的表示形式在十进制和十六进制间进行转换。9.偏移横坐标与偏移纵坐标配合,唯一地标识十六进制区域中每个字节的偏移地址。10.十六进制区以十六进制形式表示磁盘上的存储内容,是主要的工作区域。11.文本字符区根据选择的字符集,以文本字符形式显示磁盘上的内容。12.当前扇区号/总扇区数显示当前光标所在的的扇区号以及整个磁盘的总扇区数。在该区域单击会弹出“转到扇区”对话框。在该区域右击则会弹出拷贝当前扇区号或总扇区数快捷菜单。如图4.14所示。图4.1413.光标当前位置偏移值及当前字节十进制值标明光标当前位置的偏移值以及由当前字节开始的若干个字节的十进制值。(1)在偏移值部分单击会弹出转到偏移量对话框;在偏移值部分右击会弹出一个快捷菜单,如图4.15所示。图4.15右键快捷菜单中,提供了拷贝光标当前位置偏移量的十进制值和十六进制值的菜单项,还提供了一个相对记录偏移菜单项Relativerecordoffsets,点击该菜单项会弹出设置对话框,如图4.16所示。图4.16*Applydifferentbackgroundcolor:使用不同的背景颜色。勾选该项后,程序会按下面Fistrecordatoffset框中设置的起始偏移位置和Recordsizeinbytes框中设置的间隔记录大小字节数对显示内容使用不同的背景颜色,以便于用户区分。*Relativerecordoffsets:使用相对记录偏移。勾选该项后,程序会以下面Fistrecordatoffset框中设置的起始偏移位置为相对偏移0,该偏移0后的字节偏移都以该偏移0位置为基准。*Fistrecordatoffset:起始偏移位置,十六进制。根据勾选项的不同,做为使用不同背景颜色的起始偏移,或做为相对偏移0的位置。*Recordsizeinbytes:记录大小,十进制。勾选了使用不同背景颜色项后,每隔这个“记录大小”的字节数,交替更换一次背景颜色。(2)在“光标当前位置字节值(十进制)”区域单击,会弹出十进制解释器设置框,如图4.17所示。图4.17十进制解释器设置框用于设置将光标当前所在位置开始的几个字节解释为十进制数值,以及将其做为有符号还是无符号数值进行解释。例如,设置为8bit,unsigned将光标当前所在位置的这一个字节当做无符号数解释为十进制。如果设置为32bit,unsined,则将光标当前所在位置开始的4个字节做为无符号数解释为十进制值。我们进行如下设置:*以偏移0x21字节处为相对偏移0,同时它也做为使用不同背景颜色的起始处,每隔32个字节更换背景颜色;*在十进制解释器中选择“32bit,unsigned”。图4.18为设置后的界面结果,我们可以看到虽然实际上光标的位置并没有移动,但“光标所在位置偏移量”处的值发生了变化,因为现在以0x21字节处为相对偏移0,光标现在恰好处于这个位置,所以它的偏移位置为0。同样,“光标当前位置字节值(十进制)”处的值也发生了变化,因为原来解释器解释的是1个字节,现在解释的是4个字节。图4.18另外,当设置了使用相对记录偏移后,在偏移值区域右击时弹出的快捷菜单中将增加一个“Absoluteoffsets”菜单项(见图4.19),它用于快速将“使用相对记录偏移”重新设置为“使用比对偏移”,即以磁盘的偏移0为偏移基准。图4.19还有一点,选择了使用相对记录偏移后,“当前扇区/总扇区数”部分将变成“当前记录号/总记录数”,单击该区域时也会相应弹出“转到记录”对话框。如图4.20所示。图4.2014.当前选块起/止偏移值及选块大小字节如果选择了选块,会在这个位置显示选块的范围及选块的