C ++:像Cheat Engine和ArtMoney这样的应用程序如何工作?

时间:2010-06-04 17:02:47

标签: c++ memory-management

询问this question (C++: Can I get out of the bounds of my app’s memory with a pointer?)后,
我决定接受它是不可能用指针修改其他应用程序的内存(使用现代操作系统)。

但如果无法做到这一点,ArtMoneyCheatEngine等计划如何运作?

由于

3 个答案:

答案 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 例程(我想是这样)来完成。

这显然是他们失败的原因,例如,如果游戏状态存储了一些加密。这也是您需要多次更改值然后再次进行搜索的原因(以避免搜索冲突,因为肯定不同的内存块可以保持相同的值)。