【发布时间】:2018-04-10 21:32:47
【问题描述】:
Cheat Engine 等内存编辑器能够读取其他进程的内存并对其进行修改。
他们是怎么做到的?(代码 sn-p 会很有趣!)一个进程通常没有能力访问另一个进程的内存,我听说的唯一情况是在子进程中/threading,但内存编辑器通常与目标进程没有任何关系。
它们为什么起作用?除了用它来破解其他进程之外,这种能力在什么情况下有用,为什么操作系统不简单地禁止不相关的进程读取彼此的内存?
【问题讨论】:
-
操作系统适用于管理员,而不是相反。
-
"A process does typically not have the ability to access the memory of another one"- 为什么不呢?您可以随时直接写入内存地址。"Why do they work?"- 通过修改其他进程的运行时值和指令。例如,如果正在运行的游戏将您的“分数”存储在内存地址中,您可以修改该内存地址的值以更改您的“分数”。 -
我学习操作系统已经有一段时间了,但如果我没记错的话,并不是所有的“真实”内存地址都隐藏在虚拟内存地址后面并试图从任何不在虚拟内存地址内导致段错误?
-
@David:实际上,不,您不能只写入另一个进程的内存。您的程序必须要求操作系统写入另一个进程的内存。操作系统可以做到,因为它负责。
标签: memory-editing