С++ Запуск от имени.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SkyMan, 13 Jan 2008.

  1. SkyMan

    SkyMan New Member

    Joined:
    3 Dec 2006
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    Здравствуйте.
    Как на С++ сделать так, чтобы при запуске программы вылетало окошко "запуск от имени"... само.

    Я знаю так можно сделать.
     
  2. sandalwood

    sandalwood Banned

    Joined:
    13 Jan 2008
    Messages:
    19
    Likes Received:
    10
    Reputations:
    4
    Ты наверное имел ввиду CreateProcessAsUser. Но тогда С++ тут не при чём.
    PS или CreateProcessWithLogonW.
    read msdn!
     
    #2 sandalwood, 13 Jan 2008
    Last edited: 13 Jan 2008
  3. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Нет, наверное он имел в виду чтобы сразу вылетало окошко "Run as...." виндовое стандартное, где предлагается выбрать имя пользователя и ввести пароль.
    Вроде экспортировалась какойто дллкой такая функция.. надо посмотреть.
     
  4. sandalwood

    sandalwood Banned

    Joined:
    13 Jan 2008
    Messages:
    19
    Likes Received:
    10
    Reputations:
    4
    Тогда нужно смотреть в либо browseui.dll, либо в credui.dll.
     
  5. SkyMan

    SkyMan New Member

    Joined:
    3 Dec 2006
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    Я имел в виду "чтобы сразу вылетало окошко "Run as...."
    Всем спасибо. Буду копать в направлении browseui.dll credui.dll.
     
  6. KSoniX

    KSoniX Elder - Старейшина

    Joined:
    17 Jan 2008
    Messages:
    94
    Likes Received:
    12
    Reputations:
    1
    Как в Си запустит программу от имени system с высоким приоритетным ?
     
  7. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    а Debug не хватит?
    Code:
    	HANDLE hToken; 
    	TOKEN_PRIVILEGES tkp; 
    	// Get a token for this process. 
    	if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) 
    		return ;
    	LookupPrivilegeValue(NULL, SE_DEBUG_NAME,&tkp.Privileges[0].Luid); 
    	tkp.PrivilegeCount = 1;  // one privilege to set    
    	tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; 
    	AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL, 0); 
    	// Cannot test the return value of AdjustTokenPrivileges. 
    	if (GetLastError() != ERROR_SUCCESS) 
    		return ; 
    
    
     
  8. KSoniX

    KSoniX Elder - Старейшина

    Joined:
    17 Jan 2008
    Messages:
    94
    Likes Received:
    12
    Reputations:
    1
    куда его писать я в Си не очен силен
     
  9. KSoniX

    KSoniX Elder - Старейшина

    Joined:
    17 Jan 2008
    Messages:
    94
    Likes Received:
    12
    Reputations:
    1
    он же не от имени system запускается
     
  10. Delimiter

    Delimiter Banned

    Joined:
    8 Apr 2005
    Messages:
    317
    Likes Received:
    173
    Reputations:
    12
    System - понятие не путайте с пользователями, это всего
    лишь обозначение "обобщающее" название для служб и
    сервисов запускаемых системой! Нужно как минимум
    проэксплоитить какой нибудь сервис, чтоб получить
    привилегии System либо писать собственный драйвер.
    На самом деле в 80% случаев привилегии Debug достаточно!
    Для System не создается даже токен секьюрити, то есть он к политике
    безопасности почти не имеет отношение , а вопрос
    ставится так
    как будто мы должны какуюто политику изменить ;)
     
    #10 Delimiter, 24 Jan 2008
    Last edited: 24 Jan 2008