Cheat Engine 术语表

使用 Cheat Engine、论坛与 Wiki 时常见术语的定义。另见扫描指南指针指南常见问题

地址(Address)

目标进程中的内存位置,通常以十六进制表示(如 0x00401234)。找到数值时,CE 会显示其存储的地址。重启游戏后地址可能变化,因此需要用到指针。

指针(Pointer)

存有另一个地址的数值。指针链是一系列指针(基址 + 偏移)指向最终地址。指针扫描用于找到这些路径,使作弊在游戏重启后仍有效。

AOB(字节数组 Array of Bytes)

游戏代码中的唯一字节序列(如 "8B 45 FC 89 10")。脚本用 AOB 在更新后仍能找到正确的代码注入位置,只要该段代码未变。

首次扫描 / 下次扫描

首次扫描在进程内存中搜索你输入的值。下次扫描根据你在游戏中改变后的新值缩小结果(如掉血、花钱)。

冻结(Freeze)

冻结某地址时,CE 会持续向该地址写入同一数值,使游戏无法修改它(例如冻结血量使其不减少)。

作弊表(.CT)

存储地址、脚本与说明的文件。可将工作保存为 .CT 并分享。.CT 为 XML 格式,可包含 Lua 脚本,因此仅从可信来源打开。

修改器(Trainer)

独立程序(常为 .exe),无需打开 CE 即可对游戏应用修改。CE 可根据作弊表生成修改器。

数值类型(Value Type)

扫描值的数据类型:4 字节、8 字节、Float、Double、字符串等。选错类型会导致结果过多或为零。

未知初始值(Unknown Initial Value)

在不知道具体数字时的扫描选项。选“未知初始值”,在游戏中改变数值后用“数值增加”“数值减少”或“数值变化”。

自动汇编(Auto Assembler)

CE 中向目标进程注入汇编代码的脚本功能。用于修改指令(如使比较恒为真)或注入新代码。常与 AOB 配合以定位注入位置。

Lua

CE 内置脚本语言。Lua 脚本可自动化操作、建自定义窗体、自动附加进程等。论坛上许多扩展用 Lua 编写。

Mono / .NET

Unity 等引擎使用的托管代码运行时。CE 的 Mono 功能可查看游戏中的类与字段并查找对象实例(如玩家血量、背包)。

变速(Speedhack)

CE 内置功能,可加快或减慢目标进程的时间(如 2x)。通过挂钩时间相关 API 实现。并非所有游戏都使用这些 API,故并非处处有效。

附加 / 打开进程(Attach / Open Process)

在 CE 中选择游戏(或其他程序)以便扫描和修改其内存。使用“文件 → 打开进程”并选择正确的 .exe。

Dissect Mono

针对 Mono 游戏的 CE 菜单选项,可列出已加载程序集、类与字段。可找到存玩家数据的类,再在内存中定位实例。

代码注入(Code Injection)

在目标进程中写入或替换代码。自动汇编脚本常注入若干字节(如 NOP 掉某检查)或完整代码洞以运行自己的指令。

偏移(Offset)

加在基址上的数,用于得到另一地址。在指针路径中可见“base+0x10”或“+1C”等,即为偏移。

调试器(Debugger)

CE 内置调试器可设断点、单步执行、查看寄存器。用于逆向与查找数值被读写的代码位置。

反汇编器(Disassembler)

将目标进程的机器码显示为汇编指令。用于理解游戏逻辑以及注入或修改代码的位置。

断点(Breakpoint)

CPU 执行到该处时暂停的位置。CE 用断点实现“查找写入”与“查找访问”,以便看到哪条指令访问了某地址。

NOP

无操作——一条什么都不做的汇编指令。用 NOP 替换某指令可取消其效果(如跳过减少血量的减法)。

代码洞(Code Cave)

进程内存中未使用的空间,可在此注入自己的代码。自动汇编脚本常用代码洞再跳回原代码。

模块 / 基址(Module / Base Address)

已加载的可执行文件或 DLL。其基址即加载到内存的起始地址。指针路径常从模块基址 + 偏移开始,以便在重启后仍有效(在正确配置下有时可应对 ASLR)。

指针扫描(Pointer Scan)

CE 功能,用于找到指向给定地址的指针链。找到数值后运行,会生成路径列表。重启游戏后用“重新扫描指针列表”缩小到仍有效的指针。

查找写入 / 查找访问(Find what writes / Find what accesses)

调试选项:“查找写入”在有代码写入该地址时断下;“查找访问”在读写时断下。用于查看游戏中哪条指令更新或读取该值。

.PTR 文件

存储指针扫描结果的文件。之后加载该文件,再次附加进程后使用“重新扫描指针列表”查看哪些指针仍有效。

IL2CPP

Unity 的构建选项,将 .NET 代码编译为 C++。使用 IL2CPP 的游戏不用 Mono,故“Dissect Mono”无效。这类游戏需用其他工具或方法。

下载