Depurando CSRSS
O CSRSS (Client Server Run-Time Subsystem) é o processo de modo de usuário que controla a camada subjacente para o ambiente do Windows.
Observação
Começando no Windows 10, o CSRSS é um processo protegido e só pode ser depurado no modo kernel.
Para obter informações gerais sobre processos protegidos, bem como detalhes adicionais sobre código crítico e protegido pelo Windows, como wininit e csrss, consulte Windows Internals by Pavel Yosifovich, Mark E. Russinovich, David A. Solomon e Alex Ionescu.
Exibir informações do processo do CSRSS
Para examinar o CSRSS, algumas informações estão disponíveis usando a depuração de kernel.
Use a extensão !process para exibir informações sobre processos associados a 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
Pegue um dos processos associados e defina o contexto para esse local usando o comando .process (Definir Contexto do Processo).
0: kd> .process /r /p ffffe381a583b080
Implicit process is now ffffe381`a583b080
Loading User Symbols
Agora, use o comando dt (Tipo de Exibição) para mostrar a estrutura do processo diretamente:
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
A extensão !peb pode ser usada para exibir informações adicionais sobre o PEB (bloco de ambiente de processo).