CSRSS 디버깅
CSRSS(클라이언트 서버 Run-Time 하위 시스템)는 Windows 환경의 기본 계층을 제어하는 사용자 모드 프로세스입니다.
참고
Windows 10 CSRSS는 보호된 프로세스이며 커널 모드에서만 디버깅할 수 있습니다.
보호된 프로세스에 대한 일반적인 정보와 Wininit 및 csrs와 같은 Windows 보호된 중요한 코드에 대한 추가 세부 정보는 Pavel Yosifovich, Mark E. Russinovich, David A. Solomon 및 Alex Ionescu의 Windows Internals 를 참조하세요.
CSRSS 프로세스 정보 표시
CSRSS를 검사하기 위해 커널 디버깅을 사용하여 일부 정보를 사용할 수 있습니다.
!process 확장을 사용하여 csrss.exe 연결된 프로세스에 대한 정보를 표시합니다.
0: kd> !process 0 0 csrss.exe
PROCESS ffffe381a583b080
SessionId: 0 Cid: 027c Peb: e0c93ef000 ParentCid: 0270
DirBase: 115478000 ObjectTable: ffffaa87786b67c0 HandleCount: 722.
Image: csrss.exe
PROCESS ffffe381a68ab140
SessionId: 1 Cid: 02f4 Peb: 186a447000 ParentCid: 02dc
DirBase: 143c0e000 ObjectTable: ffffaa87786b5200 HandleCount: 445.
Image: csrss.exe
연결된 프로세스 중 하나를 사용하고 .process(프로세스 컨텍스트 설정) 명령을 사용하여 컨텍스트를 해당 위치로 설정합니다.
0: kd> .process /r /p ffffe381a583b080
Implicit process is now ffffe381`a583b080
Loading User Symbols
이제 dt(표시 유형) 명령을 사용하여 프로세스 구조를 직접 표시합니다.
0: kd> dt csrss!_csr_process
+0x000 ClientId : _CLIENT_ID
+0x010 ListLink : _LIST_ENTRY
+0x020 ThreadList : _LIST_ENTRY
+0x030 NtSession : Ptr64 _CSR_NT_SESSION
+0x038 ClientPort : Ptr64 Void
+0x040 ClientViewBase : Ptr64 Char
+0x048 ClientViewBounds : Ptr64 Char
+0x050 ProcessHandle : Ptr64 Void
+0x058 SequenceNumber : Uint4B
+0x05c Flags : Uint4B
+0x060 DebugFlags : Uint4B
+0x064 ReferenceCount : Int4B
+0x068 ProcessGroupId : Uint4B
+0x06c ProcessGroupSequence : Uint4B
+0x070 LastMessageSequence : Uint4B
+0x074 NumOutstandingMessages : Uint4B
+0x078 ShutdownLevel : Uint4B
+0x07c ShutdownFlags : Uint4B
+0x080 Luid : _LUID
+0x088 ServerDllPerProcessData : [1] Ptr64 Void
!peb 확장을 사용하여 PEB(프로세스 환경 블록)에 대한 추가 정보를 표시할 수 있습니다.