Sddl String To Binary

  • Автор темы Red Wind
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

Red Wind

Гость
#1
Доброго времени суток!
Есть SDDL строка: D:(A;;GX;;;S-1-5-19)
Скажите, как её конвертировать в массив байтов так, что бы указатель на этот массив можно было использовать в качестве выходного параметра ppSecurityDescriptor реализации функции GetSecurity интерфейса ISecurityInformation.
Код:
HRESULT GetSecurity(
SECURITY_INFORMATION RequestedInformation,
PSECURITY_DESCRIPTOR* ppSecurityDescriptor,
BOOL fDefault
);
То есть, например есть функция ConvertStringSidToSid, но она конвертит только SID строки, каторые являются часным случаем SDDL.
 

Гость
#2
Deny all, Allow generic execute to S-1-5-19?
Если эта строка константа, почему бы не собрать соответствующий дескриптор руками?

Если же все-таки нужно конвертить, вот тут: http://support.microsoft.com/kb/276208/ есть многообещающая фраза:
The process for converting the SDDL form of the SID into a binary SID, which can then be used in a call to the LookupAccountSid API to return the SAM account name form is as follows: 1. Parse the SDDL form of the SID found in the IADsAccessControlEntry::Trustee property so that the issuing authority and the subauthority relative identifiers (RIDs) can be determined.
2. Initialize a binary SID with the appropriate number of subauthorities.
3. Build the binary SID by adding the appropriate subauthorities in the proper order.
4. Use the newly created binary SID in a LookupAccountSid call targeting the local computer were the SDDL SID was obtained.
Там же пример на С++ (если пролисать VB)
 
Статус
Закрыто для дальнейших ответов.