ce游戏逆向修改之植物大战僵尸

一、寻找阳光

第一步:打开ce选择进程植物大战僵尸。
在这里插入图片描述

第二步:初始阳光值为150,输入150,点击首次扫描,显示结果。
在这里插入图片描述

第三步:消耗(或者增加)阳光值,使阳光值产生变化为50,输入50,点击再次扫描,显示结果。
在这里插入图片描述

第四步:单击右键,选择改变该值,进行阳光值的修改。
在这里插入图片描述

二、找出阳光基址

右键单击,阳光内存地址,点击什么访问了该地址。
在这里插入图片描述
找出偏移量,和可能的地址。
在这里插入图片描述

点击新的扫描,勾选16进制,输入可能的地址,首次扫描。
在这里插入图片描述

重复操作,找出绿色的基址,点击手动添加地址。
在这里插入图片描述

点击指针,找出是什么修改了地址。
在这里插入图片描述

三、阳光产出速率

我们首次扫描未变动的初始值,然后我们进行扫描减少的数值,因为阳光产出会有CD
在这里插入图片描述

当阳光发光的时候,生成阳光,我们选择增大的数值,因为她CD增加了
在这里插入图片描述

然后我们再次搜索减少的数值
在这里插入图片描述

最终得到一个阳光产出CD值,我们将它修改0,阳光不断产出
在这里插入图片描述

我们可以找到结构体,很明显,值为我们修改的1000
在这里插入图片描述

经过测试,这个为该第一行第一列的植物的血量,为300

四、无限掉落阳光

下坠的阳光 我们刚出现阳光,搜索未知的初始值,然后我们选择减少的数值
在这里插入图片描述

然后我们搜索减少的数值
在这里插入图片描述

找到了地址16B8EAF8 偏移量 00005538
在这里插入图片描述

再次寻找029CA860 偏移量0768
在这里插入图片描述

修改后为1,成功
在这里插入图片描述

五、自动收集阳光

找到阳光的内存地址。
在这里插入图片描述

点击什么改写了该地址,然后收集一次阳光。
在这里插入图片描述

点击停止,显示反汇编程序,点击调试,设置断点,再次收集阳光。自动汇编,点击模板,选择CT表框架代码,再选择模板代码注入。
在这里插入图片描述

将jne修改为jmp,关闭断点,解放双手,自动收集。
在这里插入图片描述

自动收集+无限掉落
在这里插入图片描述

六、僵尸血量

首先我们让他被打一次,扫描一次减少的数值,
在这里插入图片描述

找到访问之后,
在这里插入图片描述

进行再次查询

七、关卡跳跃

当我们通关后,扫描当前关卡
在这里插入图片描述
在这里插入图片描述

然后我们修改为5,发现退回到5关了
在这里插入图片描述
在这里插入图片描述

跳关,发现计数为1
在这里插入图片描述

偏移量24 我们接着往上找
在这里插入图片描述

然后我们找到基址和偏移

在这里插入图片描述

八、子弹发射

我们选择一个植物,选择第三关
在这里插入图片描述

我们使用变速精灵修改0.1
在这里插入图片描述

然后开始选择未知的初始值,然后子弹发射出去,我们选择减少的数值
在这里插入图片描述

同时 猜测范围应该小于2000
在这里插入图片描述

射出子弹的一瞬间,选择增加的数值

在这里插入图片描述
在这里插入图片描述

改动数值后,子弹不在发射,我们对他进行汇编修改
在这里插入图片描述

点击什么改写了他
在这里插入图片描述在这里插入图片描述

我们查看反汇编
在这里插入图片描述

选择自动注入

在这里插入图片描述

跳转到这里0045f8A9
在这里插入图片描述

在这里插入图片描述

我们把代码修改为-04,射速超快

在这里插入图片描述

九、植物基址

我们假设植物的冷却刷新由0 和 1来决定,那么我们可以进行不间断搜索
在这里插入图片描述

首先确保三个卡槽处于正常状态,我们进行新的扫描,点击豌豆射手,然后进行搜索0
在这里插入图片描述

处于刷新状态,我们修改为0进行查询

在这里插入图片描述
在这里插入图片描述

之后,010101 不间断刷新
我们修改之后,仍有30个无法确认,我们选择寻找一个特殊值
在这里插入图片描述

我们将植物,拿起,放下,发现有改写的东西

在这里插入图片描述
在这里插入图片描述

mov byte ptr [eax+ecx+70],01 也就是他将这个置换为1
EAX 为000000,ecx为108B9398 还有70的偏移量,ecx和70两个偏移量,我们先按下不表
我们去CE中搜索整个地址

在这里插入图片描述
在这里插入图片描述

我们只找到一处地址
我们点击,什么访问了这个地址
点击,放下植物,就会有很多
在这里插入图片描述
在这里插入图片描述

下一个偏移量为00000144 EDI为12aada50
在这里插入图片描述

我们发现有很多,然后我们对他进行逐个查看,看放置植物是否会对他发生改变
在这里插入图片描述

发现有一个特殊的,上面很多都是变化的,我们放置植物刷新后,留下了最新的固定地址
在这里插入图片描述

mov esi,[esi+00000768]
偏移量 00000768
我们再去搜索试试02571130
在这里插入图片描述

我们搜索到四个基址
添加后锁定为1

在这里插入图片描述
在这里插入图片描述

然后我们去寻找第二个基址
同理找到一个70偏移量的植物

在这里插入图片描述
在这里插入图片描述

我们将几个基址进行尝试后,发现只有一个可以得出数值
在这里插入图片描述
在这里插入图片描述

这时候我们发现,找到的,都是原来第一个值的基址,那么到底有什么问题呢?
在这里插入图片描述

原来在这里
在这里插入图片描述

这个eax就是偏移量,就是为了查看植物修改而来的,那么我们增加70+50(这里两个都是16进制)也就是C0的偏移再重新看看
在这里插入图片描述
在这里插入图片描述

那么为什么不能多加一个指针呢?因为加一个指针就跨段了,很明现eax 和70 都在一个ip之中,所以我们不能跨段

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53571321/article/details/122321302