Détermination de la liste de contrôle d’accès d’un objet
Vous pouvez utiliser le débogueur pour examiner la liste de contrôle d’accès (ACL) d’un objet.
La méthode suivante peut être utilisée si vous effectuez un débogage du noyau. Pour l’utiliser pendant que vous effectuez un débogage en mode utilisateur, vous devez rediriger le contrôle vers un débogueur de noyau. Pour plus d’informations, consultez Contrôle du débogueur de User-Mode à partir du débogueur de noyau .
Tout d’abord, utilisez l’extension de débogueur !object avec le nom de l’objet en question :
kd> !object \BaseNamedObjects\AgentToWkssvcEvent
Object: ffbb8a98 Type: (80e30e70) Event
ObjectHeader: ffbb8a80
HandleCount: 2 PointerCount: 3
Directory Object: e14824a0 Name: AgentToWkssvcEvent
Cela indique que l’en-tête de l’objet a une adresse 0xFFBB8A80. Utilisez la commande dt (Type d’affichage) avec cette adresse et le nom de structure nt !_OBJECT_HEADER :
kd> dt nt!_OBJECT_HEADER ffbb8a80
+0x000 PointerCount : 3
+0x004 HandleCount : 2
+0x004 NextToFree : 0x00000002
+0x008 Type : 0x80e30e70
+0x00c NameInfoOffset : 0x10 '
+0x00d HandleInfoOffset : 0 '
+0x00e QuotaInfoOffset : 0 '
+0x00f Flags : 0x20 ' '
+0x010 ObjectCreateInfo : 0x8016b460
+0x010 QuotaBlockCharged : 0x8016b460
+0x014 SecurityDescriptor : 0xe11f08b6
+0x018 Body : _QUAD
La valeur du pointeur de descripteur de sécurité s’affiche en tant que 0xE11F08B6. Les 3 bits les plus bas de cette valeur représentent un décalage au-delà du début de cette structure. Vous devez donc les ignorer. En d’autres termes, la structure SECURITY_DESCRIPTOR commence à 0xE11F08B6 & ~0x7. Utilisez l’extension !sd sur cette adresse :
kd> !sd e11f08b0
->Revision: 0x1
->Sbz1 : 0x0
->Control : 0x8004
SE_DACL_PRESENT
SE_SELF_RELATIVE
->Owner : S-1-5-32-544
->Group : S-1-5-18
->Dacl :
->Dacl : ->AclRevision: 0x2
->Dacl : ->Sbz1 : 0x0
->Dacl : ->AclSize : 0x44
->Dacl : ->AceCount : 0x2
->Dacl : ->Sbz2 : 0x0
->Dacl : ->Ace[0]: ->AceType: ACCESS_ALLOWED_ACE_TYPE
->Dacl : ->Ace[0]: ->AceFlags: 0x0
->Dacl : ->Ace[0]: ->AceSize: 0x14
->Dacl : ->Ace[0]: ->Mask : 0x001f0003
->Dacl : ->Ace[0]: ->SID: S-1-5-18
->Dacl : ->Ace[1]: ->AceType: ACCESS_ALLOWED_ACE_TYPE
->Dacl : ->Ace[1]: ->AceFlags: 0x0
->Dacl : ->Ace[1]: ->AceSize: 0x18
->Dacl : ->Ace[1]: ->Mask : 0x00120001
->Dacl : ->Ace[1]: ->SID: S-1-5-32-544
->Sacl : is NULL
Cela affiche les informations de sécurité pour cet objet.