Systémové programování Windows Security Descriptor Obsah ► Prohlížení oprávnění ► SECURITY_ATTRIBUTES ► Security Descriptor ► Default Security Descriptor ► Access Control List ► AccessPermission ► Prohlížení oprávnění ► Soubory/adresáře ► http://v\^vw.sysinternals.com/ ► Sysinternals Suite: WinObj BaseNamedObjects ► S E C U RITY_ATTRIB UTE S SA - SECURITY JVTTRIBUTES SecurityDescriptor = &SD typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; LPVOID IpSecurityDescriptor; BOOL blnheritHandle; } SECURITY ATTRIBUTES, ► Default Security Descriptor ► Pokud není u objektu uveden Security Descriptor je použit tzv. Default Security Descriptor. ► Default Security Descriptor vychází z access tokenu aktuálního threadu. SECURITY DESCRIPTOR ► Vnitřní struktura není veřejná ► An owner security identifier (SID) ► A discretionary access control list (DACL) SD - Security Descriptor bDaclPresent = true bDacl = &ACL NULL BOOL WINAPI SetSecurityDescriptorDacl( _Inout_ PSECURITY_DESCRIPTOR pSecurityDescriptor _In_ BOOL bDaclPresent, _In_opt_ PACL pDacl, //NULL - úplný přistup všem //Prázdný - žádný přistup nikomu In BOOL bDaclDefaulted); ► Access Control List ACL-Access Control List ACE - Access Control Entry AccessMode = SET.ACCESS | DENY_ACCESS AccessPermissions = EVENT_ _MQDIFY_5TATE Trustee.ptstrName = (LPTSTR) pEveryoneSID ► AccessPermission ► Eventy ► EVENT_ALL_ACCESS(0xlF0003) ► EVENT_MODIFY_STATE (0x0002) ► Mutexy ► MUTEX_ALL_ACCESS (Ox IF0001) ► MUTEX_MODIFY_STATE (0x0001) ► FileMapping ► FILE_MAP_READ (0x0004) ► FILE_MAP_WRITE (0x0002) ► SDDL ► "D:(A;;Ox 100002;;;WD)(A;;KA;;;BA)" http://msdn.microsoftxom/en-us/library/windows/desktop/aa374928(v=vs.85).asp^ ► ConvertStringSecurityDescriptorToSecurityDescriptor ( _^n_ LPCWSTR StringSecurityDescriptor, _In_ DWORD StringSDRevision, // SDDL_REVISI0N_1 _Outptr_ PSECURITY_DESCRIPTOR * SecurityDescriptor, _Out_opt_ PULONG SecurityDescriptorSize ); ► ConvertSecurityDescriptorToStringSecurityDescriptor ► Díky za pozornost ►