跳转至

关键选项

几个 Cheat Engine 的扫描选项通常保持默认值。这些选项如下:

地址必须是 32 位对齐(Addresses must be 32-bits aligned):告诉 Cheat Engine 只扫描 4 的倍数的地址,这能大幅提高扫描速度。正如你在第 4 章将学到的,编译器默认会对齐数据,因此大多数地址本来就是 4 的倍数。你很少需要禁用这个选项。

只查找具有静态地址的路径(Only find paths with a static address):通过阻止 Cheat Engine 搜索以动态起始指针开头的路径来加速扫描。这个选项应该始终启用,因为搜索从另一个

图 1-4 Cheat Engine 指针扫描器扫描选项对话框

动态地址开始的路径可能适得其反。

不包含带只读节点的指针(Don't include pointers with read-only nodes):也应该始终启用。存储易变数据的动态分配内存绝不应是只读的。

找到静态后停止遍历路径(Stop traversing a path when a static has been found):当找到具有静态起始地址的指针路径时终止扫描。应该启用它来减少误报并加速扫描。

指针路径只能在这个区域内(Pointer path may only be inside this region):通常可以保持默认。其他可用选项会通过智能地缩小扫描范围来弥补这个大范围的不足。

指针结构的第一个元素必须指向模块(First element of pointerstruct must point to module):告诉 Cheat Engine 不要搜索找不到虚函数表的堆块,前提是假设游戏是用面向对象方式编码的。虽然这个设置可以极大地加速扫描,但它不可靠,你应始终让它保持禁用。

无循环指针(No looping pointers):使任何指向自身的路径失效,剔除低效路径,但会略微减慢扫描。通常应该启用。

最大层级(Max level):决定指针路径的最大长度。(还记得清单 1-1 示例代码中的 maxDepth 变量吗?)应该保持在 6 或 7 左右。

当然,有时你需要更改上述设置。例如,使用「无循环指针」或「最大层级」设置无法获得可靠结果,通常意味着你要查找的值存在于动态数据结构中,比如链表、二叉树或向量。另一个例子是「找到静态后停止遍历路径」选项,在极少数情况下它会阻止你获得可靠结果。