好的,假设我有一个整数。 当我执行程序时,该整数获取一个地址。
有道理。
但是,那里有很多节目。让我们看一下,在创建任何游戏黑客时,让我们说扫雷,我找到存储数据的地址并进行更改。
但是...那个黑客,那个简单的黑客只是改变了一些地址......适用于每台计算机和每次都。
问题是,数据每次都会获得相同的地址。 在我的电脑上,现在有大约30个exe运行。 其他程序不需要该地址吗?如果他们想要那个地址怎么办?为什么黑客每次都有效?为什么其他程序不想要那个相同的地址?它每次如何工作?
答案 0 :(得分:2)
基本上,您需要阅读virtual memory。虚拟内存的目的是抽象出物理地址空间,并为每个进程(即每个应用程序)提供自己的“虚拟”地址空间,从而避免了您所描述的问题。
答案 1 :(得分:2)
每个应用程序都有自己的虚拟寻址空间(32位计算机上为4GB),以便在多任务操作系统中克服这个问题。
这是一个很好的article,涵盖了这个主题。
您的“黑客”可能正在使用OpenProcess之类的内容定位进程,并使用WriteProcessMemory编辑内存。这就是为什么它适用于“所有”机器。
答案 2 :(得分:1)
如果你的扫雷黑客包含操纵存储在指定静态地址上的数据,那么它就无法在每台计算机上运行。程序内存分配与操作系统有关。