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

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

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

У меня вопрос, как они это делают?

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

Благодарю.

4 ответа

Решение

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

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

В Unix: ptrace()

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

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

Программное обеспечение для обхода Win32 и прикладных API.

Другие вопросы по тегам