Обнаружить, манипулирует ли память процесса? - PullRequest
0 голосов
/ 08 сентября 2011

Мне было интересно, как можно отслеживать память процесса другого приложения и видеть, манипулирует ли оно третьей стороной. Например, когда ReadProcessMemory, WriteProcessMemory вызывается для определенного процесса. Например, nProtect GameGuard может определять, когда манипулируют памятью игрового процесса.

1 Ответ

2 голосов
/ 08 сентября 2011

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

Во-первых, вам нужны некоторые общесистемные хуки для этих функций и их низкоуровневые строительные блоки (Zw ..., Nt ... и даже системный вызов). Это должно быть сделано драйвером ядра.

Во-вторых, вам нужен способ установить этот драйвер и удалить его по своему желанию. Это может быть сделано службой.

В-третьих, вам нужен способ связи между драйвером ядра и игрой. На этапе инициализации игра установит драйвер и сообщит ему, какой идентификатор процесса запущена в игре. Затем драйвер заблокирует весь доступ к этому конкретному процессу из других процессов.

В-четвертых, вам нужно вести белый список. Такие приложения, как антивирус, должны заглядывать в вашу игру. Ваш драйвер ядра должен позволить пройти эти экзамены. Вот где nProtect и аналогичные технологии дают сбой. Они просто конфликтуют с другими программами.

В-пятых, возможно, пришло время подумать о других способах защиты вашей игры. Стоит прочитать статью Дэвида Ауксита «Защита от несанкционированного доступа: реализация».

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