С Новым Годом! С Новым Годом!
Blog. Just Blog

Как определить уровень UAC своего процесса

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Образ мышления: Assembler | Автор: ManHunter
Как определить уровень UAC своего процесса
Как определить уровень UAC своего процесса

Как известно, контроль учетных записей (UAC) является основополагающим компонентом общей концепции безопасности Microsoft. UAC помогает уменьшить воздействие вредоносных программ и защищать данные от несанкционированного доступа. Если для работы ваших приложений понадобится доступ к защищенным объектам, то система выдаст соответствующее предупреждение с запросом о предоставлении таких прав. Особенно это актуально для системы Win10 и выше, где Проводник всегда запускается в контексте безопасности обычного пользователя и, соответственно, все запущенные в нем процессы также будут иметь обычные права. Для повышения прав приложения можно запускать от имени Администратора.

Для того, чтобы определить, как именно было запущено ваше приложение, то есть в нормальном режиме или от имени Администратора, есть специальные функции. Но сперва, как обычно, не известные FASM константы.
  1. TOKEN_QUERY_SOURCE = 0x0010
  2. TOKEN_QUERY        = 8h
  3. TokenElevationType = 18
  4.  
  5. TokenElevationTypeDefault = 1
  6. TokenElevationTypeFull    = 2
  7. TokenElevationTypeLimited = 3
Теперь осталось открыть токен текущего процесса при помощи функции OpenProcessToken и затем через функцию GetTokenInformation получить из него информацию об уровне доступа:
  1.         invoke  GetCurrentProcess
  2.         invoke  OpenProcessToken,eax,TOKEN_QUERY,hToken
  3.         invoke  GetTokenInformation,[hToken],TokenElevationType,tet,4,dSize
На выходе получим одно из возможных значений: TokenElevationTypeDefault - UAC совсем отключен или процесс запущен от обычного пользователя, не являющегося Администратором. TokenElevationTypeFull - родительский процесс имеет права обычного пользователя, но дочерний процесс был запущен от имени Администратора. TokenElevationTypeLimited - как родительский процесс, так и запущенный, оба имеют права обычного пользователя.

В приложении программа с исходным текстом, которая выводит состояние прав запущенного процесса.

Пример программы с исходным текстом (FASM)Пример программы с исходным текстом (FASM)

Is.UAC.elevated.Demo.zip (1,563 bytes)


Поделиться ссылкой ВКонтакте
Просмотров: 1233 | Комментариев: 6

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
ManHunter (08.08.2022 в 23:55):
Я имею в виду легальные способы, типа какой-то условной invoke SetUACMode,FALSE. А всякие сплойты, понятно дело, есть и будут.
pawel97 (08.08.2022 в 23:51):
ManHunter, на win7 да, как описали. А вот на win8 и выше или через политику, или реестр EnableLUA с 1 на 0. Потому что там через системные отключится только надоедалка, в остальном uac останется работать. На разных журналах хакерах были статейки про обход uac, через всякие windows update, так что насчёт невозможности программно отключить тоже вопросы
NetZR0ver (08.08.2022 в 17:00):
Да, именно так. Вопрос был про "программное отключение". О.К. Спасибо)
Просто у меня две "оси": Linux - для сёрфинга, и Windows 7 - в автономном режиме. И постоянно выскакивающее окошко UAC уже давно задолбало.
ManHunter (08.08.2022 в 16:51):
Конечно можно. Зайти под админом, Пуск - Настройки - Панель управления - Параметры управления учетными записями, а там выкрутить бегунок на минималку. Если вопрос был про программное отключение, то ответ нет, иначе любая малвара отключала бы UAC самостоятельно и никакой пользы от ограничений не было.
NetZR0ver (08.08.2022 в 16:14):
День добрый. Можно ли вообще отключить этот самый надоедливый UAC?

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2026
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0045 сек.) / Память: 4.5 Mb
Наверх