memory-management - 应用程序怎么可能拥有静态内存地址?

标签 memory-management reverse-engineering memory-editing

我正在使用名为 Cheat Engine 的内存编辑应用程序。我将 Cheat Engine 附加到游戏中。在我的游戏中,我有一个 32 位整数,称为 HP。 HP 存储在内存地址 A 处。如果我重新启动游戏,HP 会存储在新的内存地址 B 处。似乎使用 Cheat Engine,我可以进行指针扫描并找到一个静态内存地址 C,该地址始终存储该 session 期间 HP 的内存地址。因此,如果我取消引用 C,我总是会得到存储 HP 的内存地址。如何始终保证 C 始终具有相同的内存地址?如果另一个应用程序启动并占用该内存区域怎么办?

最佳答案

我不知道您使用的是什么操作系统,但大多数现代操作系统为每个进程使用虚拟内存。每个程序的内存地址可以是相同的。操作系统和计算机将虚拟地址映射到 RAM 中的真实地址。

关于memory-management - 应用程序怎么可能拥有静态内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16174011/

相关文章:

c - Learn C the Hard Way 的 ex17 数据库设计问题

algorithm - 在 0 和 100 亿之间以随机顺序一次选择一个数字

c++ - 如何在Mac上编辑内存地址值?

windows - 偏移指针有什么好处?

memory-management - Rust 结构体上 getter 方法的借用问题

java - redis内存占用

delphi - 二进制序列化文件 - Delphi

c - HexRays - "__OFSUB__()"的用途是什么?

ios - 什么是 ___lldb_unnamed_symbol?

c# - MemorySharp 设置偏移地址不起作用