CE之植物大战僵尸植物无冷却

思路:先扫描所有的未知道初始化的值,一般是4字节,然后我们先种植一棵植物再通过CE扫描不断变化的值,等植物冷却结束后再去扫描未变化的值,重复操作。然后找到冷却值,然后通过汇编的方式去编写nop代码,让控制时间冷却的代码制空。

具体步骤如下:
1.扫描未知初始值
在这里插入图片描述
2.不断尝试,找到需求修改的值,右键是谁访问了它

在这里插入图片描述
4.一般找move相关的指令,该指令是赋值操作
在这里插入图片描述
5.点击指令,然后点击右边的显示汇编
在这里插入图片描述
6.右键指令,然后选择使用空代替
在这里插入图片描述
然后回到游戏查看,植物是否没有冷却时间了。发现成功了。但是如果你想重启游戏后也可以让他生效,这时候我们可以编写对应的脚本让他去激活。

7.编写制空脚本,点击工具,自动化装配
在这里插入图片描述
8.点击如同的模板
在这里插入图片描述
9.编写替换的脚本

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
7FF97B66DD38:
db 90 90 90
 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
7FF97B66DD38:
mov [rax+44],edi
  • [ENABLE]:这是启用脚本的标记,Cheat Engine 会在启用脚本时执行[ENABLE] 部分的代码。
  • 7FF97B66DD38::这是一个 内存地址,它指定了你要修改的目标内存位置。在这个例子中,7FF97B66DD38
    是一个具体的内存地址,通常表示一个 指令的起始地址。它可能是在某个模块中(比如游戏的可执行文件或 DLL 文件)。
  • db 90 90 90:这条指令表示将内存地址 7FF97B66DD38 处的字节替换为 90 90 90。
  • 90 是 NOP(No Operation) 指令,它表示 不做任何操作。通过将一条指令替换为 NOP,实际上是 禁用了该指令 或者
    跳过了该操作,从而改变程序的行为。
  • 在这里,它的作用是:将原本位于 7FF97B66DD38 地址的指令(无论它是什么)替换为 3 个 NOP
    指令。这意味着该地址上的原始指令不会被执行,程序会跳过这些指令。
  • [DISABLE]:这是禁用脚本的标记,Cheat Engine 会在禁用脚本时执行 [DISABLE] 部分的代码。
  • 7FF97B66DD38::这是和 [ENABLE] 部分一样的内存地址,表示你要恢复的目标位置。
  • mov [rax+44], edi:这条指令是将 edi 寄存器的值存储到 rax + 44
    处的内存位置。也就是说,在禁用脚本时,恢复原本被替换掉的指令。这会让程序重新执行原本的操作。

其中7FF97B66DD38这个地址,你双击指令mov [rax+44], edi,就可以看到。

10.保存,并且每次开启游戏请再CT表中激活。

在这里插入图片描述
点了前面的active才算激活,不知道它为什么点击之后是个红色X,不知道的还以为是禁用。到这里就OK了

### 使用 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) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值