从本节课开始我们将进入实战环节,我们将手动分析植物大战僵尸的一些功能的实现并编写辅助,并根据章节的深入一步一步的完善我们的辅助,为啥这里使用植物大战僵尸呢?本来想使用网络游戏的,但涉及到驱动过保护和版权的问题暂时不能够分析,准备分析一些大型单机游戏的后来发现调试起来不太方便,不如就用植物大战僵尸。
这一小关我们将完成植物大战僵尸里面的阳光值的修改,以下实战内容使用了CE基础篇的第1关与第4关的搜索技巧,如果你不是很熟的话,可以去看一下这两关,本关是最简单也是最重要的一关
1.打开游戏进程,并打开CE 选择电脑图标,选择进程,并点击打开。
2.在CE基础篇里面,你已经学会了遍历一些数据,此时我们来搜索这个150,使用4字节搜索即可。
3.让阳光发生变化,并快速的找到阳光地址,将其加入到最下方的内存地址栏中。
完成基础篇CE使用教程的你,相信能快速的找到这个动态地址了。
观察这个地址,会发现这是一个动态地址,即每次游戏重新载入则这个地址都会发生变化,所以我们要继续寻找。
4.继续在这个地址上面,右键选择查找改写的地址,当我们选择查找改写地址的时候,CE就为我们在这个地址上下了一个内存写入断点。
在上面的选项中其实也是可以选择内存访问的,只不过那样的话准确性不是很高,这里我们第一次找基址就选择内存写入吧。
选择了内存写入后,CE并没有出现任何指令,此时我们回到游戏,等待增加阳光,增加后会出现一条汇编指令。
5.点开这条汇编代码,add [eax+5560],ecx 这条指令很明显,就是将ecx的数值,赋值给[eax+5560],一级偏移找到了5560,那么我们继续记下EAX=146C1B60,并再次完成搜索。
6.我们首先关闭上面的那两个窗口,然后在CE中勾选十六进制搜索,继续搜索146C1B60这个内存地址。搜索完后会发现一堆地址,我们并不确定那一个是,所以CE会为我们将最靠谱的地址放在最前面,也就是我们标红的这几个,后面的地址14...这样的地址太多并且是重复的,尽量不要考虑了,总之尽量去寻找前缀不重复的,成功率会大一些,这个要靠经验自己摸索了。
将上面的前4个地址,加入到下方的地址栏中,依次分析。
7.先来搞第一个,001292AC这个内存地址,右键选择内存访问,可以看到很多地址,我们尽量排除,尽量看是不是有给[eax]赋值的指令,且后面有数字的。这里没有
再看一下第二个,我们把mov eax,[esi+00768],我们把768记下来!!
然后,打开这个地址,并记录下esi的地址。此处是 ESI=00FE7E60
此时,关闭上方的两个窗口,我们继续使用CE工具,搜索00FE7E60这个内存地址,好了,我们看到了几个绿色的地址,在CE中,绿色的就是全局地址,也就是基地址,我们下面就来添加这个指针,看一下是不是这几个绿色地址里面的其中一个,这种情况下,只能一个一个的尝试
8.选择第一个绿色的地址,并将其加入到下方地址栏中,右键查看访问地址。
公式: 006A9EC0+768+5560=动态地址
9.用CE添加一个指针确认一下,这里读取到了数据,等于75,回到游戏发现阳光是75说明查找正确了。
如下,游戏中与CE中显示的数值相同。
1.打开易语言创建一个窗口应用,然后添加内存读写模块,内存读写模块已给大家整理好了,下载地址在上面。
2.绘制以下界面,并点击启动窗口。
3.写入以下代码。
4.点击读取,与改写依次测试
5.最后生成作弊器,即可步骤如下。
ok,易语言很强大,后期的所有实战教程都会与易语言和CE打交道。当然用VC++也是可以的,但是没有这个来的方便!
模块的话,可以使用黑羽模块,网上可以查到