2024年3月25日发(作者:)

怎么制作游戏修改器,适合初学者

怎么制作游戏修改器

2008-06-21 22:22

游戏修改器制作-黑客入门

工具:SoftICE、金山游侠2002、VC++7.0、PE查看器、SPY++ 测试平台:Window2000

Professional SP2

首先我介绍一下将会用到的工具:

1、 SoftICE(不用多说了吧,我想你应该会用)

2、 金山游侠2002(这个你也应该会用)

3、 VC++7.0(不要求你一定会用,但至少应该会一种编程工具) 4、 PE查看器(你可以随意找一个,没

有也没关系,我会教你用SoftICE查看) 5、 SPY++(VC里的一个查看程序信息的工具,你可以和别的,比

如Delphi和C++Builder的WinSight32)

然后就是你应该会的知识:

1、 汇编基础

2、 一些编程基础,至少应该看懂我介绍的几个API函数

3、 PE文件结构的基础,不会也没关系,我会解释给你

以上几点你都具备了的话我们就可以开始了。

我来介绍一下我要教给你的东西。想必大家都玩过PC游吧,那么也一定用过一些专用的游戏修改器

吧,比如暗黑,红警,大富翁这些经典的游戏都有它们专用的修改器,注意,我说的不是FPE之类的通用

修改工具。

你试没试过用金山游侠修改红警二的金钱,如果有的话你应该知道每玩一次就要改一次,因为这个游戏

是动态分配内存的,每次重新开始都会改变。所以你会选择到网上去下载一个专用的修改器,那么你有没

有想过自己做一上呢,想过,那你为什么不做,什么不会,那就好办了,看了这篇教程你就会了:D费话少说,我

来讲一下原理。

有一些经常修改游的朋友一定会知道,不论游戏中“物品”的内存地址是否是动态的,物品与物品之

间相隔的距离都是不变的,我拿“楚留香新传”为例,我先用金山游侠查找内力值的内存地址,找到的结

果是:79F695C,再查找物品“金创药”的地址是:328D1DC,现在我用79F695C减去328D1DC,得

到:4769780,这个数就是内力值与金创药的偏移值,没看懂,接着看呀,我还没说完呢,现在重新再运行游

戏,查找内力值的地址,得到:798695C再查找金创药得到的地址是:321D1DC,两个值的内存地址都改变

了,但是用你内力值的地址减去金创药的地址得到的结果是什么,没错,还是4769780,也就是说,无论这

两个值的内存地址变成多少,它们之间的距离是永远不变的,不光是这个游戏,一般的游戏都是,

至少我没见过不是的:D

上面讲的东西总结出一个结论,那就是我们只要得到这两个地址中的任何一个,就可以得到另外一

个,只要你知道它们之间的偏移量是多少。 我们第一步要做的就是得到这个地址,但是内存中的地址是动

态改变的,得到也没有用,这里我就教你把它变成静态的,叫它永远都不变~我继续拿“楚留香新传”为

例,如果你有这个游的话就跟我一起做,没有的也没关系,只要看懂这几个步骤就行了。开工~