Как мне получить доступ к адресу .exe защищенного процесса?

Я пишу античит-программу для видеоигры. Используя CreateToolhelp32Snapshot, я могу получить список открытых процессов. Оттуда я хотел бы найти адрес каждого процесса и прочитать его .exe файл. Хотя это работает для большинства процессов, защищенные процессы запрещают доступ к таким методам, как OpenProcess или GetModuleFileNameEx. Предполагая, что мое приложение запускается от имени администратора, есть ли способ найти адреса защищенных процессов?


person Loran1156    schedule 27.02.2020    source источник
comment
для чего вам нужно открывать / работать с защищенными процессами? я не думаю, что какой-либо чит запускается в защищенном процессе   -  person RbMm    schedule 27.02.2020
comment
Я считаю RbMm правильным. PP не сможет быть обманутым программным обеспечением. Чтобы ваше античитерское программное обеспечение открывало и читало PP, оно должно быть подписано на том же уровне подписи, что и PP.   -  person Eljay    schedule 27.02.2020
comment
Нет, в данном случае программы третьей части - pp. В этой конкретной игре их довольно много, и идея моей программы состоит в том, чтобы прочитать .exes, чтобы точно идентифицировать эти известные программы. Я могу получить список процессов и прочитать любой процесс с минимальными привилегиями (если у меня есть его адрес). Вопрос в том, как мне найти адрес pp?   -  person Loran1156    schedule 27.02.2020
comment
Если программе удается зарегистрироваться как защищенный процесс, у нее есть все необходимые привилегии, чтобы разрушить ваше античитерское программное обеспечение.   -  person IInspectable    schedule 27.02.2020
comment
Как же так? Адрес - единственная информация, которая мне нужна для завершения моей программы. Нет возможности получить эту информацию из окон?   -  person Loran1156    schedule 27.02.2020
comment
Например, CheatEngine (очень распространенная сторонняя программа) - это pp. Когда я пытаюсь использовать такие методы, как GetModuleFileNameEx, в ответе printError отказано в доступе.   -  person Loran1156    schedule 27.02.2020
comment
@ Loran1156 Пожалуйста, отредактируйте свой вопрос, чтобы показать реальный код, с которым у вас возникли проблемы.   -  person Remy Lebeau    schedule 28.02.2020
comment
Я очень сильно сомневаюсь, что какой-то CheatEngine - это процесс, защищенный Windows. если вы имеете в виду cheatengine.org - он не защищен. у второго процесса нет адреса. Вы имеете в виду адрес загрузки exe файла. Адрес - единственная информация, которая мне нужна ваша проблема, которую вы не можете открыть. Защищенный процесс вы не откроете без помощи режима ядра или сам защищенный процесс с не меньшим уровнем защиты. и снова - сомневаюсь, что вам это вообще нужно   -  person RbMm    schedule 28.02.2020


Ответы (1)


Cheat Engine не является защищенным процессом и 99,9% читов тоже. Вы можете проверить сертификат exe в Process Hacker, и вы увидите, что он имеет только подпись кода и не имеет обозначения защищенного процесса.

Если вы не можете получить доступ к памяти читов, это потому, что они защищают ее с помощью драйвера ядра. Вы также должны работать в ядре, если хотите прикоснуться к процессу. Если они каким-то образом создали PP, вам нужно быть в ядре.

Есть много методов пользовательского режима, которые они также могут использовать для защиты, они могут просто перехватить OpenProcess () в каждом запущенном процессе, включая ваш, и вернуть 0, когда вы пытаетесь открыть их процесс.

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

person GuidedHacking    schedule 15.05.2020