openprocess



Автор Димон ********* задал вопрос в разделе Другие языки и технологии

OpenProcess ошибка Access is denied. в windows 7 Visual C++ 2008 и получил лучший ответ

Ответ от ?????? Зелёный змий ??????[гуру]
Функции никакими привилегиями не обладают. Так что не пори чушь всякую.
Привилегиями наделяют процесс. Если у него достаточно привилегий, то ему позволят выполнить действие, которое требует определенных привилегий. Иметь привилегии еще не значит, что они будут работаь. Они могут быть не быть не вкючены.
Процесс может включить имеющиеся у него привилегии, но добавать других - нет. Это контролируется ядром системы.
В XP процесс автоматически получает все привилегии, которыми обладает учетная запись из под которой это процесс запускается.
Если учетку имеет администраторские привилегии, то и процесс будеи иметь тоже самое.
С семеркой сложнее, ядро при запуска процесса отбирает у процесса избыточные привилегии (администраторские в том числе) .
Даже если учетка имеет администраторские привилегии.
И залезь в чужой процесс в дальнейшем будет невозможно. Безопасность (повышенная) .
Если запустить явно от имени администратора, то может быть и получишь каие то доолнительные привилегие, которые наверное придеться вручную включать.
Кроме этого, наличее привилегий не гарантирует доступ. Процесс (особенно чужой) является объектом ядра и имеет собственную защиту - дескрипторы безопасности. Они могут быть настроены так, чтобы не позволять всяким лазить как у себя дома.
OpenProcess (цитата MSDN)
To open a handle to another local process and obtain full access rights, you must enable the SeDebugPrivilege privilege. For more information, see Changing Privileges in a Token.
чтобы откыть handle другого процесса и получить полный доступ, то нужно включить привилегию SeDebugPrivilege (она может и отсутствовать). См. Изменение привилеги токена. Токеном владеет процесс, а не поток, и тем более не какая то функция.
А если нужен не полный доступ к процессу, то не исключено, что можно получить такой доступ и без SeDebugPrivilege. Хотя в семерке процесс с сильно облегченным токеном, и такой фокус может не пройти.
Что тебе там понадобилось в чужом процессе? Пиши драйвер ядра или службу, кторая будет выполнять команды. Они в большей вероятностью смогут полазить в чужом процессе (если он не имеет специальной защиты от нежелательных гостей) .

Ответ от Артём Ибрагимов[новичек]
кароче если комп сней не хочет работать ты и не застовляй...

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: OpenProcess ошибка Access is denied. в windows 7 Visual C++ 2008
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*