Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Запуск программы с повышенными правами


Автор: Artemon 30.8.2011, 10:02
Необходимо запустить из Windows службы exe файл с системными правами (например чтобы был доступ на запись в каталог Windows), но при этом чтобы пользователь, от имени которого происходит запуск - не менялся.

Другими словами создать процесс от имени обычного пользователя, но при этом наделить его особыми правами.

Моя гипотеза: получить токен пользователя, от имени которого запушена служба, из токена вытащить часть прав, и запустить exe от имени другого пользователя. 
Но как это будет на практике - не понятно.

У кого-нибудь есть мысли ?

Автор: xvr 30.8.2011, 11:55
Ну например можно попробовать CreateProcessAsUser с флагом CREATE_PRESERVE_CODE_AUTHZ_LEVEL

Автор: Artemon 30.8.2011, 14:12
Не катит, видимо на доступ к директориям права как-то особо задавать надо

Автор: spyswamp 31.8.2011, 09:54
Artemon, а SECURITY_ATTRIBUTES ты как настраиваешь?

Добавлено через 1 минуту и 6 секунд
И делал ли перед созданием процесса от пользователя LogonUserW от этого пользователя?

Автор: Artemon 2.9.2011, 15:24
Цитата(spyswamp @  31.8.2011,  09:54 Найти цитируемый пост)
Artemon, а SECURITY_ATTRIBUTES ты как настраиваешь?

Да собствено ничего особенно здесь не делаю

Код

SECURITY_ATTRIBUTES sa;
    SECURITY_DESCRIPTOR sd;
    if (!InitializeSecurityDescriptor (&sd, SECURITY_DESCRIPTOR_REVISION))
    {
        qWarning() << "InitializeSecurityDescriptor error: " << GetLastError() << endl;
        return false;
    }


Цитата(spyswamp @  31.8.2011,  09:54 Найти цитируемый пост)
И делал ли перед созданием процесса от пользователя LogonUserW от этого пользователя?

Не делал, зачем оно мне ? Я использую CreateProcessAsUser.

Но задачу между прочим решил smile

Кому интересно с помощью внедрения в процесс winlogon.exe

Но если есть и другие решения, рад выслушать ?

Автор: 500mhz 2.9.2011, 16:56
Цитата

Кому интересно с помощью внедрения в процесс winlogon.exe

это на какой венде?

Автор: Artemon 4.9.2011, 17:53
Цитата(500mhz @  2.9.2011,  16:56 Найти цитируемый пост)
это на какой венде?


Windows XP, Windows Vista, Windows 7

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)