Как вы используете SECURITY_ATTRIBUTES с CreateProcess ()? - PullRequest
2 голосов
/ 26 июля 2010

Привет!

Когда я пытаюсь использовать GetThreadContext () в потоке, который я начал с CreateProcess (), я получаю сообщение об ошибке 998: ERROR_NOACCESS

Вы можете найтиПридуманный, но функциональный пример этой проблемы приведен здесь: http://pastebin.com/tamDhYza

Исходя из статьи MSDN, касающейся «безопасности потоков и прав доступа», я предполагаю, что мне нужно сначала передать свойство THREAD_GET_CONTEXT вlpThreadAttributes параметр CreateProcess ().Тип, требуемый этим аргументом, LPSECURITY_ATTRIBUTES, который выглядит как длинный указатель на структуру SECURITY_ATTRIBUTES.К сожалению, мне не очень повезло, когда я понял, как добавить права на эту структуру.

Может ли кто-нибудь помочь мне указать верное направление?

1 Ответ

2 голосов
/ 26 июля 2010

Я думаю, что вам, вероятно, нужно настроить привилегии вызывающего кода, чтобы вы могли получить доступ к удаленному процессу.Я подозреваю, что вам нужно включить привилегию SE_DEBUG_NAME (см. здесь ), прежде чем пытаться получить контекст удаленного потока.Я не уверен, хотя, поскольку я обычно использую API отладки и вызываю CreateProcess() с DEBUG_PROCESS, что в любом случае требует SE_DEBUG_NAME ...

Если вам нужно создать дескриптор безопасности, то что вы 'он создает DACL (дискреционный список управления доступом), представляющий собой структуру SECURITY_ATTRIBUTES, которая заполнена ACL (списками контроля доступа), которые разрешают или запрещают доступ к ресурсу различным принципалам (пользователям, компьютерам и т. д.).Раньше это было довольно сложно с большим количеством сложных вызовов API, но теперь это намного проще, подробности см. http://msdn.microsoft.com/en-us/library/ms717798(VS.85).aspx.

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