WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Интересный код -2

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Интересный код -2
Emerald опубликован 12-12-2001 23:33 MSK   Click Here to See the Profile for Emerald   Click Here to Email Emerald  
Я думаю вам всем до боли знаком следующий код:
int main(int argc, char **argv)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//-------------------
char *name=""; // address of name of computer to shut down
char *msg=""; //address of message to display in dialog box
DWORD time=0; // time to display dialog box
bool force=true; // force applications with unsaved changes flag
bool reboot=true; //reboot flag
//---------------------------------------------------------------------
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
&hToken);

if(!LookupPrivilegeValue(name, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid)){
printf ("SE_SHUTDOWN_NAME Privilege облом \n");
return 1 ;};

tkp.PrivilegeCount =1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if(!LookupPrivilegeValue(name,
SE_REMOTE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid)){
printf("SE_REMOTE_SHUTDOWN_NAME Privilege облом \n");
return 2 ;};

tkp.PrivilegeCount =1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);

if (InitiateSystemShutdown(name,msg,time,force,reboot))
printf("%s shutdown Ok\n",name);
else printf("Can't shutdown %s \n",name);

return 0;
}

Почему так своюодно можно открыть привилегию перезагрузки для другого компа? Разве прога может сама себе повысить привелегии? Или как, например, сделать так, чтобы юзверь был членом группы "гостей", а его прога работала от группы "админов"?

Emerald опубликован 13-12-2001 22:52 MSK     Click Here to See the Profile for Emerald  Click Here to Email Emerald     
Ну чё -- мыслей нема?
Flex Ferrum опубликован 14-12-2001 10:29 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
В том то вся и фишка, что для получения подобных прав пользователь, из под которого запущен процесс, должен иметь право "Принудительное удаленное завершение...". По умолчанию его имеют только админы. А гость - сам понимаешь, никаких правов не имеет. На то он и гость.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.