Вопрос: C ++: Как работают такие приложения, как Cheat Engine и ArtMoney?


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

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

благодаря


7


источник


Ответы:


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


8



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

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

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


3



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

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


0