开发者

C++: How do applications like Cheat Engine and ArtMoney work?

After asking this question (C++: Can I get out of the bounds of my app’s memory with 开发者_C百科a pointer?),

I decided to accept it isn't possible to modify other app's memory with pointers (with a modern OS).

But if this isn't possible, how do programs like ArtMoney and CheatEngine work?

Thanks


Check these functions: ReadProcessmemory WriteProcessmemory


It is possible to read process memory on Windows. There is a function, called ReadProcessMemory in kernel32.dll: http://msdn.microsoft.com/en-us/library/ms680553(v=VS.85).aspx

This is used by most applications that change memory of other applications. It can also be used to communicate between two processes (though mostly not recommended).

CheatEngine is a debugger with a non-traditional interface.


Just to give a plain simple explanation - dump / hot search the process memory for specified value and modify it. You can do it using some plain WinAPI functions or using some native API routines (I suppose so).

That's obviously the reason why they fail, for example, if game state is stored with some encryption. That's also the reason you would need to change your value several times and then make your search again (to avoid search collisions, because definitely different memory blocks could hold the same value).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜