十六进制编辑器
原始作者:飞翔鸟软体驿站 Rogers
十六进制编辑器?又不能看又不能写文档要它何用!如果你有以上的想法可就大错特错了。本人也不想在此夸大十六进制编辑器的作用,只想问你:“想修改游戏的存盘文件或是可执行文件吗?”如果是的话那你恐怕就必然要接触到十六进制编辑器了。十六进制编辑器很多,下面笔者仅挑几个常见的或是比较不错的介绍给大家。
※鱼与熊掌,他要兼得------
Pctools V5.0
提到十六进制编辑器怎能忘记Pctools呢?它可是笔者以前用得最多的编辑器了。它的最高版本是9.0版,虽然加入了不少好东东,可惜对于我们只想修改十六进制文件的用户来说9M的体积实在太大了。那么4.X版呢?啊,Pctools4.X的块头虽然不大,可惜的是它不支持大硬盘,对于现在1G不算大的硬盘来说它也该退休了。有没有两者兼顾的版本呢?当然有,它就是Pctools
5.0!
下面我就以修改两游戏为例介绍一下Pctools 5.0的使用方法。
例一:修改《大航海时代2》的金钱。
1. 进入Pctools 5.0后按F10找到《大航海时代2》目录中KOUKAI2.DAT文件并按回车键确认;
2. 按E(Edit)进入编辑模式后按F1转换成HEX(十六进制)编辑模式;
3. 按F2修改SECT(即相对扇区Sector,在屏幕上方显示),输入3进入相应相对扇区页;
4. 找到DISP0161至DISP0164(即偏移地址Displacement,在屏幕左侧显示);
5. 按F3将数值修改为FF FF FF(必须为十六进制数);
6.按F5存盘退出即修改完毕(F6为不存盘退出)。
例二:修改《三国志英杰传》获得无限移动力和控制敌将的功能。
1.进入Pctools 5.0编辑MAIN.EXE文件(步骤同例一的第一步);
2.按F(Find)进入查找模式后按F1转换成HEX查找模式;
3.输入74 03 E9 C0后按回车查找;
4.找到后按E进入编辑模式(如要继续查找按G);
5.修改74为EB后存盘退出。
Pctools 5.0的功能其实远不只这些,但是单就修改十六进制编辑文件而言,我想如果你掌握了上面的两个例子,就可以了解用Pctools
5.0修改十六进制的操作了。(这就叫玩以致用^_^)
※别把我Yahe看成“Yahoo!”了——他可比我“杂”多啦!
Yahe是Winsor Computing出品的一个纯十六进制的编辑器。由于是共享软件所以每次进入后会等一段时间,然后按照屏幕左下方的提示按相应的字母进入主界面。由于是专门的十六进制编辑器所以修改起来也许会让初学者摸不着头脑,并且它的数据存放地址的算法也与Pctools有所区别。以往Pctools以相对扇区和偏移地址确定数据存放地,而在此要根据相对扇区数乘以512再加上偏移地址数来确定,并且要注意区分最后的计算结果是十进制还是十六进制(几乎所有的编辑器都无外乎这两种定位方法)。怎么,不明白吗?那就还以上面的例子来说明吧。
例一:修改《大航海时代2》的金钱。
1.进入Yahe找到《大航海时代2》目录中KOUKAI2.DAT文件并按回车键进入编辑模式;
2. 先将SECT0003、DISP0161转换成OFFSET地址,即3×512+161=1697;
3.按F4输入1697转到相应地址(你还可以按ALT+H在十进制或十六进制之间切换);
4.按F3将数值修改为FF FF FF(必须为十六进制数);
5.按ESC后选择存盘后退出。
例二:修改《三国志英杰传》获得无限移动力和控制敌将的功能。
1.进入Yahe编辑MAIN.EXE文件(步骤同例一的第一步);
2.按F5进入查找模式,确定以HEX模式查找等选项;
3. 输入74 03 E9 C0后按回车查找;
4.找到后按F3进入编辑模式(如要继续查找按F6);
5.修改74为EB后按ESC选择存盘退出。
除此之外Yahe还有其它一些功能(如设置书签等),但限于篇幅就不在此赘述了,有兴趣的朋友可以参考软件所附带的帮助文件,如果有条件还可以到http://www.ziplink.net/~dwinsor看看。
※稽查队长 File Hex Fixer
File Hex Fixer(以下简称FH)是一个台湾网友编写的PD(Public Domain)软件。你可以用它查看档案内容,寻找、比较或修改档案中的资料且可记录修改过程,使修改档案的工作更轻松、方便,让你能简单又快速地查看档案。就笔者试用过之后觉得FH的功能的确很强大(本人尤其喜欢它强大的查找功能),但是不可否认的是FH的操作界面还不够亲切,不太容易上手。
FH有以下基本的命令方式:FH <Filename>,如:
FH SAVE.DAT,就可以进入如图所示的编辑界面。然后按F2修改,按F3存盘;
FH <File> [Search Code] [Modify Code] [Sector] [Offset] [Keep] [Modify],查看、找寻、替代指定数据。你可以用“
game”的形式查找字符,还可以使用“?”做通配符,在修改的时候还可以用特殊字
“-”
来忽略对该位置之内容的修改等等。是不是又糊涂了?其实一点也不难。还用第二个例子来说明吧,对于第二个例子来说就应该键入以下命令:“FH
MAIN.EXE 7403E9C0 EB------”,则更改后的结果就应该EB03E9C0。在这里值得注意的是“?”只能用在查找模式而“-”则只能用在修改模式中。
FH <Search file> <Modify file> [Bat/Fix] [Range],它可比对两个文件的变化,并将其变化结果、方法输出至文件。比如说你可以比较游戏的两个存盘文件的变化从而确定出游戏中数据(如金钱)的存放地址等。如FH
SAVE1.DAT SAVE2.DAT D就是比较两个存盘文件的变化并列出。至于如何确认众多变化哪一个是你需要的……这不是一两句话就可以讲清楚的。如果有兴趣的朋友可以自己多钻研一下,总而言之,实践是很重要的。
※我想说 我很亲切 Hex Editor
Hex Editor是一个自由软件(Freeware),它的作用单一就是编辑十六进制。Hex
Editor提供了两种数据定位的方法。你可以通过ALT+D在三种定位方法中选择一个你习惯的定位方法。Hex
Editor在中文环境下还可以显示出中文界面(但似乎对天汇不支持)。Hex
Editor除了支持菜单操作外同时还支持命令行操作,但是其搜索功能等远没有上面提到的File
Hex Fixer强大。比如说它不支持以通配符的方式进行查找,替换方式较单一等。不过总的来说Hex
Editor的操作还是很简单的,特别是在中文环境下的全中文界面对于初学者来说还是很合适的。
※已经等不及了,先提前把我最喜欢的
UltraEdit-32 曝光吧!
UltraEdit-32是我最喜欢的编辑器了,未经注册的UltraEdit-32会在每次启动时提醒你剩余的使用期限。它全面支持Windows95的所有特性(比如说支持长文件名和鼠标右键功能)。另外UltraEdit-32计算地址的方法与Yahe等类似,但是你在计算完之后还要转换成十六进制。
至于如何修改我们还举例一为例。
1.用UltraEdit-32打开《大航海时代2》目录中KOUKAI2.DAT文件;
2.先将SECT0003、DISP0161转换成OFFSET地址,即3×512+161=1697再转换成十六进制数6A1;
3.按工具栏上GO按钮输入“0X06A1”转到相应地址(注意地址应该按0X????的形式输入);
4.将数值修改为FF FF FF(必须为十六进制数);
5.然后选择存盘后退出(UltraEdit-32为了防止你修改有误每次存盘后会生成一个*.BAK的文件)。
再以例二为例:
1.按工具栏上的望远镜按钮,然后输入数据74 03 E9 C0后按回车查找;
2.找到后输入EB 03 E9 C0(如要继续查找,按旁边带箭头的望远镜按钮);
3.存盘退出。
UltraEdit-32除了能编辑十六进制文件以外还能编辑BAT、TXT、INI甚至目前最流行的HTML和JAVA等在内的十种类型的文件。感兴趣的朋友可以到http://www.idmcomp.com和http://www.ultraedit.com下载最新的版本。
※喂,你的衣服 Hex Workshop (For Windows 95)裁好了,想修改游戏的朋友!
Hex Workshop似乎是专门为修改游戏的朋友量身定做的软件一样(个人看法),它的十六进制、十进制和二进制转化器(Base
Convent)和一个十六进制计算器(HEX Calculator),省去了你反复换算的烦恼,而它使用也很简单,你可以很快地掌握查找、编辑这类所有十六进制编辑器都会的事。你甚至可以在一个文件上单击鼠标右键选“Hex
Edit”来进行编辑。Hex Workshop的布局可能会让你十分不习惯,如果是这样的话你可以将“Options\Preference”中的Layout页面中的Group
By设成1Byte。另外如果你不喜欢它默认的十六进制形式显示还可以在工具栏上点D按钮切换到十进制显示(H按钮表示十六进制形式显示)。对于Hex
Workshop的操作相信经过上面众多软件的介绍已经用不着再多说你就可以掌握了(实际操作基本与UltraEdit-32相同)。
后记
由于准备得比较仓促,所以只给大家介绍了5个十六进制编辑器,值得一提的是这5个编辑器除了Pctools在Windows95下使用时要先运行“Lock
C:”这样的命令外其它的软件都可以在Windows95下正常使用(即便如此笔者还是推荐你使用真正的For
Win95的程序)。另外要提醒大家注意的是在修改文档的时候最好将重要的文档先备份起来,以免修改失误而造成不必要的损失。
|