查看: 150|回复: 2

[转载图文] 植物大战僵尸:分析植物的攻击速度

[复制链接]
发表于 2020-5-26 13:27:37 | 显示全部楼层 |阅读模式
  实验目标:植物大战僵尸中,植物是有攻击速度的,比如每隔一段时间会吐出一些子弹,那么由此可判断吐出子弹应该是由一个计数器控制的,也就是说只要我们能够找到控制植物攻击的时钟并改写它,也就可以实现植物的无限吐子弹。
  
吐出子弹的遍历技巧:
  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】的话,同样可实现加速,再配合前面学过重叠种植和植物面冷却,既可以实现如下的效果啦。

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

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


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046

0

主题

56

帖子

0

精华

中级会员

Rank: 8Rank: 8

学币
94
荣耀
0
rank
0
违规
0

    发表于 2020-5-26 17:04:36 | 显示全部楼层
    大神牛逼,感谢分享
    学逆向论坛-免费的逆向学习论坛
     楼主| 发表于 2020-5-27 00:02:36 来自手机 | 显示全部楼层
    Augus 发表于 2020-5-26 17:04
    大神牛逼,感谢分享

    感谢对论坛的支持…
    学逆向论坛-免费的逆向学习论坛
    微信公众号
    快速回复 返回顶部 返回列表