逆向中的游戏-入土为安的第二十五天
逆向中的游戏
CE的介绍
Cheat Engine ,简称CE,是逆向工程师常用的几大神器之一,也是游戏汉化、破解以及外挂编写中常用的工具,其功能包括:内存扫描、十六进制编辑器、调试工具,可以进行反汇编调试、断点跟踪、代码注入等诸多高级功能。它还附带了调试器、反汇编器、汇编器、变速器、作弊器生成、Direct3D操作工具、系统检查工具等。支持 lua 语言,可以实现自己定义的逻辑功能,而不仅仅是简单的锁定数据。也可以在代码注入的同时注入 lua 插件,使游戏进程与 CE 进程进行交互。 CE 的大部分功能都可以通过 lua 来操作。它还支持 D3D Hook 功能,可以在游戏中显示十字准星,也可以绘制功能菜单,同时也可以对 D3D 的调用栈进行跟踪调试。自带变速功能,通过 Hook 游戏相关函数改变游戏速度。自带了一个 Trainer 的功能,可以将自己在 CE 中实现的功能单独生成一个 exe 文件,并可以使用 lua 创建比默认样式更加复杂的窗体或功能。
植物大战僵尸
初出茅庐(改阳光数量,僵尸的生命值,植物的生命值,金币的多少....)
简单的扫描(主要特点有数值变化)
1.打开ce选择进程植物大战僵尸。
2.初始阳光值为500,输入500,点击首次扫描,显示结果
3.消耗(或者增加)阳光值,使阳光值产生变化为,输入50,点击再次扫描,显示结果。
4.单击右键,选择改变该值,进行阳光值的修改。
中流击楫(卡牌无CD,寻找基址)
基址
还要有一点汇编知识
开始游戏!
步骤 1:初始扫描打开 Cheat Engine 并选择游戏进程。选择数据类型:将数据类型设置为 Byte(字节型),因为植物冷却时间使用的是字节型。进行初始搜索:在游戏中,确保豌豆向日葵没有进入冷却状态,搜索值 0。
步骤 2:监测冷却变化种植豌豆向日葵:在游戏中种下豌豆向日葵,冷却时间值开始增加。更改扫描类型:将 Cheat Engine 的扫描类型更改为“变动的数值”或“增加的数值”。持续扫描:点击“返回游戏”后,立即在 Cheat Engine 中点击“再次扫描”按钮。这个过程需要在冷却结束之前快速完成,直到冷却快结束时停止扫描,或者当你发现结果数量变化不大时停止。
步骤 3:冷却恢复扫描等待冷却结束:当豌豆向日葵的冷却时间结束时,值将恢复为 0。精确搜索:将扫描类型改为“精确数值”,输入 0 进行搜索。继续扫描:在此过程中,可以种植除了豌豆向日葵以外的任意植物,继续扫描,直到找到的冷却值变化不再显著。
步骤 4:确认和重复步骤重复步骤:如果找到多个可能的地址,重复第二步和第三步,确认找到记录豌豆向日葵冷却的值。观察到当你种下豌豆向日葵时,冷却值会从 0 迅速增加,直到冷却结束变为 0。
步骤 5:查找修改源右键点击找到的数值,选择“查看是什么改写了该数值”,这会打开一个新窗口,记下这个信息。
步骤 6:定位并显示地址再次种植豌豆向日葵,观察哪些地址被修改的次数最多。右键选择:在找到的地址上右键,选择“在反汇编程序中显示地址”。这时会打开反汇编界面。
步骤 7:查找指令寻找相关指令:在反汇编界面中,注意寻找 mov eax, [edi+24] 等指令,这些指令通常会位于蓝色框下面。
步骤 8:替换指令
使用空指令替换:选中相关指令后,选择用空指令(nop)替换它,并确认。这将禁用该指令,从而实现植物无冷却状态。
步骤 9:完成完成上述步骤后,豌豆向日葵的冷却将被取消,实现无冷却效果。
通过以上步骤,你可以有效地找到并修改植物的冷却时间,使游戏体验更加顺利。
登峰造极(阳光无cd)
步骤 1:打开 Cheat Engine 并选择游戏启动 Cheat Engine,然后点击左上角的“选择进程”按钮。选择《植物大战僵尸》进程,然后点击“打开”。
步骤 2:扫描阳光数值进入游戏中的任意关卡。查看阳光数量,记录下当前阳光数(假设为500)。在 Cheat Engine 中,将数据类型设置为 4 字节。首次扫描 输入阳光的当前数值(500),然后点击“扫描”按钮。
步骤 3:更新并缩小扫描结果种植任意植物,阳光数会发生变化(例如从500变为375)。在 Cheat Engine 中,输入新的阳光数值(375),然后点击“再次扫描”。如果扫描结果仍然很大,继续种植更多植物或收取阳光,使阳光数进一步变化,重复扫描过程。每次扫描后都会有越来越少的匹配地址,直到只剩下少量的结果(最好只有一个)。
步骤 4:找出修改阳光数值的代码右键点击找到的阳光数值地址,选择“找出是什么修改了这个地址”。打开的窗口中,显示的是哪些代码修改了阳光数值。
如果没有值,说明此时阳光数未被修改,这也是正常的。
步骤 5:分析修改记录不要关闭“找出什么修改了这个地址”窗口。再次种植植物,观察窗口中的值。此时,你会看到一系列的代码记录,这些记录是阳光数值发生变化的原因。找到与种植植物相关的记录,通常显示的数值和记录次数(例如,种植植物改写了阳光数的记录次数会增加)。记录左边的数字(如1)表示因为操作(种植植物)而改写了阳光数值。
步骤 6:应用空指令替换右键点击与阳光数变化相关的记录,选择“使用空指令替换”。确认替换,这将用空指令(nop)替换原有指令,达到阳光不消耗的效果。注意:不要重启游戏,否则需要重新执行以上步骤。