Smss.exe进程分析

Windows XP进程管理:核心进程解析与优化实践 进程管理是操作系统核心功能之一,通过分配CPU时间和内存资源确保系统稳定运行。Windows XP采用精简的进程模型,其核心进程如smss.exe、csrss.exe等构成了系统基础框架,这些进程机制至今仍影响现代Windows设计。理解进程原理对系统优化至关重要,例如通过services.msc禁用非必要服务可提升性能,而验证进程合法性则需检查路径、数字签名等要素。在XP这类资源受限系统中,合理设置虚拟内存和注册表参数能显著改善运行效率。对于安全防护,监控svchost.exe等关键进程的行为模式,结合P 阅读详情
来源:http://blog.vckbase.com/windowssky/archive/2007/04/17/25544.html
传说中的会话管理服务器进程,它是windows操作系统启动时引导的最重要的系统进程,它负责启动csrss.exe和winlogon.exe进程,并对它们进行监控,如果发现其中一个挂掉,它马上叫你当机,所以要想结束csrss.exe/winlogon.exe,先结束Smss.exe,源码前一目了然(摘自windows nt 4.0代码)



//1 Module Info : 变量定义,提高当前进程的优先级(11级)
    NTSTATUS Status;
    KPRIORITY SetBasePriority;
    UNICODE_STRING InitialCommand, DebugInitialCommand, UnicodeParameter;
    HANDLE ProcessHandles[ 2 ];
    ULONG Parameters[ 4 ];
    ULONG Response;
    PROCESS_BASIC_INFORMATION ProcessInfo;
    BOOLEAN WasEnabled;
    SetBasePriority = FOREGROUND_BASE_PRIORITY+2;//#define FOREGROUND_BASE_PRIORITY 9
    Status = NtSetInformationProcess( NtCurrentProcess(),
                                      ProcessBasePriority,
                                      (PVOID) &SetBasePriority,
                                      sizeof( SetBasePriority )
                                    );
    ASSERT(NT_SUCCESS(Status));
    if (ARGUMENT_PRESENT( DebugParameter )) {
        SmpDebug = DebugParameter;
        }

//2 Module Info : 获取Csrss.exe和winlogon.exe进程的句柄,并对它们进行监控
try {
        Status = SmpInit( &InitialCommand, &ProcessHandles[ 0 ] );//返回crsss.exe进程的句柄
        if (!NT_SUCCESS( Status )) {
            KdPrint(( "SMSS: SmpInit return failure - Status == %x/n" ));
            RtlInitUnicodeString( &UnicodeParameter, L"Session Manager Initialization" );
            Parameters[ 1 ] = (ULONG)Status;
            }
        else {
            SYSTEM_FLAGS_INFORMATION FlagInfo;
            NtQuerySystemInformation( SystemFlagsInformation,
                                      &FlagInfo,
                                      sizeof( FlagInfo ),
                                      NULL
                                    );
            if (FlagInfo.Flags & (FLG_DEBUG_INITIAL_COMMAND | FLG_DEBUG_INITIAL_COMMAND_EX) ) {
                DebugInitialCommand.MaximumLength = InitialCommand.Length + 64;
                DebugInitialCommand.Length = 0;
                DebugInitialCommand.Buffer = RtlAllocateHeap( RtlProcessHeap(),
                                                              MAKE_TAG( INIT_TAG ),
                                                              DebugInitialCommand.MaximumLength
                                                            );
                if (FlagInfo.Flags & FLG_ENABLE_CSRDEBUG) {
                    RtlAppendUnicodeToString( &DebugInitialCommand, L"ntsd -p -1 -d " );
                    }
                else {
                    RtlAppendUnicodeToString( &DebugInitialCommand, L"ntsd -d " );
                    }
                if (FlagInfo.Flags & FLG_DEBUG_INITIAL_COMMAND_EX ) {
                    RtlAppendUnicodeToString( &DebugInitialCommand, L"-g -x " );
                    }
                RtlAppendUnicodeStringToString( &DebugInitialCommand, &InitialCommand );
                InitialCommand = DebugInitialCommand;
                }
            Status = SmpExecuteInitialCommand( &InitialCommand, &ProcessHandles[ 1 ] );//返回winlogon进程句柄
            if (NT_SUCCESS( Status )) {
                Status = NtWaitForMultipleObjects( 2,
                                                  ProcessHandles,
                                                  WaitAny,
                                                  FALSE,
                                                  NULL
                                                );
                }
            if (Status == STATUS_WAIT_0) {
                RtlInitUnicodeString( &UnicodeParameter, L"Windows SubSystem" );
                Status = NtQueryInformationProcess( ProcessHandles[ 0 ],
                                                    ProcessBasicInformation,
                                                    &ProcessInfo,
                                                    sizeof( ProcessInfo ),
                                                    NULL
                                                  );
                KdPrint(( "SMSS: Windows subsystem terminated when it wasn't supposed to./n" ));
                }
            else {
                RtlInitUnicodeString( &UnicodeParameter, L"Windows Logon Process" );
                if (Status == STATUS_WAIT_1) {
                    Status = NtQueryInformationProcess( ProcessHandles[ 1 ],
                                                        ProcessBasicInformation,
                                                        &ProcessInfo,
                                                        sizeof( ProcessInfo ),
                                                        NULL
                                                      );
                    }
                else {
                    ProcessInfo.ExitStatus = Status;
                    Status = STATUS_SUCCESS;
                    }
                KdPrint(( "SMSS: Initial command '%wZ' terminated when it wasn't supposed to./n", &InitialCommand ));
                }
            if (NT_SUCCESS( Status )) {
                Parameters[ 1 ] = (ULONG)ProcessInfo.ExitStatus;
                }
            else {
                Parameters[ 1 ] = (ULONG)STATUS_UNSUCCESSFUL;
                }
            }
        }
    except( SmpUnhandledExceptionFilter( GetExceptionInformation() ) ) {
        RtlInitUnicodeString( &UnicodeParameter, L"Unhandled Exception in Session Manager" );
        Parameters[ 1 ] = (ULONG)GetExceptionCode();
        }


//3 Module Info : 当机代码!呵呵,其实就是通知操作系统,发生了一个硬件中断

  Status = RtlAdjustPrivilege( SE_SHUTDOWN_PRIVILEGE,
                                (BOOLEAN)TRUE,
                                TRUE,
                                &WasEnabled
                              );//提高当前的权限,可以执行shutdown指令
    if (Status == STATUS_NO_TOKEN) {
        //
        // No thread token, use the process token
        //
        Status = RtlAdjustPrivilege( SE_SHUTDOWN_PRIVILEGE,
                                    (BOOLEAN)TRUE,
                                    FALSE,
                                    &WasEnabled
                                  );
        }
    Parameters[ 0 ] = (ULONG)&UnicodeParameter;
    Status = NtRaiseHardError( STATUS_SYSTEM_PROCESS_TERMINATED,
                              2,
                              1,
                              Parameters,
                              OptionShutdownSystem,
                              &Response
                            );//看看,字面意思就知道发生什么了,唤起硬件错误
    //
    // If this returns, giveup
    //
    NtTerminateProcess( NtCurrentProcess(), Status );
Windows XP进程管理:关键进程解析与异常排查 进程管理是操作系统核心功能,通过分配CPU时间和内存资源确保系统稳定运行。Windows XP采用微内核架构,关键系统进程如smss.exe、csrss.exe构成运行基础,而explorer.exe等应用进程提供用户交互。掌握WMIC命令和tasklist工具可深度分析进程属性,识别病毒伪装(如异常路径的svchost.exe)。在工业控制等遗留系统中,定期监控进程CPU/内存占用、管理启动项能有效预防系统卡死。通过对比基准进程列表,可快速定位恶意程序或资源泄漏问题,这对维护老旧系统的稳定性尤为重要。 阅读详情

相关推荐

Windows XP进程管理:核心进程解析与优化技巧

操作系统进程管理是计算机系统资源分配的核心机制,通过任务调度和内存管理确保系统稳定运行。Windows XP采用微内核架构,其关键进程如Csrss.exe、Smss.exe构成系统运行基础,而svchost.exe等服务宿主机制则实现了服务模块化。理解这些进程原理有助于诊断系统异常,例如通过Process Explorer工具分析可疑进程,或优化启动项提升性能。在安全领域,进程签名验证和文件路径检查能有效识别伪装成系统进程的恶意软件。这些技术至今仍影响着现代操作系统的进程管理设计,特别是在嵌入式系统和工业控

weixin_29300241的博客 310

windows server蓝屏报错解决方案

联想服务器蓝屏解决方案 错误代码: c000021a 错误提示: The unhandled exception in Session Manager system process terminated with a status of 0x0000005 如出现以下报错,或出现无法开机的问题,请尝试后续方法 1、重启机器,过程中 连续点击 F12 2、当看到一个蓝色的选项卡时,选择第二个,即windows Boot Manager(不是第一个 Intel volume0) 3、进入以下界面后,选择最后

weixin_44062380的博客 2万+

Windows 2000核心进程架构与运维实战解析

操作系统进程管理是系统稳定性的基石,Windows NT内核通过会话管理、子系统隔离等机制实现多任务调度。以Windows 2000为例,其smss.exe进程采用创新的自终止设计完成环境初始化,csrss.exe作为Win32子系统守护者处理线程调度与DOS兼容,winlogon.exe则构建完整的安全认证链。这些经典设计通过LPC进程通信机制协同工作,奠定了现代Windows架构基础。在企业级运维场景中,进程树监控、内存池优化等技巧至今仍具参考价值,特别是针对早期进程注入攻击的防护方案,展现了微软在系统

weixin_33742618的博客 439

蓝屏

我对蓝屏的认为: 一、蓝屏含义 1、故障检查信息 ***STOP 0x0000001E(0xC0000005,0xFDE38AF9,0x0000001,0x7E8B0EB4) KMODE_EXCEPTION_NOT_HANDLED ***其中错误的第一部分是停机码(Stop Code)也就是STOP 0x0000001E, 用于识别已发生错误的类型, 错误第二部分是被括号括起来的四个数字集, 表示

fbihui的专栏 1401

模拟smss.exe:打造无敌进程

进程保护是现代操作系统中极为重要的一环,它的目的在于保证系统进程的正常运行,防止恶意软件或未授权的修改。在实现上,进程保护机制采取多种方法确保系统稳定性和安全性。首先,进程保护可以通过设置访问控制列表(ACL)对关键进程实施权限控制,确保只有授权程序能够进行操作。其次,通过使用数字签名和代码签名验证机制,确保进程的完整性和来源的可靠性。此外,内存保护技术如数据执行防止(DEP)和地址空间布局随机化(ASLR)也被广泛运用于进程保护中,以增加攻击者利用系统漏洞的难度。

weixin_32098457的博客 683

[原创]无敌进程让你的进程变得和smss.exe一样

此函数可打开或关闭 开启以后进程变得和smss.exe一样进程被杀系统直接蓝屏

服务器蓝屏分析

一般大家遇到计算机蓝屏问题,看到如此长的一串错误代码,往往不知所云。就算把错误代码放到百度上搜索,也众说纷纭,最后无奈重装系统。 我最近也遇到了这样的困扰,我们的序号服务器近期来,时不时蓝屏,并且蓝屏的几率越来越大,最严重的情况下,一天蓝屏3次之多。我也根据蓝屏的错误代码到网上看,有的说是驱动问题,有的说是主机散热问题,还有的说是内存条质量不好,我晕倒。无奈和信管商量,准备重装系统,...

JPaiwu的博客 1920

LabVIEW内存优化实战:用DVR和队列高效处理大型数组,告别数据副本

本文深入探讨LabVIEW内存优化技术,重点介绍数据值引用(DVR)和单元素队列(SEQs)在高效处理大型数组中的应用。通过对比传统方法与现代引用技术的性能差异,提供减少内存副本、提升程序效率的实战方案,帮助开发者在测试测量、图像处理等数据密集型场景中实现显著性能提升。

weixin_30835649的博客 1062

解决windows蓝屏 STOP:c000021a {Fatal System Error} (by 星空武哥)

昨天晚上睡觉前正常关闭笔记本电脑,正常断开电源,所有的一切操作都是正常的,但是第二天电脑开机,却……蓝屏了 提示 STOP:c000021a {Fatal System Error}__The session Manager Initialization system process terminated unexpectedly with a status of 0xc000003a  (0

星空武哥的专栏 7万+

TI AWR1642实战指南:CCS调试mmWave Demo Visualizer全流程解析

本文详细解析了TI AWR1642开发板的CCS调试流程,重点介绍了mmWave Demo Visualizer的使用方法。从环境准备、版本确认到bin文件烧录、CCS工程配置,再到调试启动与结果验证,提供了全流程的实战指南,帮助开发者快速掌握AWR1642的调试技巧,避免常见错误。

weixin_30790841的博客 111

Ansys Zemax与Speos协同设计:HUD系统从光学优化到驾驶模拟的全流程解析

本文详细解析了如何利用Ansys Zemax与Speos这对“黄金搭档”进行HUD系统的协同设计。流程始于Zemax进行核心光学架构与像差优化,奠定性能基础;随后将设计无缝导入Speos,通过HUD光学分析模块进行量化验证;最终在虚拟驾驶环境中进行沉浸式模拟,评估实际视觉体验与系统集成效果,实现从光学优化到驾驶模拟的全流程闭环。

weixin_29201933的博客 274

Windows蓝屏分析

Windows 11 蓝屏分析

PwnGuo的博客 4537

Anchor graph 对齐文献解读

Align then Fusion: Generalized Large-scale Multi-view Clustering with Anchor Matching Correspondences文献解读

atease0001的博客 1165

Smss.exe 进程分析--NT 源码--当机方法

来源:http://blog.vckbase.com/windowssky/archive/2007/04/17/25544.html传说中的会话管理服务器进程,它是windows操作系统启动时引导的最重要的系统进程,它负责启动csrss.exe和winlogon.exe进程,并对它们进行监控,如果发现其中一个挂掉,它马上叫你当机,所以要想结束csrss.exe/winlogon.exe,先结束S

FISH 的专栏 1972

通讯模块_三菱IQ-R PLC串口通讯模块RJ71C24进行Modbus-RTU通讯

在日常的选型中,很多电气工程师咨询我,三菱iQ-R系列有没有Modbus通讯模块,我在这里可以肯定的回复您,这个肯定是有的;我们共有三种可以选择分别是RJ71C24、RJ71C24-R2、RJ71C24-R4。RJ71C24系列支持MC协议通信、通信协议通信、无顺序协议通信、双向协议通信全、MODBUS通信。当我帮助他们选型之后,他们在使用的时候,又是一头雾水。那么今天我抽一些时间讲解一RJ71...

weixin_39878549的博客 9274

模型实战(16)之StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

StrongSort (OSNET)配合YOLOv5、v7、v8 实现多目标跟踪详解

yohnyang的博客 1771

smss!SmpStartCsr函数分析之SmpLoadSubSystemsForMuSession3389远程桌面新进程csrss.exe的由来

smss!SmpStartCsr函数分析之SmpLoadSubSystemsForMuSession3389远程桌面新进程csrss.exe的由来

linux-0.11调试教程 655

流媒体之LL-HLS 低延时HLS协议

LL-HLS协议通过扩展了HLS协议,为实时直播场景提供了更丰富的功能,如延迟控制、播放列表增量更新、阻止播放列表重新加载等。同时客户端可以更灵活地控制播放列表的加载和播放,以适应各种场景和需求。LL-HLS在直播中的延时可以控制在3s内, 但是即使这样, 还是不如RTMP, RTSP等协议的实时性。

技术控的笔记 3367

深入解析Windows核心进程smss.exe:启动机制、多实例原理与安全排查

在Windows操作系统启动过程中,进程管理是系统初始化的核心环节。系统通过创建关键的用户模式进程来协调启动任务,其中会话管理器子系统(Session Manager Subsystem)扮演着至关重要的角色。该进程负责创建系统环境变量、加载必要的子系统(如Win32子系统)、初始化页面文件以及运行启动程序,为后续所有应用程序提供运行基础。其技术价值在于确保了系统启动的稳定性和会话隔离性,是进行高级故障排查(如启动卡顿、蓝屏分析)和安全分析(识别恶意软件伪装)的基石。在实际应用场景中,理解其多实例原理(通常

weixin_30615767的博客 472

使用 Simulink Real-Time 搭建一个完整的实时信号采集与滤波系统模型

本文详细介绍了基于Simulink Real-Time构建实时信号采集与滤波系统的完整流程。主要内容包括:系统配置(模型创建与参数设置)、信号采集模块搭建(模拟信号源或真实硬件连接)、实时滤波器设计(浮点/定点)、输出可视化(Scope/ToWorkspace等)、模型编译与下载到目标机、外部模式在线调试及数据保存方法。系统可实现微秒级实时信号处理,适用于工业控制、航空航天等对时间确定性要求高的场景。文章还提供了优化建议(多速率建模、优先级调度等)和应用场景说明,帮助读者快速掌握实时系统开发的核心技能。

amy_mhd的博客 304

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

C:/Windows/Temp/fmystar/smss.exe

C:/Windows/Temp/fmystar/smss.exe

qq 117791303 379

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Win2000系统进程解析与安全防护实战

操作系统进程管理是计算机系统的核心机制,Windows NT内核通过进程隔离实现多任务处理。Win2000作为经典NT系统,其smss.exe、services.exe等核心进程奠定了现代Windows架构基础。理解系统进程原理对网络安全至关重要,特别是在分析老旧系统漏洞时。通过进程签名验证、内存dump分析等技术,可有效识别病毒伪装和rootkit隐藏。在企业内网安全评估中,针对Win2000的进程加固(如禁用高危服务、设置访问控制)能显著提升系统防护能力,这对工控系统等特殊场景尤为重要。

weixin_33600816的博客 256

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从 Phase 1 初始化到 SMSS 进程启动分析

ReactOS内核初始化与SMSS进程启动机制分析 本文分析了ReactOS内核从Phase1初始化到启动SMSS(会话管理器子系统)进程的关键流程。核心机制是通过线程调度器的上下文切换,利用iret指令从Ring 0切换到Ring 3运行用户态进程。 主要内容包括: Phase1初始化线程调用ExpLoadInitialProcess创建SMSS进程 RtlCreateUserProcess内部通过PspCreateProcess和PspCreateThread创建进程和线程 KiInitializeCo

大坡3D软件开发 262

Windows 2000核心进程架构与关键系统组件解析

操作系统进程管理是计算机系统的核心机制,通过进程间通信(IPC)实现资源协调与任务调度。Windows NT架构采用分层设计理念,将系统进程划分为内核模式、会话管理和用户服务三个层级,这种架构既保证了系统稳定性,又支持多用户环境。在Windows 2000中,关键进程如smss.exe、csrss.exe和winlogon.exe各司其职,共同维护系统运行。理解这些进程的工作原理对于系统故障排查和安全防护至关重要,特别是在处理高CPU占用、内存泄漏等典型问题时。现代Windows系统虽已演进,但其基础架构仍

weixin_34241036的博客 425

Windows XP进程管理与安全防护实战指南

进程管理是操作系统核心功能之一,通过任务调度和资源分配实现多任务并行。Windows系统采用微内核架构,关键系统进程如smss.exe、csrss.exe等构成基础运行环境。理解进程监控技术对系统维护至关重要,任务管理器的CPU占用率和内存使用量是基础指标,而I/O写入和句柄数等高级指标能有效诊断后台异常。在安全防护层面,系统进程常成为恶意软件攻击目标,如通过LSASS漏洞(MS04-011)进行凭证窃取。掌握tasklist、WMIC等命令行工具,配合进程路径验证和数字签名检查,可构建有效的安全防护体系,

weixin_33883104的博客 278
上一篇: NDIS and TDI Hooking, Part II
下一篇: PE加载器的实现
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值