调试 CSRSS - Windows drivers

客户端服务器 Run-Time 子系统 (CSRSS) 是控制 Windows 环境底层的用户模式进程。

注意

从 Windows 10 开始,CSRSS 是一个受保护的进程,只能在内核模式下进行调试。

有关受保护进程的一般信息,以及有关 Windows 保护的关键代码(如 wininit 和 csrss)的其他详细信息,请参阅由 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 (Set Process Context) 命令将上下文设置为该位置。

0: kd> .process /r /p ffffe381a583b080

Implicit process is now ffffe381`a583b080

Loading User Symbols

现在,使用 dt (Display Type) 命令直接显示进程结构:

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) 的其他信息。

[an error occurred while processing the directive]
Copyright © 2088 迷你世界杯_竞猜世界杯 - xhfzmy.com All Rights Reserved.
友情链接