植物大战僵尸:分析植物的攻击速度

文章介绍了如何使用CheatEngine(CE)和OllyDbg(OD)工具,通过搜索游戏内存中的计数器地址,修改植物攻击速度的汇编指令,实现植物大战僵尸游戏中植物攻击加速的效果。具体步骤包括寻找控制攻击的时钟计数器,设置断点,并修改ECX寄存器值以加快攻击频率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

植物大战僵尸中,植物是有攻击速度的,比如每隔一段时间会吐出一些子弹,那么由此可判断吐出子弹应该是由一个计数器控制的,也就是说只要我们能够找到控制植物攻击的时钟并改写它,也就可以实现植物的无限吐子弹。

  • 吐出子弹的遍历技巧:
  • CE附加游戏 -> 手动种下豌豆射手 -> 搜索未知初始化数据(未攻击)
  • 出现僵尸 -> 开始攻击的时候 -> 使用变速精灵或变速齿轮将攻击速度放慢 -> 搜索减少的数值
  • 回到游戏 -> 马上回到CE -> 搜索减少的数值 -> 依次重复进行5-10次左右
  • 等待豌豆射手再次吐出子弹 -> CE直接搜索变大的数值 -> 最后剩下的地址中 数值在(0-1000)以内的就是

1.运行游戏并使用CE直接附加进程,为了方便调试请自行将阳光改为99999,等待僵尸出现后,马上在本行种植一个豌豆射手在豌豆射手没有攻击前,迅速暂停游戏,回到CE搜索未知初始化数据

2.此时回到游戏,然后等待豌豆射手吐出子弹以后,马上暂停游戏(要快),然后回到CE直接搜索减少的数值,这里要立即暂停。

3.接着回到游戏,等待子弹向前推进一点的时候,马上暂停游戏,然后搜索减少的数值,此步骤执行3-5次左右。

4.此时等待植物吐出第二个子弹,然后马上暂停游戏,搜索增加的数值,此时搜索完成以后,你会在结果列表看到14498DB0这个动态地址(你电脑上的值不是这一个),我们直接将其加入到地址列表。

5.此时在14498DB0动态地址上面右键选择,查找是什么改写了这个地址,会看到0045F8A9是一个时钟计数器,而下方的0045F8CA则在每次豌豆射手吐出子弹的时候递增,我们把这两个地址通通记下来。

6.其实上方的两个地址相隔的不是太远,使用哪一个都可以跳转到核心代码处,此处我们就直接查找定时器的地址吧,OD直接附加游戏进程,然后Ctrl + G跳转到0045F8A9,直接在此处下断点,回到游戏豌豆射手攻击时,OD会直接断下,这里经过不断的测试,我已经将其总结并注释在了后方。

我们可以通过修改 mov ecx,dword ptr [esi + 5C]来实现加速植物攻击加速,这里可以将该指令直接改成mov ecx,22即可实现植物攻击加速。

上方的ECX寄存器,经过手工多次测试,22是可修改的最小值,如果将其改为21或者0的话植物则不攻击了。

同样的修改上图中的jnz 0045F935将其改为NOP的话,同样可实现加速,再配合前面学过重叠种植和植物面冷却,既可以实现如下的效果啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微软技术分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值