ce修改植物大战僵尸之修改阳光值


前言

植物大战僵尸是我们小时候经常玩的一款游戏,现在我们用Cheat Engine也就是ce来修改植物大战僵尸里的一些功能,比如修改阳光值,修改冷却等等,我们这次先修改阳光值,并学会如何找到基址。


修改阳光值

第一步 用ce打开进程列表选择植物大战僵尸打开
在这里插入图片描述
第二步 进入游戏后,初始阳光值为50,我们扫描类型选择精确数值,数值输入50进行首次扫描
在这里插入图片描述
第三步 种植一颗向日葵,阳光值变为0,我们将数值改为0再次扫描
在这里插入图片描述
第四步 我们收集一颗阳光,阳光值变为25,可以发现地址中当前值为25即为我们要找的阳光值地址,我们可以双击地址,通过修改当前值来改变阳光值
在这里插入图片描述因为每次重新打开游戏我们的地址都会发生变化,我们需要通过指针添加地址,这样每次打开游戏我们不需要重新寻找当前地址,所以我们继续寻找植物的基址和偏移量
第五步 右击我们找到的当前阳光值地址,选择“找出是什么访问了这个地址”
在这里插入图片描述
第六步 因为这个是阳光地址,当阳光值发生变化时,以下图片所示内容就会一直增加
在这里插入图片描述
第七步 任意选择一行,点击详细信息,我们可以看见指针数值可能是“13D0D90”,偏移量是“5560”,右击复制“13D0D90”(这里的指针数值不是固定值,直接复制自己找到的就行)
在这里插入图片描述
第八步 返回ce主界面,将Hex打勾,将自己复制的地址粘贴到数值里(我这里是“13D0D90”),点击新的扫描,然后点击首次扫描
在这里插入图片描述
第九步 扫描结束发现地址栏有50个左右的地址,我们发现0263A920地址很特别(前面基本上都是0019开头,后面是060F开头都有很多地址,而0263A920只有这一个地址),所以右击“找出是什么访问了这个地址”
![](https://img-blog.csdnimg.cn/0fd4cbfbafbb44a7b3fa83f73905cd1a.png
第十步 发现这个地址下有很多操作码
在这里插入图片描述
第十一步 任意选择一条操作码,点击详细信息,得到地址“0263A1BB”和偏移量768,复制地址重复上述操作
在这里插入图片描述
第十二步 发现绿色地址就是我们要找的基址,我们双击绿色地址,可以看到其地址为6A9EC0
在这里插入图片描述
第十三步 选择手动添加地址,点击指针,将偏移量和基址写入,点击确定即可完成
在这里插入图片描述


总结

本次修改阳光值算是告一段落了,下一节我会讲一下如何寻找和写脚本实现所有植物的无冷却,汇编我也是刚刚接触,寻找资源过程中发现ce在国内教程还是很少并且不是很完善,对于初学者比较不友好,希望我们可以一起进步。

### 使用 Cheat Engine 修改植物大战僵尸》游戏教程 #### 工具准备 为了能够顺利地使用 Cheat Engine (CE) 对《植物大战僵尸》进行修改,需要准备好 CE 软件本身。可以从官方网站下载并安装最新版本的 Cheat Engine[^2]。 #### 游戏启动与初始化设置 打开《植物大战僵尸》,进入游戏后保持其运行状态。随后启动 Cheat Engine 并通过其中的游戏列表找到正在运行中的《植物大战僵尸》进程,点击“附加到进程”按钮完成连接操作[^1]。 #### 初次数扫描 在游戏内选定一个想要追踪或更改的具体数作为目标对象,比如阳光数量、金钱数额或是某类资源的数量等易于观察变化的数据项。接着,在 Cheat Engine 中输入该初始,并选择对应数据类型(通常先尝试DWORD),执行第一次扫描。由于该游戏较为复杂,初次扫描可能会返回较多匹配地址,如文中提到的2684个结果。 #### 缩小范围筛选有效内存地址 继续在游戏中改变所选项目的实际数(增加或减少),再次回到 Cheat Engine 输入新的数做进一步过滤。重复此过程数次直到剩余少量可能的有效地址为止。期间可以适当调整数据类型的选项来提高准确性。 #### 验证最终候选地址 对于最后留下的几个疑似正确的目标地址逐一测试验证,方法是在游戏中对该变量施加影响后再查看这些地址上的数是否有相应变动。确认无误之后就可以将其保存下来以便后续利用了。 #### 创建表格应用修改功能 当找到了确切的记忆位置后,可以在 Cheat Engine 内创建一个新的表单项目,设定好名称以及期望赋予的新,从而轻松实现一键式的参数篡改效果。这样不仅简化了操作流程而且提高了效率。 ```python # Python伪代码示意如何自动化上述部分步骤(仅作概念展示) def find_address(initial_value, new_values_list): ce = initialize_cheat_engine() first_scan_results = ce.scan_memory_for_value(initial_value) filtered_addresses = first_scan_results for value in new_values_list: filtered_addresses = ce.refine_search(filtered_addresses, value) return verify_and_select_final_address(filtered_addresses) final_address = find_address(sunlight_amount_at_start, [new_sunlight_after_adding_some]) set_new_value(final_address, desired_sunlight_quantity) ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

gallopsec

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

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

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

打赏作者

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

抵扣说明:

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

余额充值