Как проверить, что софт запущен от учетной записи Системы?
|
|
Вторник, 10 Ноября 2020 г. 22:34
+ в цитатник
zer0cat: Здравствуйте
Посоветуйте, как можно проверить, что софт запущен от учетной записи системы? Не знаю, как люди его запускают, нужно контролировать такое и выводить предупреждение / делать перезапуск с нормальными юзер-правами.
Пробовал апи
GetUserNameW - все хорошо, но оно выдает имя с учетом языка; т.е. будет "Система" "System" и еще бог знает что. Не вариант.
Пробовал вот так:
OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &th);
GetTokenInformation(th, TokenUser, p_t, 256, &RL)
LookupAccountSidA(0, p_t->User.Sid,user1, &s, domain1, &s1, &s2);
Возвращает имя и домен "NT Authority" , можно ли полагаться на эти данные, т.е. если домен такой, то это права системы или нет?
Проверка по Integrity level не пойдет, ибо есть ХР/2к3
https://forum.sources.ru/index.php?showtopic=420722&view=findpost&p=3842037
Метки:
C/C++:
Системное программирование и WinAPI
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-