我正在使用称为作弊引擎的内存编辑应用程序。我将作弊引擎附加到游戏中。在我的游戏中,我有一个称为 HP 的 32 位整数。HP 存储在内存地址 A。如果我重新启动游戏,HP 将存储在新的内存地址 B。似乎使用 Cheat Engine,我可以进行指针扫描并找到一个静态内存地址 C,它指向另一个内存地址及其附带的偏移量 D 和偏移量,因此 [D + offset] 在该会话期间始终存储 HP 的内存地址。因此,如果我取消引用 [D + offset],我总是会得到存储 HP 的内存地址。
这是一个图表:
A 或 B --> 生命值
D + 偏移 --> A 或 B
C --> D
使用偏移量有什么好处?为什么 C 不能直接指向 A 或 B?我熟悉在 C 语言中处理数组时使用偏移量是有益的。这是否意味着每当我看到指针的偏移量时,指针都指向数组中的第一个元素,而偏移量指的是数组中的一个元素?