Как работает Cheat O'Matic?

Как эта программа получает доступ к другой памяти процессов? Как он может записывать в адресное пространство другого процесса? Разве это не должно было быть segfault или что-то еще?

Ответ 1

Программа с уровнем системных привилегий может отображать физические адреса на свой собственный виртуальный адрес.

Cheat O'Matic (и poke) отображает физический адрес любой программы, которую он пытается сканировать в свое собственное виртуальное пространство.

Как только это будет сделано, он сканирует все байты для целевого значения, которое вы вводите. Он изолирует правильный адрес памяти, попросив пользователя изменить адрес на известные значения и в основном выполняет разницу между старой и новой памятью, чтобы найти изменения.

Ответ 2

Один из способов сделать это - добавить DLL (Google для "инъекции Dll" ) в процесс адреса, который вы хотите отслеживать: эта DLL находится внутри процесса и может делать что-то с памятью процесса. Процесс шпиона может использовать метод Interprocess Communication (трубы, сокеты, что угодно), чтобы поговорить с DLL, которую он ввел в другой процесс.

Вставка DLL требует привилегий администратора (например, для установки релевантной записи в системном реестре).