Re: OpenProcess-OpenProcessToken
От: DarkTranquillity  
Дата: 11.11.08 06:49
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Доброе время суток.

А>есть некий драйвер, есть залогиненный пользователь У, есть некий исполняемый бинарник Х. возникла необходимость запуска из драйвера (работает под SYSTEM) процесса Х с привилегиями пользователя У. на форуме были подобные темы, но они остались без ответа.
А>последовательность действий такая:
А>0)поиск PID explorer.exe
А>1)OpenProcess(PROCESS_ALL_ACCESS,PID)/ GetProcessHandleWithEnoughRights
А>2)OpenProcessToken
А>3)CreateProcessAsUser

А>но на шаге 1 возвращает ERROR_ACCESS_DENIED. писали, что надо поставить SeDebugPrivilege через AdjustPrivilege, но я не понял, где это надо.


А>Заранее спасибо.


Как где? Прямо перед вызовом OpenProcess. Про это есть ссылка прямо в разделе MSDN про OpenProcess — To open a handle to another another process and obtain full access rights, you must enable the SeDebugPrivilege privilege. For more information, see Changing Privileges in a Token.

Желательно бы потом вернуть обратно привилегии, чтобы случайно чего-то не напартачить, если конечно не вредителя пишем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.