特定应用程序中的指针地址在不同的计算机上是否相同?

特定应用程序中的指针地址在不同的计算机上是否相同?

您可以使用 Cheat Engine 等应用程序来查找和操作应用程序中的不同值。但是,当您关闭并重新打开应用程序时,以前的地址可能已经更改。这将迫使我找到新地址才能再次操作该值。

如果我在应用程序中找到指向特定位置的指针地址,那么我就能轻松地找到想要更改的另一个地址的值。

据我了解,当我重新启动应用程序时指针地址不会改变。

我的问题是:对于该应用程序来说,我的指针的地址在另一台计算机上是否相同?

如果真是这样,那么 Windows 操作系统,例如 Windows 10 和 Windows 7 是否可以区分?

答案1

如果您使用的是绝对 RAM 地址,那么答案是否定的。操作系统会尝试随机化分配的内存页面,目的就是阻止此类黑客攻击。

如果您使用相对于程序空间起始的相对偏移量,即使用程序寻址使得第一个程序字节位于偏移量零处,那么答案是肯定的,这样的地址在调用和 Windows 版本之间将保持不变。

对于任何加载的 DLL,答案都是“否”,因为出于同样的安全原因,Windows 也会随机化 DLL 加载到的程序空间地址。

对于 Windows 7 及更高版本,答案是相同的。

相关内容