首页
社区
课程
招聘
49
[原创]简单利用_CSR_PROCESS结构枚举出进程
发表于: 2025-4-2 15:22 4114

[原创]简单利用_CSR_PROCESS结构枚举出进程

2025-4-2 15:22
4114

据微软公开文献解释到
图片描述
这种结构包含了特定于 Windows 子系统(Csrss)的进程信息。也就是说,只有 Windows 应用程序才有与之关联的结构(例如,会话管理器进程 Smss 就没有这样的结构)。
此外,由于每个会话都有其独立的 Windows 子系统实例,这些结构是由每个单独会话内的 Csrss 进程来维护的。
这个结构体在多个版本Windows更新中依旧很稳定

既然微软提供了文献,那我们就可以利用其遍历进程
第一步 我们要了解_CSR_PROCESS结构从哪里得到?
根据资料中提到,其位于 CSRSRV.dll下的全局参数 "CsrRootProcess"

图片描述

那么这个CsrRootProcess里面第一个值就是CSRSS进程的_CSR_PROCESS结构体,由此我们可以先附加上CSRSS进程,然后找出CSRSRV.dll模块,然后找到CsrRootProcess即可得到结构体

结构体内容如下:

通过获取特定结构体,我们可以访问所需的信息。例如,对于存储在每个进程中的链表,其位置处于每个 _CSR_PROCESS 结构体的 0x10 偏移处。每个 CSRSS 实例内部都维护着这样一个结构体链表。因此,要获取这些信息,您需要遍历所有 CSRSS 实例中的结构体链表。如果有多个 CSRSS.exe 进程,则对每个进程重复这一操作流程。整个过程相对直接。

_CSR_PROCESS结构体用于存储特定于Windows应用程序的进程信息,包括客户端ID、线程列表、关联的NT会话结构指针等重要成员。该结构体位于CSRSRV.dll模块下的全局参数CsrRootProcess中,其中第一个值即为CSRSS进程的_CSR_PROCESS结构体。
通过附加到CSRSS进程,并定位CSRSRV.dll模块中的CsrRootProcess,即可获取到_CSR_PROCESS结构体,从而开始遍历与之相关的进程信息。
_CSR_NT_SESSION结构体则包含了关于NT会话的信息,如会话ID、引用计数以及根目录信息等。此结构体与_CSR_PROCESS结构体相关联,共同维护了Windows子系统的会话管理信息。
遍历所有由Csrss实例维护的进程链表时,需注意对于每个Csrss.exe实例重复这一过程,特别是当存在多个这样的实例时。

// _CSR_NT_SESSION 结构体定义 (根据 WinDbg 输出)
typedef struct _CSR_NT_SESSION {
    /* +0x000 */ LIST_ENTRY SessionLink;      // 用于链接到全局 CSR 会话列表
    /* +0x010 */ ULONG      SessionId;        // NT 会话的 ID
    /* +0x014 */ LONG       ReferenceCount;   // CSRSS 内部对此结构的引用计数
    /* +0x018 */ STRING     RootDirectory;    // 会话相关的根目录信息 (可能是对象管理器路径)
    // 注意: STRING 结构本身大小是 16 字节 (在 64 位下,USHORT+USHORT+Padding+PCHAR),
    // 所以下一个成员应该在 0x18 + 0x10 = 0x28 处开始 (如果还有其他成员)
} CSR_NT_SESSION, * PCSR_NT_SESSION;
 
 
// _CSR_PROCESS 结构体定义 (64位, 包含对 _CSR_NT_SESSION 的引用)
typedef struct _CSR_PROCESS {
    /* +0x000 */ CLIENT_ID ClientId;                 // 进程和初始线程的唯一标识符
    /* +0x010 */ LIST_ENTRY ListLink;                 // 用于链接到全局 CSR 进程列表
    /* +0x020 */ LIST_ENTRY ThreadList;               // 此进程内 CSR 线程 (_CSR_THREAD) 列表的头部
    /* +0x030 */ struct _CSR_NT_SESSION* NtSession;  // 指向关联的 NT 会话结构
    /* +0x038 */ HANDLE ClientPort;                 // 客户端连接到 CSRSS 的 LPC 端口句柄
    /* +0x040 */ PVOID ClientViewBase;             // 指向与客户端共享内存区域的基地址
    /* +0x048 */ PVOID ClientViewBounds;           // 共享内存区域的边界或大小信息
    /* +0x050 */ HANDLE ProcessHandle;              // CSRSS 持有的此客户端进程的句柄
    /* +0x058 */ ULONG SequenceNumber;             // CSRSS 分配的进程序列号
    /* +0x05c */ ULONG Flags;                      // 描述进程状态的标志位 (e.g., CSR_PROCESS_*)
    /* +0x060 */ ULONG DebugFlags;                 // 与调试相关的标志
    /* +0x064 */ LONG ReferenceCount;             // CSRSS 内部对此结构的引用计数 (进程本身的)
    /* +0x068 */ ULONG ProcessGroupId;             // 控制台进程组 ID
    /* +0x06c */ ULONG ProcessGroupSequence;       // 进程在组内的序列号
    /* +0x070 */ ULONG LastMessageSequence;        // 最后处理的消息序列号
    /* +0x074 */ ULONG NumOutstandingMessages;     // 未完成(待回复)的消息数
    /* +0x078 */ ULONG ShutdownLevel;              // 进程的关机级别/优先级
    /* +0x07c */ ULONG ShutdownFlags;              // 关机相关的标志
    /* +0x080 */ LUID Luid;                       // 进程所属的登录会话 LUID
    /* +0x088 */ PVOID ServerDllPerProcessData[1]; // 指向服务器 DLL 特定于此进程的数据的指针数组(或指针)
} CSR_PROCESS, * PCSR_PROCESS;
// _CSR_NT_SESSION 结构体定义 (根据 WinDbg 输出)
typedef struct _CSR_NT_SESSION {
    /* +0x000 */ LIST_ENTRY SessionLink;      // 用于链接到全局 CSR 会话列表
    /* +0x010 */ ULONG      SessionId;        // NT 会话的 ID
    /* +0x014 */ LONG       ReferenceCount;   // CSRSS 内部对此结构的引用计数
    /* +0x018 */ STRING     RootDirectory;    // 会话相关的根目录信息 (可能是对象管理器路径)
    // 注意: STRING 结构本身大小是 16 字节 (在 64 位下,USHORT+USHORT+Padding+PCHAR),
    // 所以下一个成员应该在 0x18 + 0x10 = 0x28 处开始 (如果还有其他成员)
} CSR_NT_SESSION, * PCSR_NT_SESSION;
 
 
// _CSR_PROCESS 结构体定义 (64位, 包含对 _CSR_NT_SESSION 的引用)
typedef struct _CSR_PROCESS {
    /* +0x000 */ CLIENT_ID ClientId;                 // 进程和初始线程的唯一标识符

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 49
支持
分享
赞赏记录
参与人
雪币
留言
时间
mb_woefwqlg
为你点赞!
1天前
KALI_MC
非常支持你的观点!
1天前
Rainbow丶
非常支持你的观点!
1天前
雪梨不是雪莉
你的分享对大家帮助很大,非常感谢!
5天前
wx_R_837
期待更多优质内容的分享,论坛有你更精彩!
2025-4-14 05:17
mb_xecgqtmh
这个讨论对我很有帮助,谢谢!
2025-4-12 22:40
friendanx
感谢你的贡献,论坛因你而更加精彩!
2025-4-12 20:51
mb_teuksykn
谢谢你的细致分析,受益匪浅!
2025-4-11 18:27
mb_rveckyle
非常支持你的观点!
2025-4-11 16:19
BenBenWen
感谢你的贡献,论坛因你而更加精彩!
2025-4-11 03:30
git_46183EBalloon
感谢你的贡献,论坛因你而更加精彩!
2025-4-10 22:50
做好事不留名
期待更多优质内容的分享,论坛有你更精彩!
2025-4-10 16:52
wangkaicj
这个讨论对我很有帮助,谢谢!
2025-4-10 15:40
麦瑞鸭
感谢你的积极参与,期待更多精彩内容!
2025-4-10 12:29
Lnju
非常支持你的观点!
2025-4-10 11:08
游乐娃子
+10
谢谢你的细致分析,受益匪浅!
2025-4-9 17:25
jilvan
这个讨论对我很有帮助,谢谢!
2025-4-9 14:50
寒冰心结
感谢你的积极参与,期待更多精彩内容!
2025-4-9 14:00
Asbeel
感谢你分享这么好的资源!
2025-4-9 11:48
帝星捧月
期待更多优质内容的分享,论坛有你更精彩!
2025-4-9 11:05
珈蓝夜雨
感谢你的积极参与,期待更多精彩内容!
2025-4-8 18:04
mb_voklbwsn
感谢你的积极参与,期待更多精彩内容!
2025-4-8 17:37
梦里看花
你的分享对大家帮助很大,非常感谢!
2025-4-8 15:28
ldljlzw
你的帖子非常有用,感谢分享!
2025-4-8 11:21
道友请留步
非常支持你的观点!
2025-4-8 10:50
实都
你的帖子非常有用,感谢分享!
2025-4-8 10:12
煜凡
谢谢你的细致分析,受益匪浅!
2025-4-8 09:55
GloryRef
为你点赞!
2025-4-7 16:13
mb_vgegnqgx
感谢你的积极参与,期待更多精彩内容!
2025-4-7 11:47
0x指纹
+1
你的帖子非常有用,感谢分享!
2025-4-7 10:14
mb_dtidoewd
你的分享对大家帮助很大,非常感谢!
2025-4-7 09:34
我的小拇指啊
期待更多优质内容的分享,论坛有你更精彩!
2025-4-5 22:38
wowocock
感谢你的积极参与,期待更多精彩内容!
2025-4-5 21:44
cuituo
非常支持你的观点!
2025-4-5 21:22
AL10000
为你点赞!
2025-4-5 13:07
52niu
这个讨论对我很有帮助,谢谢!
2025-4-5 12:01
piaoyi587
谢谢你的细致分析,受益匪浅!
2025-4-5 07:17
软绵绵
+1
非常支持你的观点!
2025-4-4 23:29
moshuiD
谢谢你的细致分析,受益匪浅!
2025-4-4 23:07
qwepanzer
你的分享对大家帮助很大,非常感谢!
2025-4-3 13:30
signed
非常支持你的观点!
2025-4-3 10:46
appview
你的分享对大家帮助很大,非常感谢!
2025-4-3 10:26
mb_thmdyxrm
期待更多优质内容的分享,论坛有你更精彩!
2025-4-3 09:41
lanyuo
感谢你的积极参与,期待更多精彩内容!
2025-4-2 23:55
huangyalei
期待更多优质内容的分享,论坛有你更精彩!
2025-4-2 20:00
顽劣
为你点赞!
2025-4-2 19:29
寻影星尘
感谢你的贡献,论坛因你而更加精彩!
2025-4-2 17:46
ANormalUser
你的帖子非常有用,感谢分享!
2025-4-2 16:11
saloyun
这个讨论对我很有帮助,谢谢!
2025-4-2 15:59
最新回复 (19)
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
Make
2025-4-3 02:44
0
雪    币: 4999
活跃值: (5076)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
多谢分享
2025-4-3 07:46
0
雪    币: 3405
活跃值: (3150)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
多谢分享
2025-4-3 09:24
0
雪    币: 3090
活跃值: (3572)
能力值: ( LV8,RANK:147 )
在线值:
发帖
回帖
粉丝
5
mark
2025-4-3 10:19
0
雪    币: 20
活跃值: (1209)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习分析
2025-4-4 22:50
0
雪    币: 10430
活跃值: (5189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
多谢分享
2025-4-5 07:53
0
雪    币: 5145
活跃值: (3724)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
学习分析
2025-4-5 13:05
0
雪    币: 122
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
mark
2025-4-5 20:54
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
mark
2025-4-7 10:17
0
雪    币: 164
活跃值: (496)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark
2025-4-8 18:00
0
雪    币: 803
活跃值: (2694)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
mark
2025-4-8 22:04
0
雪    币: 24
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
mark
2025-4-9 13:49
0
雪    币: 538
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
mark
2025-4-9 14:10
0
雪    币: 220
活跃值: (851)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
又多了1种方式,
2025-4-10 19:11
0
雪    币: 197
活跃值: (10398)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
16
谢谢研究下.
2025-4-10 19:55
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
mark
2025-4-10 20:18
0
雪    币: 6
活跃值: (333)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
mark
2025-4-11 22:12
0
雪    币: 112
活跃值: (431)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
很牛b
2025-4-11 22:47
0
雪    币: 183
活跃值: (2462)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
mark
2025-4-13 00:24
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册