Csrss进程剖析

本文深入探讨了Windows中的Csrss进程,详细介绍了其在系统中的角色,包括桌面管理、终端登录等。通过分析Csrss加载的模块,如basesrv.dll、csrsrv.dll和winsrv.dll,揭示了Csrss如何监控和管理Win32子系统进程。此外,文章阐述了Csrss与Win32子系统进程之间的通信机制,特别是通过LPC端口进行交互的过程。
摘要由CSDN通过智能技术生成
这几天想了解下神秘的进程csrss,在学习和了解的过程中就写下了自己对csrss进程的理解。
   Csrss(客户端/服务器运行时子系统)是 Win32 子系统的用户模式部分,在桌面管理、终端登录、控制台管理、错误报告报告和DOS 虚拟机等方面起着重要作用,另外还监控着系统内所有Win32 子系统进程和线程的运行,进程的创建与退出,都需要通知Csrss。
  图1是用内核工具xuetr观察Csrss进程加载的模块。(以下的分析环境为xp sp2 32位)
                            名称:  csrss.jpg
查看次数: 767
文件大小:  113.9 KB
                               图1
  
  由图1中我们可以知道Csrss进程除了加载诸如Kernel32,ntdll等基础模块之外,basesrv.dll,csrsrv.dll ,winsrv.dll就是Csrss进程的核心模块,因此我们重点研究这几个模块,当然研究这几个模块就要那个这几个模块的pdb文件,我们利用windbg提供的工具SymChk 下载这几个模块的pdb文件,首先在cmd命令行中进入windbg目录,然后用如下命令:
Symchk /r  c:\windows\system32 /s SRV*c:\mysymbols\* http://msdl.microsoft.com/download/symbols

  如图2.
                                         名称:  symchk.jpg
查看次数: 764
文件大小:  74.7 KB
                                            图2
  
  这样我们就有了csrss进程核心模块的pdb文件,为下面我们用IDA分析这些模块提供了方便。
  
  csrsrv.dll 里面有一个未导出符号叫做 CsrRootProcess, 对 csrss 起着重要的作用。CsrRootProcess 指向一个 CSR_PROCESS 结构。
  
  CSR_PROCESS 结构 (Vista/2008, 对于 XP/2003 同样适用) 如下:
  typedef struct _CSR_PROCESS
  {
  CLIENT_ID ClientId;
  LIST_ENTRY ListLink;
  LIST_ENTRY ThreadList;
  struct _CSR_PROCESS *Parent;
  PCSR_NT_SESSION NtSession;
  ULONG ExpectedVersion;
  HANDLE ClientPort;
  ULONG_PTR ClientViewBase;
  ULONG_PTR ClientViewBounds;
  HANDLE ProcessHandle;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值