如何使用CE制作游戏修改器的方法——实战讲解
很多人对CE的使用方法一直不太了解,今天小编就实战讲解一下,发现这个游戏纯属巧合,本人制作这款教程,目的只是为了让大家能够跟好的了解CE的使用方法,费话不说了,准备开始。
操作方法
- 01
此修改器的目的是要实现修改阳光值(如上图中的数值:1950),因此要找出游戏中存放“阳光”的内存地址,然后使用API函数WriteProcessMemory进行内存修改,但是每次运行游戏时这个内存地址都会不一样,所以要找出基址,我使用的工具是Cheat Engine 5.4简体中文版(以下简称CE),步骤如下:
- 02
1、打开游戏并运行在窗口模式,再打开CE,点击左上角电脑图标->选中进程->确定,如下图:
- 03
2、在数值框中输入当前阳光数50,点击首次扫描,切换到游戏中种一棵向日葵,使阳光数变成0,再切换回CE,在数值框中输入0,点击再次扫描,将会搜索到一个结果,如下图所示:
- 04
3、双击此地址添加到下方的地址列表中,在列表中双击“数值”下面对应的内容可以修改此内存值;我们将值改成1000试试看,如下图:
- 05
4、再看看游戏中的值,修改成功了,内存地址“0CD29FB8”就是存放阳光的地址,我们可以随意的修改此内存中的数值。但是此地址是动态的,下次运行游戏时它存放的肯定就不是阳光了,我们要继续查找不会变的静态地址,看下一步。
- 06
5、在此地址上点右键->查找写入该地址的代码,会看到一个对话框“下列代码更改选择的地址”,里面是空白的切换回游戏,随便种一棵植物(目的是让阳光变少,好找出哪些代码修改了此内存);再回到CE,会看到刚才的空白对话框中已经有内容了,双击或点“更多信息”出现下图内容;(注意看红色汇编代码 :mov 是传送指令,把esi的值传送到EDI+5560,ESI的值是16进制的320,等于10进制的800,恰好就是阳光值,而EDI指向的地址0CD24A58偏移加5560刚好等于0CD9FB8,此地址保存着当前阳光值,很显然这就是改变内存的赋值代码了,红色代码上面那行,很显然就是减法运算。记住EDI的值“0CD24A58“)
- 07
6、将上面的搜索框前的16进制勾选上—>将EDI的值填进去—>首次扫描,如下图所示;(搜索出一堆地址,刚开始时我也是毫无头绪,搜索了几次都发现有这个值“010D84E0”,以为这个就是基址了,其实不是的,但这个值是怎么来的呢?我们继续下一步。)
- 08
7、将上一步搜索出的值添加到地址列表—>右键—>查找所有访问此地址的代码,稍等一下就出一大堆代码出来了,如下图:
- 09
8、双击第一个mov 指令查看更多信息如下图:(原来ESI的值是EDI+768得来的,EDI的值是010D7D78)
- 10
9、我们得到了EDI的值是010D7D78,然后,回到CE界面继续搜索010D7D78。如下图:(大功告成,查找到了绿色内存地址,绿色内存地址表明该地址在游戏中是静态的,它就是我们要找的基址了。)
- 11
10、下面我们试着把这些内存地址连接起来,内存地址006a9ec0(值为010D7D78)+偏移 768 = 010D84E0,地址010D84E0(值为0CD24A58)+偏移5560=0CD9FB8(此地址就是我们第二步搜索出来的阳光地址)好了,我们用CE测试一下是否正确,如下图,手动填加地址进行测试如下图:
- 12
11、结果完全正确,最终地址指向的内存值为800,有了内存基址,现在我们就可以写程序了,相对于找基址,写代码就简单得多。这里就不详细介绍了。最终结果如下图: