【发布时间】:2014-12-19 22:01:06
【问题描述】:
我一直在研究Cheat Engine,它允许您检查和操作 Windows 上正在运行的进程的内存:您根据变量的值扫描变量,然后您可以修改它们,例如在游戏中作弊。
为了编写机器人或类似的东西,您需要为要更改的变量找到一个静态地址 - 即,如果进程重新启动,该地址保持不变。其方法大致如下:
- 寻找你感兴趣的变量的地址,按值搜索
- 使用该地址查找代码,例如找到它所属的结构的地址(因为结构偏移是固定的)
- 寻找另一个指向该指针的指针,直到找到具有静态地址的指针(在作弊引擎中显示为绿色)
从我看过的教程来看,它似乎工作得很好,但我无法理解为什么它工作。
不是所有变量(包括全局静态变量)在运行时都获得相当随机的地址吗?
额外问题:
- 作弊引擎如何判断地址是否为静态(即重启时保持不变)?
- 一个教程提到了许多旧游戏和一些现代游戏(例如使命召唤 4)仅使用静态地址这一事实。这怎么可能?
【问题讨论】:
标签: windows memory memory-management operating-system