2017-01-05 1 views
2

Ну, название сумеризирует мой вопрос, но я уточню. Я всегда думал, что любой процесс с правами администратора не должен иметь доступ к пространству памяти любого другого процесса и, конечно же, не должен останавливать его выполнение.Почему я могу подключить визуальную студию для обработки без каких-либо прав администратора?

Однако, если визуальная студия работает под учетной записью без привилегий, я могу подключиться к некоторым процессам, работающим под одной учетной записью, и отлаживать их. Почему это возможно? Не следует ли предотвратить эту оперативную систему?

Спасибо заранее и веселит

ответ

2

для доступа сказать пространству памяти любого другого процесса, нам нужно открытый процесс с PROCESS_VM_READ|PROCESS_VM_OPERATION|PROCESS_VM_WRITE .. для этого не обязательно нуждающегося SE_DEBUG_PRIVILEGE - если процесс выполняется в том же сессии, как отладчик, имеют то же самое токен - обычно это дескриптор безопасности (DACL) позволяет открыть его для этого отладчика. это абсолютно необходимо. так что вопрос здесь - можем ли мы открыть процесс с полным доступом для отладки? если этот «равноправный» процесс (работает под одним и тем же пользователем, с теми же привилегиями) - почему бы и нет?

и от DebugActiveProcess функции

Отладчик должен иметь соответствующий доступ к целевому процессу, и он должен быть в состоянии открыть процесс для PROCESS_ALL_ACCESS. DebugActiveProcess может потерпеть неудачу, если целевой процесс создается с помощью дескриптора безопасности, который предоставляет отладчику все, что меньше полного доступа. Если в процессе отладки установлена ​​привилегия SE_DEBUG_NAME , она может отлаживать любой процесс.

и замечания от себя - кроме защищенных процессов, если только ваш отладчик при вызове DebugActiveProcess также защищенный процесса (с не меньшим уровнем защиты) (да это возможно отлаживать защищенные процессы также)

+0

Спасибо за тщательный ответ. Когда я изучал оперативные системы в университете, мне не сказали об этом управлении безопасностью окон, о которых я не знал вообще. Основываясь на вашем ответе и некоторых исследованиях, теперь я могу лучше понять этот вопрос. –

+0

@ DanielGarcíaRubio - любой процесс имеет дескриптор безопасности. мы можем отлаживать процесс, если мы сможем открыть его с полным доступом. по умолчанию процессы в одном сеансе входа в систему предоставляют друг другу. поэтому отладчик обычный и может отлаживать процесс с его сеанса входа в систему. другой вопрос, который поднял или системные процессы, уже запущенные в других сеансах входа в систему, и его SD не предоставляют полный доступ для не повышенных отладчиков. но «SE_DEBUG_PRIVILEGE» изменяет поведение – RbMm

Смежные вопросы