Программы редактирования памяти пользовательского пространства - PullRequest
4 голосов
/ 03 ноября 2010

Как работают программы, редактирующие память других процессов, такие как Cheat Engine и iHaxGamez ? Насколько я понимаю, чтение процесса (не говоря уже о записи) в память другого процесса является непосредственным основанием для ошибки сегментации.

Ответы [ 4 ]

5 голосов
/ 03 ноября 2010

Получение доступа к памяти других процессов в Linux довольно просто (при условии, что у вас достаточно прав пользователя).

Например, файл /dev/mem предоставит доступ ко всему пространству памяти процессора. Подробную информацию о сопоставлениях для отдельного процесса можно найти в /proc/<pid>/maps.

Другой пример был приведен здесь .

2 голосов
/ 03 ноября 2010

У него нет оснований для сегментации; OS (ядро, ...) API используется для записи. Segfault происходит (получает сигнал) от ОС, когда процесс пытается получить доступ к своей собственной памяти неверным способом (переполнение char []).

Об играх: если значение хранится по адресу и иногда читается, его можно изменить до следующего чтения.

2 голосов
/ 03 ноября 2010

Уровень аппаратной абстракции операционной системы обычно предлагает функции для управления памятью других процессов.В Windows соответствующие функции ReadProcessMemory и WriteProcessMemory .

0 голосов
/ 03 ноября 2010

Вы можете использовать WinAPI WriteProcessMemory для записи в память другого процесса.

Также прочитайте некоторую документацию PE / COFF и используйте VirtualQueryEx и ReadProcessMemory, чтобы знать, что и где писать.

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