Сейчас на форуме: zds, UniSoft (+5 невидимых)

 eXeL@B —› Программирование —› Программная смена владельца системных файлов в Win 7
Посл.ответ Сообщение


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 25 декабря 2011 20:44
· Личное сообщение · #1

Вот интересует именно программная реализация...
А именно из под юзера получить доступ к изменению системных файлов...
Какие апи используют? А лучше пример кода...
Заранее спасибо...

-----
aLL rIGHTS rEVERSED!




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 25 декабря 2011 20:52
· Личное сообщение · #2

юзер с какими правами, какая ОС;
имеется в виду ескалация прав или все законно?




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 25 декабря 2011 21:07 · Поправил: OnLyOnE
· Личное сообщение · #3

sendersu пишет:
юзер с какими правами, какая ОС;

Win 7
sendersu пишет:
имеется в виду ескалация прав или все законно?

что ты имеешь ввиду?

Более конкретно... --> то что здесь описано <-- делать не руками а программно...

-----
aLL rIGHTS rEVERSED!





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 25 декабря 2011 21:30 · Поправил: daFix
· Личное сообщение · #4

OnLyOnE
Запусти программу от имени пользователя с нужными правами.
CreateProcessWithLogonW
Но для этого тебе нужен будет пароль пользователя, с чьими правами ты хочешь работать

Пока печатал, ты добавил уточнение. Вообще по ссылке есть батники готовые. Можно же и их использовать

-----
Research For Food





Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 25 декабря 2011 22:06
· Личное сообщение · #5

daFix пишет:
Вообще по ссылке есть батники готовые. Можно же и их использовать

ну если мне это было надо я бы их и использовал.. я ж писал о программной реализации
какие апи с какими параметрами и т.д. и т.п.

-----
aLL rIGHTS rEVERSED!




Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

Создано: 25 декабря 2011 22:43 · Поправил: vptrlx
· Личное сообщение · #6

http://msdn.microsoft.com/en-us/library/windows/desktop/aa375742(v=VS.85).aspx
и сеймплы там

Add: вот пример установки разрешений на папку/шару.

Code:
  1. int Grant(LPSTR lpFileName, BOOL AsShare){
  2.          PSECURITY_DESCRIPTOR pSecurityDescriptor;
  3.          SID_IDENTIFIER_AUTHORITY IdentifierAuthority=SECURITY_WORLD_SID_AUTHORITY;
  4.          EXPLICIT_ACCESS ea;
  5.  
  6.          int result;
  7.          PSID pSid;
  8.          PACL pOldAcl, pNewAcl;
  9.  
  10.          result = 0;
  11.          pOldAcl = 0;
  12.          pSid = 0;
  13.          AllocateAndInitializeSid(&IdentifierAuthority, 1u, 0, 0, 0, 0, 0, 0, 0, 0, &pSid);
  14.          GetNamedSecurityInfo(lpFileName, AsShare ? SE_LMSHARE : SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, &pOldAcl, NULL, &pSecurityDescriptor);
  15.  
  16.          ea.grfAccessPermissions = STANDARD_RIGHTS_ALL | SPECIFIC_RIGHTS_ALL;
  17.          ea.grfAccessMode = GRANT_ACCESS;
  18.          ea.grfInheritance = SUB_CONTAINERS_AND_OBJECTS_INHERIT | CONTAINER_INHERIT_ACE;
  19.          ea.Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
  20.          ea.Trustee.pMultipleTrustee = NULL;
  21.          ea.Trustee.TrusteeForm = TRUSTEE_IS_SID;
  22.          ea.Trustee.TrusteeType = TRUSTEE_IS_GROUP;
  23.          ea.Trustee.ptstrName = (LPSTR)pSid;
  24.          SetEntriesInAcl(1, &ea, pOldAcl, &pNewAcl);
  25.  
  26.          result = SetNamedSecurityInfo(lpFileName, AsShare?SE_LMSHARE:SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pNewAcl, NULL);
  27.  
  28.          if ( pSid )
  29.                  FreeSid(pSid);
  30.          if ( pSecurityDescriptor )
  31.                  LocalFree(pSecurityDescriptor);
  32.          return result;
  33. }
  34.  


| Сообщение посчитали полезным: OnLyOnE
 eXeL@B —› Программирование —› Программная смена владельца системных файлов в Win 7
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати