C ++: Как работают такие приложения, как Cheat Engine и ArtMoney? - PullRequest
10 голосов
/ 04 июня 2010

Задав этот вопрос (C ++: можно ли выйти за пределы памяти моего приложения с помощью указателя?) ,
Я решил принять, что невозможно изменить память другого приложения с помощью указателей (с современной ОС).

Но если это невозможно, как работают такие программы, как ArtMoney и CheatEngine ?

Спасибо

Ответы [ 3 ]

12 голосов
/ 04 июня 2010

Проверьте эти функции: ReadProcessMemory WriteProcessMemory

4 голосов
/ 04 июня 2010

Возможно чтение памяти процесса в Windows. Существует функция, которая называется ReadProcessMemory в kernel32.dll: http://msdn.microsoft.com/en-us/library/ms680553(v=VS.85).aspx

Используется большинством приложений, которые изменяют память других приложений. Его также можно использовать для связи между двумя процессами (хотя в основном это не рекомендуется).

CheatEngine - отладчик с нетрадиционным интерфейсом.

0 голосов
/ 04 июня 2010

Просто, чтобы дать простое простое объяснение - dump / hot search память процесса для указанного значения и изменение его. Вы можете сделать это с помощью простых WinAPI функций или с помощью некоторых собственных API подпрограмм (я так полагаю) .

Это, очевидно, причина их неудачи, например, если состояние игры сохраняется с некоторым шифрованием. По этой же причине вам нужно несколько раз изменить свое значение, а затем снова выполнить поиск (чтобы избежать коллизий при поиске, поскольку определенно разные блоки памяти могут содержать одно и то же значение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...