吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11594|回复: 64
上一主题 下一主题
收起左侧

[调试逆向] 植物大战僵尸CE实现无CD种植

  [复制链接]
跳转到指定楼层
楼主
yycmd 发表于 2021-2-16 00:29 回帖奖励
本帖最后由 yycmd 于 2021-2-16 01:18 编辑

植物大战僵尸第一篇,阳光越用越多https://www.52pojie.cn/thread-1370753-1-1.html
现在这个是第二篇,咱们实现种植无CD

图文关系:图片在上,文字在下,先图后文字!


版本依旧是 1.2.0.1073 版本。




游戏关卡我选择“冒险模式”,关卡1-4。

插曲
上篇我们说让阳光越用越多,方法是教给大家了,大家不觉得有点麻烦吗?每次想让阳光多点都要 搜索总阳光,变动之后再搜索,然后 sub 改 add
于是我为了偷懒,不想每次都去搜索阳光,然后 sub 修改 add 的情况下,学习了大佬 @wapjlover1 的文章,地址在这 :[原创] “植物大战僵尸”阳光基址寻找及外G编写有需要可以去自行学习,在这里先感谢大佬的文章!!!


因为想调试阳光方便,我删除了原来的冒险模式2-7关卡,重新玩到了 冒险模式1-4关卡


于是找到的阳光地址


[[PlantsVsZombies.exe+3794F8] + 868] + 5578
基地址:PlantsVsZombies.exe+3794F8
一级偏移:868
二级偏移:5578
结束



下面开始正题,实现种植植物无CD。



为了方便实现种植无CD,咱们用上面说的基址+偏移修改阳光一步到位,修改为 5000



可以看到 种植之前可以被选择,种植之后就不能被选择了。
理论上应该是有个数据控制植物什么情况下可以选择,什么情况下不能选择,
真实情况是不是这样呢?暂时也不知道,所以先模糊搜索试试,看是不是这么实现的。



模糊搜索CE设置,扫描类型:未知的初始值,数值类型,4字节


我们进行第一次的未知初始值扫描工作。



扫描结果有 100464320个,数据太多CE不进行展示,此时我们要回到游戏中,让游戏进行一些变化,再次进行扫描。


我们对比豌豆射手的冷却条,可以看到冷却条发生了变化,也就是我们让游戏运行了一小段,此时我们要回到CE进行搜索。


将CE的扫描类型从 精确数值 改为 未变动的数值,这个时候有人会很好奇了,为什么豌豆射手的冷却明明动了,却要改为 未变动的数值 。
现在回到刚才分析的理论,植物可不可以选择,由两个状态控制,可以选择或者不可以选择。
虽然豌豆射手不选择可以时间在减少,但是依旧不可以选择,所以这里我们认为数据未发生变动。



改为 未变动的数值 ,点击 再次扫描,出现了很多的结果,这么多结果我们还是不知道哪个是对的,所以要回到游戏让游戏的 豌豆射手状态发生变化。


现在我们可以看到豌豆射手的状态从原来的不能选择,变成了可以选择,所以我们要把CE的扫描类型改为 变动的数值,点击再次扫描 。


扫描之后,数量一下子只剩下一万多条记录了。


我们到游戏里面再种一个豌豆射手,豌豆射手的状态又从 可以选择变成不可以选择,此时豌豆射手的选择状态发生了变化,我们认定数据发生了变动。
刚才已经设置好了 扫描类型为 变动的数值 ,所以我们直接点击 再次扫描 。


点击再次扫描之后,还有六千多条记录了怎么办呢?


这个时候没有好办法了,只能重复上面的操作:
  • 植物状态发生变化,CE设置改为 变动的数值
  • 植物状态没有发生变化,CE设置改为 未变动的数值




经过我们上面的操作,反复多次之后,还有一千多条记录,而且这一千多条记录不管怎么扫描,都不发生变化,这个时候我们就可以看看这一千多条记录中哪些数据比较可疑!


经过记录的粗略查看,发现其他的记录都是多个连续一样的值,但是最后一条,地址为 16FB5940 的数据比较可疑,于是我们将它拉下来,观察一下他的数据变化。


经过观察,豌豆射手可用的时候 16FB5940 地址的数据是 1,豌豆射手不可用的时候 16FB5940 的数据是 256 ,因此我们怀疑这就是控制植物冷却的地址。


于是将 16FB5940 地址的数据修改为 1 并却锁定,回到游戏一直种植豌豆射手也不会产生冷却了。
种植植物无CD就这样实现了,游戏控制植物能不能被选择也确实是 通过控制某个数据来实现的。


现在实现了种植无CD,种植其他的植物发现还是有CD的,这不是坑爹吗?为啥只有豌豆射手是无冷却,而其他的不是无冷却呢?
从上拥有的植物来看,依次是:豌豆射手、向日葵、樱桃炸弹、土豆人。


猜想 拥有的这些植物在内存中是存放在数组里面的,换句话说他们在内存上应该是连续的。
刚才知道了,植物状态不可以被选择是 256,可以被选择是 1,所以我们要在内存上看看是不是有三个 256 存在。


选中记录,右键弹出 功能选择,使用蓝色背景的 浏览内存相关区域 功能,或者使用快捷键 Ctrl + B


在内存浏览窗口的下半部分 随便找个位置进行如下操作:
鼠标右键-->显示类型-->4字节(DEC)
这是将窗口的数据显示类型改为 4字节 十进制方式显示。


在打开的窗口中,刚好有三个 256也刚好对应我们的三个冷却中的植物,但是 这三个 256 到底是不是控制三个植物我们还不清楚,所以先把三个植物的地址依次添加到CE中,修改为 1 并锁定试试。



把 16FB5990 、16FB59E0、 16FB5A30 依次添加到CE并且锁定为 1 ,再去游戏种植之前有冷却的植物,这下也变成了无冷却。


在CE里面我发现这三个地址的间隔好像是连续的,所以我计算了一下,还真是连续的,每个之间歌50个偏移。
所以在我们知道第一个地址之后,就可以计算出第二个、第三个、第四个,甚至更多个植物的冷却控制地址。



在CE里面我们可以这样写地址,根据第一个的地址,计算出第二个、第三个、第四个等等地址,有多个我们就多添加几个地址并锁定为 1 就可以实现无冷却效果。




最后说点题外话,有些坛友让我去给他逆向XXX软件/游戏,十分抱歉,我没回你就是我不会。

如果你真的想找人PJ,你就在论坛发求助帖。



另外我也是个刚开始学习的小白,很多东西我也是边学边发教程。

主要目的是让更多人能够学习汇编的变得快乐,我自己也巩固学习的知识点。

免费评分

参与人数 21吾爱币 +21 热心值 +19 收起 理由
fxing + 1 鼓励转贴优秀软件安全工具和文档!
shanliang + 1 我很赞同!
kill6665 + 1 + 1 谢谢@Thanks!
东江陈奕迅 + 1 + 1 热心回复!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wangwt + 1 + 1 我很赞同!
hdhddjj + 1 + 1 谢谢@Thanks!
xkhx520 + 1 谢谢@Thanks!
hjzhang + 1 逆向和修改游戏难度,天与地,有些论坛网友太想当然了。
saviorvg + 1 + 1 谢谢@Thanks!
fanvalen + 1 + 1 我还以为找倒计时时间呢
Xaedon + 1 + 1 我很赞同!
乡爱 + 1 + 1 热心回复!
涂秋 + 1 热心回复!
wanjuny + 1 谢谢@Thanks!
hack88888888 + 1 + 1 我很赞同!
cxfyg + 1 + 1 用心讨论,共获提升!
柯里昂热 + 1 热心回复!
sdaza + 1 热心回复!
AsuraSong + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
甄姬拔剑 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| yycmd 发表于 2021-2-17 07:33 |楼主
maxism 发表于 2021-2-16 14:58
大佬过年好,很感谢您分享的文章,
自己有一个dll文件想麻烦您分析下,不知道您有没有时间,
https://www ...

十分抱歉,你这个我是搞不定的
推荐
maxism 发表于 2021-2-16 14:58
大佬过年好,很感谢您分享的文章,
自己有一个dll文件想麻烦您分析下,不知道您有没有时间,
https://www.52pojie.cn/thread-1344027-1-1.html


感谢。
沙发
AsuraSong 发表于 2021-2-16 01:03
谢谢楼主分享,刚在steam上买了游戏一打开网页就是这个,真好
3#
netpeng 发表于 2021-2-16 01:11
这谁还敢跟我对战植物大战僵尸呢。神兵在此,谁与争锋。
4#
hdhddjj 发表于 2021-2-16 01:42
感谢 感谢
5#
tbloy 发表于 2021-2-16 02:34
老游戏的新变化,不错。
6#
diantai929 发表于 2021-2-16 07:42
太好了,感谢楼主啊,不错的游戏
7#
孔庆宁 发表于 2021-2-16 08:15
学习了 感谢分享
8#
zt185 发表于 2021-2-16 08:30
学习了,这游戏很经典了!
9#
zkq970413 发表于 2021-2-16 09:17
不错不错,非常感谢
10#
CCQc 发表于 2021-2-16 09:20
作弊也是一个破解情怀^ ^
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 16:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表