什么是Cheat Engine?为什么有人用它?
Cheat Engine (简称CE) 本质上是一个开源的内存扫描与十六进制编辑器。它允许你查看和修改正在运行的程序的内存数据。虽然它可以用于多种程序,但它最广为人知的用途是修改单机游戏的数值,例如生命值、魔法值、金钱、物品数量等。
人们使用Cheat Engine的主要原因在于:
- 调整游戏难度: 当游戏过难或希望快速体验游戏内容时,可以通过修改数值来降低难度。
- 实验与探索: 了解游戏内部数据如何存储和变化,满足好奇心。
- 学习调试技巧: CE提供了一些基本的调试功能,可以帮助理解程序运行机制。
- 制作修改工具: 基于CE的功能,可以为特定游戏制作更方便的修改脚本。
需要强调的是,CE主要针对离线单机游戏。用于联网游戏可能触犯游戏的服务条款,导致账号被封禁等严重后果。
从哪里获取Cheat Engine?安全吗?
获取Cheat Engine的官方且推荐渠道是其官方网站。通过官方渠道下载可以最大程度地避免下载到被恶意修改或捆绑了病毒的版本。
官方下载渠道
请访问Cheat Engine的官方网站(通常是 cheatengine.org,但请自行核实当前有效的官方地址)。在下载页面找到最新版本的下载链接。
使用时的安全注意事项
安装包提示: 在安装Cheat Engine时,务必仔细阅读安装过程中的每一个步骤。官方安装包可能会捆绑一些第三方软件(如杀毒软件、浏览器工具条等),请在安装过程中明确选择拒绝或跳过这些附加选项,只安装Cheat Engine本身。
杀毒软件警报: 有些杀毒软件可能会将Cheat Engine标记为潜在不受欢迎的程序 (PUP) 或甚至病毒。这是因为CE的技术特性(修改其他程序的内存)与一些恶意软件的行为类似。如果你是从官方网站下载的,并且在安装时拒绝了所有捆绑软件,那么通常是安全的。你可以选择在运行CE时临时禁用杀毒软件(但请在操作完成后立即重新启用),或者将CE添加到杀毒软件的信任列表。
联网游戏风险: 再次强调,绝对不要在联网游戏中使用Cheat Engine进行作弊。大多数联网游戏都有反作弊机制,可以检测到CE或其他类似的修改工具,一旦被检测到,你的游戏账号很可能会被永久封禁。
Cheat Engine是免费的吗?
是的,Cheat Engine是一款免费的开源软件。你可以免费下载、安装和使用它的所有功能。
安装与基本界面介绍
安装过程提示
下载安装包后双击运行。在安装向导中,留意那些询问是否安装额外软件(如杀毒软件、浏览器插件等)的步骤,一定要选择“Declibe”(拒绝)或取消勾选相应的选项。一直点击“Next”或“Install”,直到安装完成。
主界面概览
打开Cheat Engine后,你会看到一个主窗口,包含了几个关键区域:
- 打开进程按钮: 左上角那个电脑图标按钮,点击它来选择你要修改的游戏进程。
- 数值输入框 (Value): 用于输入你要扫描的数值(如当前的金钱数量)。
- 扫描类型 (Scan Type): 定义如何扫描数值(精确数值、未知初始值、大于、小于、介于之间)。
- 数值类型 (Value Type): 定义数值的数据类型(如4 Bytes、Float、Double)。对于整数,通常使用4 Bytes。
- 首次扫描 (First Scan) / 再次扫描 (Next Scan) 按钮: 开始第一次扫描和后续的扫描。
- 地址列表 (Address List): 左侧的大列表区域,显示扫描到的内存地址和对应的数值。
- 下方列表区域: 你将感兴趣的地址从左侧列表添加到下方,方便查看和修改。
- 内存查看器 (Memory View): 右键点击地址或通过菜单打开,以十六进制形式查看内存内容。
核心操作:寻找并修改数值 (以金钱为例)
这是使用Cheat Engine最常用也最基础的操作。
步骤一:选择目标进程
- 启动你要修改的单机游戏。确保游戏已经运行起来,并且可以正常操作。
- 切换回Cheat Engine窗口。
- 点击Cheat Engine左上角的电脑图标按钮。
- 在弹出的进程列表中,找到你的游戏的可执行文件名称(通常是游戏的英文缩写或全称,以 .exe 结尾)。
- 选中游戏进程,然后点击“Open”或“打开”按钮。
注意: 如果你的游戏有多个进程,有时需要尝试选择主游戏进程。选择错误的进程将无法找到数值。
步骤二:首次扫描已知数值
假设你想修改游戏中的金钱数量。
- 回到游戏中,查看你当前的金钱数值,并记住它。
- 切换回Cheat Engine窗口。
- 在“Value”输入框中,输入你刚才记住的金钱数值。
- 在“Value Type”下拉菜单中,选择合适的数据类型。对于大多数游戏中的金钱、物品数量等整数,通常选择 “4 Bytes”。如果不确定,可以尝试使用“All”或依次尝试其他整数类型(1 Byte, 2 Bytes, 8 Bytes)。
- 在“Scan Type”下拉菜单中,选择 “Exact Value”(精确数值)。
- 点击 “First Scan”(首次扫描) 按钮。
- Cheat Engine会扫描游戏内存中所有与你输入的数值相匹配的地址,并将结果显示在左侧的地址列表区域。
第一次扫描的结果可能会非常多,这是正常的。
步骤三:进行“再次扫描”以缩小范围
由于首次扫描的结果太多,我们需要通过改变数值来排除不相关的地址。
- 回到游戏中,设法让你的金钱数值发生变化。比如,花掉一些钱购买物品,或者通过拾取等方式赚取一些钱。记住新的金钱数值。
- 切换回Cheat Engine窗口。
- 在“Value”输入框中,输入你新的金钱数值。
- 确保“Scan Type”仍然是 “Exact Value”。
- 点击 “Next Scan”(再次扫描) 按钮。
Cheat Engine现在只会在上一次扫描结果中,寻找与新数值相匹配的地址。这样,左侧的地址列表会大大缩短。你需要重复步骤三,每次回到游戏改变数值,然后回来用新的数值进行“再次扫描”,直到左侧列表中的地址数量变得很少(理想情况下只剩一两个)。
步骤四:识别并修改目标地址
当左侧列表只剩下少量地址时,其中很可能就包含了你想要修改的金钱地址。
- 将疑似的地址从左侧列表中双击,它们会被添加到Cheat Engine下方那个较小的列表区域。
- 在下方的列表中,找到你想修改的地址对应的行。
- 双击该行“Value”(数值)列下的数字。
- 弹出一个小窗口,输入你想要的金钱数值(例如 999999)。
- 点击“OK”。
- 回到游戏中,查看你的金钱数值是否已经改变。
冻结数值: 如果你希望金钱数值保持不变(例如,花钱时数值不减少),可以在下方的列表中,勾选对应地址最左侧的“Active”(激活)列的方框。一个红色的“X”表示该地址的数值已被冻结。
小贴士: 有时你可能添加了多个地址到下方列表。回到游戏,让数值再次发生微小变化(比如再花掉一点钱),然后观察下方列表中哪个地址的数值跟着变化了,那个变化了的地址很可能就是正确的地址。
处理未知数值 (如生命条)
有些数值在游戏界面上是以条形图显示,你不知道具体数值是多少(比如生命条、精力条)。这时不能使用“Exact Value”扫描。
- 选择目标进程(步骤一同上)。
- 在“Scan Type”下拉菜单中,选择 “Unknown initial value”(未知初始值)。
- 点击 “First Scan”。第一次扫描会找出所有可能的内存地址,结果会非常多。
- 回到游戏中,设法让未知数值发生变化(例如,让角色受伤,生命条下降)。
- 切换回Cheat Engine,根据数值的变化方向,在“Scan Type”中选择相应的选项:
- 如果数值减少了(如受伤),选择 “Decreased Value”(减少的数值)。
- 如果数值增加了(如回血),选择 “Increased Value”(增加的数值)。
- 如果数值没有变化,选择 “Unchanged Value”(未改变的数值)。
- 如果数值变化了(无论增减),选择 “Changed Value”(改变的数值)。
- 点击 “Next Scan”。
- 重复步骤 4 和 5,让未知数值再次变化,然后根据变化方向选择相应的“Scan Type”进行“再次扫描”,直到地址列表范围缩小。
- 当地址列表较少时,可以将疑似地址添加到下方列表,通过改变其数值并回到游戏观察,来确定哪个是正确的地址。找到后,双击修改数值或勾选“Active”冻结。
其他常用功能简介
速度修改 (Speedhack)
Cheat Engine提供了一个简单的速度修改功能,可以加快或减慢游戏的运行速度。
- 在Cheat Engine主界面右侧或通过菜单找到“Speedhack”选项。
- 勾选“Enable speedhack”复选框。
- 使用滑块调整游戏速度(1.0是正常速度,大于1加快,小于1减慢)。
- 点击“Apply”。
并非所有游戏都兼容速度修改,有些游戏可能会因此出现异常或崩溃。
指针扫描 (Pointer Scan)
有些游戏的数值地址是动态变化的,每次启动游戏地址都会不同。这时就需要使用指针。
指针是一个内存地址,它存储的是另一个内存地址(即目标数值的当前地址)。通过找到一个静态的(每次启动游戏地址都不变)指针,就可以通过这个指针找到动态变化的目标数值地址。
指针扫描是一个更高级的功能,通常在找到目标数值的动态地址后进行。流程大致是:找到当前动态地址 -> 对该地址进行指针扫描 -> 找到指向它的静态指针 -> 通过指针访问数值。这比直接扫描数值要复杂一些,需要对内存结构有基本了解。
代码查找 (Code Finder) / 自动汇编 (Auto Assemble)
这是Cheat Engine更深入的功能,用于查找是什么指令访问(读取或写入)了某个内存地址,甚至可以注入自己的汇编代码来改变程序行为。这对于制作复杂的游戏修改脚本或进行逆向工程研究非常有用,但需要一定的编程和汇编语言基础。
常见问题与故障排除
为什么扫描不到数值?
- 数据类型错误: 你选择的“Value Type”可能不对。尝试不同的整数类型(1、2、4、8 Bytes)或浮点类型(Float、Double)。
- 数值加密: 有些游戏会对关键数值进行加密或进行复杂计算后显示,内存中存储的并不是你直接在屏幕上看到的数值。这需要更高级的技术来处理。
- 动态地址: 如果数值地址是动态的,你可能需要使用指针扫描。
- 游戏有反作弊: 某些单机游戏也有简单的反作弊机制,可能会干扰扫描。
- 进程选择错误: 确保你选择了正确的游戏进程。
修改后数值跳回去了?
- 游戏逻辑覆盖: 游戏自身的代码可能会在下一帧或特定事件发生时,重新写入这个数值。你需要冻结该地址(勾选Active)来阻止游戏修改它。
- 修改了错误的地址: 你可能修改了一个表面上数值相同但并非真正控制游戏属性的地址。需要进一步缩小扫描范围或确定正确的地址。
- 动态地址: 如果地址是动态的,每次游戏逻辑访问它时,实际访问的是不同的地址。你需要找到指向该地址的静态指针,并修改通过指针访问的数值。
游戏崩溃?
- 修改了错误的内存区域: 修改了不属于游戏数据的重要内存区域,导致游戏运行出错。
- 与游戏不兼容: 某些游戏或游戏版本可能与Cheat Engine的某些功能不兼容。
- 尝试了过于激进的操作: 例如在不兼容的游戏上使用速度修改,或尝试注入错误的汇编代码。
使用建议与风险提示
Cheat Engine是一个强大的工具,请仅将其用于学习研究目的或在离线单机游戏中使用。它的核心价值在于让你理解程序内存的工作原理。
绝对不要在任何联网游戏中使用Cheat Engine! 绝大多数联网游戏都严禁使用修改工具,一旦被检测到,轻则警告,重则永久封禁你的游戏账号。这样做不仅会影响你自己,也破坏了其他玩家的游戏体验。
在安装和使用过程中,请务必注意安全提示,尤其是捆绑软件和杀毒软件的警报。
从简单的数值扫描开始,逐步熟悉其功能。遇到问题时,可以查阅官方文档或相关的社区讨论。