上手有趣的CE–alun
文章目录
前言
大家好,今天为大家讲解的是CE修改器,这篇文章可能是几次以来最有趣的一篇文章,同时也是我最费心力的一篇文章(一些修改方式的创新),在本期的讲解中我将以大家童年时喜欢的游戏《植物大战僵尸》为例(以下简称PVZ),带你走进一个别样的世界,见证一个游戏修改软件的诞生,同时共同学习它的制作过程。通过本片的学习,大家可以掌握基础修改器的制作方法。废话不多说,直接进入正片~(视频将在最后的地址中)
1.CE修改器的介绍(附主界面如图一):
CE官网介绍:Cheat
Engine是一款旨在帮助您在没有互联网连接的情况下修改单人游戏的工具,因此您可以根据自己的喜好使其变得更难或更轻松
,还包含其他有用的工具来帮助调试游戏甚至普通的应用程序,并通过让您通过后门检查内存修改来帮助保护您的系统,甚至还提供了一些将它们与常规手段隐藏起来的方法。它带有内存扫描仪,可以快速扫描游戏中使用的变量并允许您对其进行更改,但是它还带有调试器,反汇编器,汇编器,speedhack,培训师,直接3D操作工具,系统检查工具等等。对普通程序员和软件分析师也很有用。
除了这些工具之外,它还提供了广泛的脚本支持,这将使经验丰富的开发人员可以轻松创建自己的应用程序并与他人共享
360介绍:
ce修改器(Cheat
Engine)是一款内存修改编辑工具,ce修改器它允许你修改你的游戏,所以你将总是赢.它包括16进制编辑,反汇编程序,内存查找工具.ce修改器与同类修改工具相比,它具有强大的反汇编功能,且自身附带了wg制作工具,可以用它直接生成
CE事实上在WG(辅助)的制作上很常见,例如cf里一些飞天,透视,不掉血的功能都可以通过ce来实现。
2.本期所需技术掌握:
需要使用的软件:易语言 CE(建议通过上期文章做个大致的了解)
在开始讲解植物大战僵尸辅助制作过程之前,我们先来了解一些基础功能的使用。
3.CE基础知识讲解:
这里只为大家做一些简单的知识讲解,推荐大家看一下后面推送的文章,会更有利于以下内容的学习(https://www.cnblogs.com/LyShark/p/9110250.html)
(1)动态地址的搜索【如图2所示】
我们知道游戏运行过程中都有游戏数据内存发生改变,那么要改变这个数据,我们便需要用CE去进行搜索与修改,我们这里直接用PVZ里的阳光为例(过程参考图2),在开始时阳光的数量为50,那我们先在CE中选择游戏进程(PVZ.exe),进去后在数值搜索处直接搜索50,并点击首次搜索,我们发现出现了800多个信息,这简直无法确定哪个才是真正的值,我们就设法让阳光数值发生改变(种植物或拾取阳光),在改变之后,我们需要再一次搜索改变后的数值(0)(这里需要提示的是记住点的按钮是“再次搜索”,你需要查找上次搜索之后改变的数值)。
我们发现只剩下了一个地址,直接把它移动到下面的框框里面,可以给他的描述处改一个你喜欢的名字。接下来就很简单了,在后面的数值处改上一个你喜欢的数值,就大功告成了!
(某些人:就这?就这?这不是有手就行?)我们其实才刚刚迈出了游戏修改的第一步,因为我们修改的只是游戏的动态地址,这个地址是会变化的(不信可以关掉游戏重新打开再次按照上面的步骤重复一次,看ce里阳光数据的地址是否相同)。
(2)动态地址与基址的区别
在上面的步骤里不能不引发我们的思考,为何地址会发生变化呢?事实上,这与游戏的制作是离不开的,这里我们只要知道这一点就行了。所以要想制作一个随时修改游戏数据的工具,肯定不能让地址“跳来跳去”吧,我们必须要找到的是不变的地址(即基址)
(3)基址的查找从入门到放弃(基址原理见图3)
要找基址当然要知道一些基址的特征吧,我们总不能盲目乱转是吧。在CE的左边的地址栏中我们可以看到以前查看过的地址,而基址是绿色的,动态地址是黑色的,其次基址是有指针偏移的,这些东西有些复杂,一时也说不清楚,我们这边直接操作一下(步骤见【图4】),在第一步的基础上操作,我们直接右键点击11FC1488这个地址,查看是什么改写(注意!)了这个地址,然后让阳光发生改变,看到框中有变化信息,直接查看详细信息即可,看到所示的数据后我们需要记录下一些信息(偏移值1:5560 可能的地址:11FBBF28)。
完成后我们继续搜索这个可能的地址,记住要在搜索框左边HEX处打上对勾(不需要“再次搜索”),因为地址是十六进制的。在这之后我们又会看到60多个地址,这里有个找地址的小技巧,前面地址像00XXXX,或者开头相似的一般都不是,排除过后只会剩下不几个地址,ce会自动把最可能的地址放在第一个,但是大家可以看到没有一个地址是绿色的,这是因为不只是一处偏移。我们直接右键第一个地址,看一下是什么访问(注意!)了这个地址,然后再次查看详细信息,可以确保就是这个地址了,因为我们可以看到mov这个词(移动),再次记录下信息
(偏移值2:768 可能的地址02109DB8)。
直接发起新的搜索,我们就会见证奇迹,o,终于有了四个绿色的地址,再看一下他们的名字(PVZ.EXE)开头,基本就没错了,我们直接把它的地址复制下来(006A9EC0 选择第一个基址试试,可以先把他们移动下来),然后再点击手动添加地址按钮,把刚才那个地址复制进去,然后分别加入第一,第二偏移即可。这样就可以发现基址终于找成功了!重启游戏这个基址也都能用(如视频1所示),动态地址无法使用,但是基址还能使用,只要游戏不更新,那么基址通常是不变的。
如果上述讲解还不够详细,那么大家可以看一下(https://www.xuepojie.com/thread-1870-1-1.html),里面有详细的教程,或直接去B站搜索也会有。
关于基址的寻找我的感悟与总结:
看完上面大家肯定会认为这基址转来转去也太麻烦了吧!我其实也有同感,在看过一个CE大佬视频后其实CE里还有一个指针的查找功能,根据地址搜索这个地址的所有可能的基址,结果我试了一下搜索冷却的基址,第一次搜索直接搜索出来了几亿条数据,然后再重启游戏重启电脑筛查还是有几万个基址,直接给我搜逸豫,但是索性PVZ的阳光基址直接按步比较好找,大家不要慌,只能说要想做成一件事不得不做出点牺牲吧。
(4)走出黑暗,奔向汇编代码(步骤如图5)
在经过上面基址的折磨后我们来放松放松,因为我们终于不用搜基址了,我们直接更改汇编代码(游戏代码)就可以实现下面这些功能,比如阳光不减,种植物阳光增加,冷却加速的种种功能。我们先以阳光不减为例吧,还记得我们讲过的mov那个单词吗?我们直接顺藤摸瓜。还是老方法,先找出阳光的动态地址,然后点击右键查看是什么改写了这个地址,之后种植一棵植物(这里要记住,只能种植物,因为只有种植物阳光才会减少),这时方框里就会出现一行代码,我们直接点显示反汇编程序,找到里面的sub,右键用空指令(NOP)替换掉即可(因为我们后面要写程序,这里就需要记住原来和改变后的字节,直接右键那行代码,有个复制到剪切板,我们只复制字节,同时点击转移地址可以看到代码那一行的地址
地址:41BA74 原来:2F B3 改变后:90 90 ),(效果如视频2所示)。程序编写最后一起讲,我们先来讲一下冷却加速吧!
(5)百尺竿头更进一步
这个或许是这些功能可以说是这些功能里面最爽的吧,但为了做这一个功能我几乎看完了网络上所有教程,要么是找基址,再推出所有植物的冷却基址,要么就是直接高端的HOOK注入。但是一到实践我就"人没了",结果耗费几个小时后我忽然灵光一现,不如尝试一下“阳光不减”的原理,直接改汇编代码,这可以说是很难的一点突破吧。好的,我们还是先要找到冷却的动态地址吧,这个我们就要用到“未知数值”的搜索,大家想想这个冷却值肯定是不断增加或减少的吧?我们直接看下(视频3)就懂了。这里我们直接看向日葵的冷却,看我操作就行了,我们不断筛查,直到最后的五个地址,第一个显然不是,直接把后面四个移动下来,根据数值变化规律大家肯定一下就看出来了:数值不断增加到0时冷却完成,我们还是看一下是什么改写了这个地址,直接 图6,我们还是老方法看add这个反汇编程序,后面的“01”就是速度,我们直接改成78(或者小于78),大于78会改变代码,有点难复原,78也已经足够了,基本上你刚种完冷却就好了,我们来看一下效果(视频4).
(地址48728C 原:83 47 24 78 后:83 47 24 01)
4.枯燥的写代码,编程序环节
CE其实自带有fz制作器,但我还是比较喜欢用易语言,建议不了解的同学可以看看上一期文章。好的,关于fz写法需要引用“超级模块”,我会在最后把所有的文件打包(这里要注意一下,易语言编的软件因为编译器的原因可能会被3X0误报,大家不要害怕)。那么我们直接来看一下(图7)的代码,代码都是中文,后面还配有注释,大家应该都可以大差不差的理解。成品如图8
5.简单总结
经过这一课,大家便可看到fz制作过程中的艰难坎坷,看起来好像是一帆风顺,然而有时前人留下的路倒不总是通的,我们不时要换条路去试试,这部难得的作品也终于完工了,不知道花费了多少心血,引用的资料太多了,我就不列出来了,有些错字什么的请大家不要在意,本期所用的所有资源均会在下面供学习参考。感谢大家的支持,也欢迎讨论与交流!
不知道花费了多少心血,引用的资料太多了,我就不列出来了,有些错字什么的请大家不要在意,本期所用的所有资源均会在下面供学习参考。感谢大家的支持,也欢迎讨论与交流!
本期所有资源:链接:https://pan.baidu.com/s/1xFX2Z8Fnw9K6LeERrwBWpA 提取码:tjww