Подтвердить что ты не робот

Как изменить значение в памяти другого процесса

Если бы вы могли помочь мне с этой дилеммой, я имею. Теперь я знаю C\С++, я знаю asm, я знаю о dll injection, я знаю об адресации виртуальной памяти, но я просто не могу понять, как программное обеспечение, такое как CheatEngine и другие, удается изменить значение переменной в другом процессе.

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

Мой вопрос: как они это делают?

Учитывая адрес, если я должен написать код C, как я могу изменить значение на этом адресе, принадлежащем другому процессу, без получения недопустимой ошибки адресации?

Спасибо.

4b9b3361

Ответ 1

Я уверен, что эти программы притворяются отладчиками. В Windows я начинал с DebugActiveProcess() и оттуда.

О, и очень полезная функция ReadProcessMemory() (и WriteProcessMemory()).

Ответ 2

В unix: ptrace()

Ответ 3

Вы не можете сделать это со стандартными C или С++ - вам нужно использовать определенные функции операционной системы. Поэтому вам нужно сообщить нам, какую ОС вы интересуете.

Ответ 4

Вы также можете быть заинтересованы в Detours:

Программное обеспечение, предназначенное для обхода Win32 и API-интерфейсов приложений.