Здравствуйте Есть ли способ изменить привилегии запущенного процесса с целью получить handle с помощью OpenProcess, не открывая предварительно процесс OpenProcess? Некоторые процессы не позволяют "открыть" процесс даже для PROCESS_QUERY_INFORMATION, что необходимо для получения хендла токена, и дальнейшей модификации этого токена. Как-то неприятно, что я администратор на своей машине и мне не разрешают даже запросить информацию о процессе, запущенном на ней. Или единственный способ - драйвер? (если да, то не будет ли там подводных камней, из-за того, что я лезу в "работающий процесс"? Ведь в принципе просто изменить поле токена будет несложно, как мне кажется) Спасибо за ответ на глупые вопросы
Установи себе привилегии отладчика - тогда сможешь открыть процесс. Но установить их тоже не всегда дают. Точную апи не подскажу - погугли "привилегии отладчика". Думаю, с десяток классических примеров найдешь.
вопрос уже поднимался неоднократно. поиск хендла процесса в списке хендлов (ZwQuerySystemInformation), хендл со всеми правами будет принадлежать процессу csrss. после успешного нахождения не забудь скопировать хендл себе (ZwDuplicateObject)
вообще есть ещё вариант, но он не всегда валиден... открыть процесс с правами только на дублирование хендлов и скопировать (HANDLE)-1 (собственный хендл процесса)... то есть, если рассматривать висту и старше, процесс csrss.exe не удастся открыть на дублирование хендлов, тк он имеет уровень целостности выше пользовательского... но можно получить доступ к процессу на одном уровне целостности с приложением или на нижших уровнях описанным выше методом...