Mar*_*nen 4 memory static pointers
我已经通过教程学习 C++ 游戏黑客一两周了,我几乎全部掌握了。然而,有件事却一次又一次地困扰着我。
要自定义一个值(例如玩家的生命值),我们必须使用作弊引擎(或类似引擎)搜索内存地址并将该值设置为其他值。每次我们启动程序时,这些内存地址显然都是不同的,因为它不会总是使用 RAM 中的相同位置。
为了解决这个问题,人们会尝试找到一个指向包含该值的内存地址的静态指针;指针如何是静态的,它们如何从 RAM 中保留静态地址?
实际上,静态的不是指向游戏变量的指针,而是变量地址相对于另一个数据的地址的偏移量。
如果您想要“破解”的游戏始终将数据存储在相同的、可靠的结构中,那么就有可能找到这些偏移量。当您知道偏移量时,游戏开始时您唯一需要做的就是找到偏移量所引用的地址,而不是执行多次扫描 - 每个变量一次。
编辑:
另外,程序很可能在每次运行时都被赋予相同的虚拟地址空间,因此实际上,每次运行程序时,具有静态偏移量的变量看起来都具有相同的地址(进一步阅读此处和那里) 。