VirtualAllocEx выдает ERROR_INVALID_HANDLE - PullRequest
0 голосов
/ 27 мая 2020

OpenProcess не возвращает NULL и возвращает то, что кажется допустимым дескриптором. У меня включен SE_DEBUG_PRIVILEGE, поэтому уровень доступа должен быть в порядке. Любая помощь?

            void* processHandle = OpenProcess(PROCESS_ALL_ACCESS, false, processID);
            printf("%p\n", processHandle);

            void* DLLPATH = VirtualAllocEx(processHandle, 0, (strlen(dllPATH) + 2), MEM_COMMIT, PAGE_READWRITE);
            printf("%p\n", DLLPATH);

Все выглядит нормально, но VirtualAllocEx выдает ошибку недопустимого дескриптора. Любая помощь, ребята? Приветствую вас ответ!

EDIT: Я отладил программу, которую искал, и обнаружил, что она пытается закрыть созданный мной дескриптор, похожий на античит. Это то, что вызывало ошибку недопустимого дескриптора (насколько я могу судить).

1 Ответ

0 голосов
/ 27 мая 2020

Изоляция сеанса 0. Это служба, и вам фактически не разрешен доступ к процессу из сеанса 0 из интерактивного сеанса, и наоборот.

Чистый способ? Вырвать его из контекста сервиса или go отладить из контекста сервиса самостоятельно.

Уродливый способ? Go a используйте свои права отладки, чтобы открыть winlogon.exe, прочитать его токен безопасности и выдать себя за него. У этого процесса есть некоторые недокументированные скрытые привилегии, которые позволяют ему игнорировать изоляцию сеанса 0.

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