다음을 통해 공유


개체의 ACL 확인

디버거를 사용하여 개체의 ACL(액세스 제어 목록)을 검사할 수 있습니다.

커널 디버깅을 수행하는 경우 다음 메서드를 사용할 수 있습니다. 사용자 모드 디버깅을 수행하는 동안 사용하려면 컨트롤을 커널 디버거로 리디렉션해야 합니다. 자세한 내용은 커널 디버거에서 User-Mode 디버거 제어 를 참조하세요.

먼저 해당 개체의 이름과 함께 !object 디버거 확장을 사용합니다.

kd> !object \BaseNamedObjects\AgentToWkssvcEvent
Object: ffbb8a98  Type: (80e30e70) Event
    ObjectHeader: ffbb8a80
    HandleCount: 2  PointerCount: 3
    Directory Object: e14824a0  Name: AgentToWkssvcEvent

이는 개체 헤더에 주소 0xFFBB8A80 있음을 보여줍니다. 이 주소와 nt!_OBJECT_HEADER 구조체 이름과 함께 dt(표시 유형) 명령을 사용합니다.

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

보안 설명자 포인터 값은 0xE11F08B6 표시됩니다. 이 값의 가장 낮은 3비트 는 이 구조체의 시작 부분을 지나는 오프셋을 나타내므로 무시해야 합니다. 즉, SECURITY_DESCRIPTOR 구조는 실제로 0xE11F08B6 & ~0x7 시작됩니다. 이 주소에서 !sd 확장을 사용합니다.

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

이 개체에 대한 보안 정보가 표시됩니다.