Как создать SID как S-1-5-21-123697389-1196883430-1112475604-1016 в windows c ++ - PullRequest
1 голос
/ 03 февраля 2020

Мне нужно создать SID, как указано выше, чтобы сменить владельца тома. Я использовал AllocateAndInitializeSid() для генерации Неизвестного SID, но что передать в качестве значения Subauthority в этой функции.

Мой код такой, как показано ниже:

SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY;
PSID pSIDUnknown = NULL;  
AllocateAndInitializeSid(&SIDAuthNT, 2,
        SECURITY_NT_NON_UNIQUE,
        DOMAIN_ALIAS_RID_ADMINS,
        0,
        0, 0, 0, 0, 0,
        &pSIDUnknown))

Он генерирует SID как S-1-5-21-500 НО я хочу генерировать SID, как этот формат S-1-5-21-123697389-1196883430-1112475604-1016

Так как это сделать в windows c ++?

Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы не можете просто создать свой собственный случайный SID. SID создаются Windows. AllocateAndInitializeSid задокументировано как «выделяет и инициализирует идентификатор безопасности (SID)», но это выделяет и инициализирует память на **pSIDUnknown. Вы уже должны иметь значения из какого-то другого источника.

Обычный способ - просто принять имя пользователя и посмотреть его SID с LookupAccountNameW

...