MENU

DIY一个植物大战僵尸的外挂(一)

June 2, 2020 • Read: 72 • 教程

前言

由于疫情的原因,学校还没有开学在家无聊没事做,研究研究单机游戏外挂的编写,就拿个简单点的单机游戏来下手吧

工具

植物大战僵尸

游戏下载链接: https://pan.baidu.com/s/1sMJvIdJIsORDjDVkwSVZtA 提取码: zzgs

Cheat Engine

汉化版下载地址:https://hongchen.lanzous.com/ibwabva

开工

搜索阳光动态地址

首先打开游戏和CE,点击CE中左上角小电脑选中游戏进程“PlantsVsZombies.exe”
20200603012505.png

可以看到目前的阳光数量是50,我们在CE中输入50,按下首次搜索
20200603012721.png

按下首次搜索之后会出现一大堆搜索结果

20200603012834.png

接着我们回到游戏,收集一次阳光或者种下一棵植物,让阳光的数据发生变化

可以看到种下一颗植物之后,阳光数据变为零,我们切到CE把搜索的数值改为零,然后点击再次搜索

20200603013059.png

这里可以明显看到搜索结果已经变少了,这说明我们离要找的地方很近了
20200603013258.png
然后我们再切回游戏,再让阳光的数据再次变化一下,然后再使用再次搜索

可以看到我们已经成功找到储存阳光的地址了
20200603013549.png

我们双击这个地址,然后在弹出的框中把数值改为999,确定

回到游戏,查看阳光数是不是变成了999,若没有,说明你的操作有误,请重复之前操作
20200603014136.png

当然这里不是我们最终要找的地方,这个是动态地址,下一次启动游戏有可能就不是这个地址了,所以我们要找出它的静态地址

在列表中的地址,右键,选中“找出什么改写了这个地址”
20200603014125.png
20200603014823.png

不要关闭此窗口,回到游戏,种一颗植物或者收集一个阳光,让阳光发生变化

阳光变化后,回到CE,可以发现多出一条记录(我这里是收集了一个阳光,怕不一致的可以照着来)

双击记录,会弹出窗口,记录红框位置的数据 指针0DD898C0, 偏移5560
20200603014922.png

勾选16进制,在搜索框中输入上一步找到的指针,开启新的搜索,我这是0DD898C0(每人都会不一样)
可以看到又搜索出了一大堆结果

20200603015512.png
这里需要自己慢慢找了,使用右键,选中“找出什么访问了这个地址” (注意这里是访问喔)

会出现一堆代码,但是这里你只需找关键的东西

mov  eax,[ecx+....(我这里是768)]

20200603015915.png

双击打开
20200603020206.png
我们知道了 这里的ECX是025F9D08,所以开启新的搜索,搜索:025F9D08
在查找结果中,找绿色的地址,绿色的代表是静态地址
20200603020318.png

可以看到最终的静态地址是 006A9EC0
20200603020522.png

然后我们手动添加一下地址,来验证一下我们找得对不对
20200603020800.png

如果添加完成之后,手动添加地址的数值等于我们之前找到的动态地址的数值,说明地址找对了
20200603021043.png

我们可以点击地址前面的小正方形,让它锁定数值
20200603021121.png

编写外挂

上面我们已经通过CE找到游戏的静态地址了,我们就可以开始编写外挂了
由于技术太菜,只能用易语言来写了,具体代码如下
20200603021444.png
20200603021610.png

源码

此处内容需要评论回复后方可阅读