跳转至

为什么内存扫描器很重要

了解游戏的状态,是智能地与该游戏交互的前提。但与人类不同,软件无法仅凭观察屏幕上的画面来判断游戏状态。幸运的是,在游戏产生的种种表象之下,计算机内存中保存着游戏状态的纯数值表示——而程序理解数字毫不费力。黑客们用内存扫描器在内存中找到这些数值,然后在自己的程序中读取这些位置的内存,从而了解游戏状态。

举例来说,一个在玩家生命值低于 500 时为其治疗的机器人程序,需要知道如何做两件事:跟踪玩家的当前生命值,以及施放治疗法术。前者需要访问游戏状态,后者则可能只需按下一个按钮。只要知道了玩家生命值的存储位置和读取游戏内存的方法,程序看起来就会像下面这段伪代码:

// 在某个循环中执行
health = readMemory(game, HEALTH_LOCATION)
if (health < 500)
    pressButton(HEAL_BUTTON)

内存扫描器能帮你找到 HEALTH_LOCATION,这样你的软件之后就能替你去查询它。