询问this question (C++: Can I get out of the bounds of my app’s memory with a pointer?)后,
我决定接受它是不可能用指针修改其他应用程序的内存(使用现代操作系统)。
但如果无法做到这一点,ArtMoney和CheatEngine等计划如何运作?
由于
答案 0 :(得分:12)
检查这些功能: ReadProcessmemory WriteProcessmemory
答案 1 :(得分:4)
可以在Windows上读取进程内存。 ReadProcessMemory
中有一个名为kernel32.dll
的函数:http://msdn.microsoft.com/en-us/library/ms680553(v=VS.85).aspx
大多数应用程序都会使用它来更改其他应用程序的内存。它也可以用于两个进程之间的通信(尽管通常不推荐)。
CheatEngine
是一个带有非传统接口的调试器。
答案 2 :(得分:0)
只是给出一个简单的解释 - dump / hot search 指定值的进程内存并修改它。您可以使用一些简单的 WinAPI 函数或使用一些本机API 例程(我想是这样)来完成。
这显然是他们失败的原因,例如,如果游戏状态存储了一些加密。这也是您需要多次更改值然后再次进行搜索的原因(以避免搜索冲突,因为肯定不同的内存块可以保持相同的值)。