Как следует из названия, я ищу ответ на свой вопрос. Я попытался написать код, который достигает того, о чем я прошу, в соответствии с официальной документацией Microsoft по этой структуре: https://learn.microsoft.com/en-us/windo ... descriptor
У меня есть файл заголовка с классом, одним частным членом (объект SECURITY_DESCRIPTOR), затем двумя общедоступными методами, один для установки членов структуры частных членов и один для возврата копия объекта.
Все выглядит нормально, пока я не вызываю GetLastError(), который возвращает код ошибки 1337, указывающий, что «структура идентификатора безопасности недействительна», что означает, что я, вероятно, неправильно использую AllocateAndInitializeSid.
Я приложу код ниже.
#pragma once
class init
{
private:
SECURITY_DESCRIPTOR secObjInfo{}; // contains info such as, owner, group, Sacl, Dacl, control. (Important)
public:
void setSecurityDescriptor()
{
// SID structure stuff
SID_IDENTIFIER_AUTHORITY sia
{
SECURITY_NT_AUTHORITY
};
PSID si = nullptr; // this security identification object determines what level of authority we have.
BOOL sid = AllocateAndInitializeSid( // function to initialize our
&sia,
1,
SECURITY_WORLD_RID,
0,
0,
0,
0,
0,
0,
0,
&si
);
// end
// set control for (SECURITY_DESCRIPTOR)
DWORD setControl = SetSecurityDescriptorRMControl(
&secObjInfo,
NULL
);
// end
// set revision level and give default initialization to mostly everything else in the struct (SECURITY_DESCRIPTOR).
BOOL setRevision = InitializeSecurityDescriptor(
&secObjInfo,
SECURITY_DESCRIPTOR_REVISION
);
// end
// set owner of SECURITY_DESCRIPTOR
BOOL secDesOwner = SetSecurityDescriptorOwner(
&secObjInfo,
&si,
1
);
// end
// set group for SECURITY_DESCRIPTOR
BOOL secDesGroup = SetSecurityDescriptorGroup(
&secObjInfo,
&si,
1
);
// end
}
SECURITY_DESCRIPTOR getSecurityDescriptor()
{
return secObjInfo;
}
};
/*
issues
~ security descriptor is being initialized incorrectly (error code 1338)
~ messy code.
*/ );
// end
// set group for SECURITY_DESCRIPTOR
BOOL secDesGroup = SetSecurityDescriptorGroup(
&secObjInfo,
&si,
1
);
// end
}
SECURITY_DESCRIPTOR getSecurityDescriptor()
{
return secObjInfo;
}
};
/*
issues
~ security descriptor is being initialized incorrectly (error code 1338)
~ messy code.
*/
Подробнее здесь: https://stackoverflow.com/questions/798 ... descriptor
Как правильно установить члены структуры SECURITY_DESCRIPTOR? ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1768885825
Anonymous
Как следует из названия, я ищу ответ на свой вопрос. Я попытался написать код, который достигает того, о чем я прошу, в соответствии с официальной документацией Microsoft по этой структуре: https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-security_descriptor
У меня есть файл заголовка с классом, одним частным членом (объект SECURITY_DESCRIPTOR), затем двумя общедоступными методами, один для установки членов структуры частных членов и один для возврата копия объекта.
Все выглядит нормально, пока я не вызываю GetLastError(), который возвращает код ошибки 1337, указывающий, что «структура идентификатора безопасности недействительна», что означает, что я, вероятно, неправильно использую AllocateAndInitializeSid.
Я приложу код ниже.
#pragma once
class init
{
private:
SECURITY_DESCRIPTOR secObjInfo{}; // contains info such as, owner, group, Sacl, Dacl, control. (Important)
public:
void setSecurityDescriptor()
{
// SID structure stuff
SID_IDENTIFIER_AUTHORITY sia
{
SECURITY_NT_AUTHORITY
};
PSID si = nullptr; // this security identification object determines what level of authority we have.
BOOL sid = AllocateAndInitializeSid( // function to initialize our
&sia,
1,
SECURITY_WORLD_RID,
0,
0,
0,
0,
0,
0,
0,
&si
);
// end
// set control for (SECURITY_DESCRIPTOR)
DWORD setControl = SetSecurityDescriptorRMControl(
&secObjInfo,
NULL
);
// end
// set revision level and give default initialization to mostly everything else in the struct (SECURITY_DESCRIPTOR).
BOOL setRevision = InitializeSecurityDescriptor(
&secObjInfo,
SECURITY_DESCRIPTOR_REVISION
);
// end
// set owner of SECURITY_DESCRIPTOR
BOOL secDesOwner = SetSecurityDescriptorOwner(
&secObjInfo,
&si,
1
);
// end
// set group for SECURITY_DESCRIPTOR
BOOL secDesGroup = SetSecurityDescriptorGroup(
&secObjInfo,
&si,
1
);
// end
}
SECURITY_DESCRIPTOR getSecurityDescriptor()
{
return secObjInfo;
}
};
/*
issues
~ security descriptor is being initialized incorrectly (error code 1338)
~ messy code.
*/ );
// end
// set group for SECURITY_DESCRIPTOR
BOOL secDesGroup = SetSecurityDescriptorGroup(
&secObjInfo,
&si,
1
);
// end
}
SECURITY_DESCRIPTOR getSecurityDescriptor()
{
return secObjInfo;
}
};
/*
issues
~ security descriptor is being initialized incorrectly (error code 1338)
~ messy code.
*/
Подробнее здесь: [url]https://stackoverflow.com/questions/79871684/how-do-i-correctly-set-the-struct-members-of-security-descriptor[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия