指针重扫¶
指针扫描器有一个重扫功能,能帮助你消除误报。首先,在结果窗口中按 ctrl-R 打开「重扫指针列表」对话框,如图 1-5 所示。
当你让 Cheat Engine 重扫时,有两个主要选项需要考虑:
只过滤无效指针(Only filter out invalid pointers):如果选中此框①,重扫将只丢弃指向无效内存的指针链,这在你初始结果集非常大时有帮助。取消选中则会过滤掉不能解析到特定地址或数值的路径(如图所示)。
重复重扫直到停止(Repeat rescan until stopped):如果选中此框②,重扫将持续循环执行。理想情况下,你应该启用这个设置,让重扫在制造大量内存熵的同时运行。

对于初始重扫,同时启用「只过滤无效指针」和「重复重扫直到停止」,然后点击「确定」开始重扫。重扫窗口消失,结果窗口出现一个「停止重扫循环」按钮。结果列表会不断被重扫,直到你点击「停止重扫循环」,但在此之前先花几分钟制造内存熵。
在极少数情况下,使用重扫循环可能仍会给你留下大量可能的路径。发生这种情况时,你可能需要重新启动游戏,找到持有该数值的地址(它可能已经变了!),并对这个地址使用重扫功能来进一步缩小结果。在这次扫描中,保持「只过滤无效指针」不被选中,并在「要查找的地址」字段中输入新地址。
注 如果你不得不关闭结果窗口,可以通过转到主 Cheat Engine 窗口并按下结果窗格下方的「内存查看」按钮重新打开它并加载结果列表。这会弹出一个内存转储窗口。窗口出现后,按 ctrl-P 打开指针扫描结果列表,然后按 ctrl-O 打开你保存指针扫描的 .ptr 文件。
如果结果仍然不够窄,尝试在系统重启后甚至在不同系统上运行相同的扫描。如果结果集仍然很大,每个结果都可以安全地视为静态,因为多条指针链可以解析到同一个地址。
一旦缩小了结果集,双击一条可用的指针链把它添加到作弊表。如果你有若干条看似可用的链,选择偏移量最少的那个。如果你发现多条偏移量相同、以同一指针开头但在某点之后分叉的链,你的数据可能存储在动态数据结构中。
这就是 Cheat Engine 指针扫描的全部内容。自己试试吧!