传说中的会话管理服务器进程,它是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 );

Smss.exe进程分析相关推荐

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

    来源:http://blog.vckbase.com/windowssky/archive/2007/04/17/25544.html 传说中的会话管理服务器进程,它是windows操作系统启动时引导 ...

  2. smss.exe是什么进程?详解Windows会话管理器中的smss.exe

    smss.exe是什么进程?详解Windows会话管理器中的smss.exe 进程综述 smss.exe是什么进程?详解Windows会话管理器中的smss.exe-冯金伟博客园smss.exe是什么 ...

  3. WindowsXP 进程分析

    [system process] - [system Idle process] - 进程信息 进程文件: [system process] or [system process] 进程名称: Win ...

  4. 彻底清除SMSS.EXE病毒

      概述: SMSS.EXE(Session Manager Subsystem),该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM,调用Win32壳子系统和运行在 ...

  5. SMSS.EXE病毒处理

    SMSS.EXE(Session Manager Subsystem),该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM,调用Win32壳子系统和运行在Window ...

  6. 最新征途木马专杀工具-------------------------SMSS.exe

    SMSS病毒介绍:这是一种Windows下的PE病毒,它采用VB6编写 ,是一个能够破坏IE和EXPLORER的征途木马病毒变种.该病毒会在注册表中多处添加自己的启动项,还会修改系统文件,并在[WIN ...

  7. 磁碟机变种简单分析(lsass.exe、smss.exe、dnsq.dll、NetApi000.sys)

    from: http://bbs.xcdx169.net/redirect.php?tid=56034&goto=lastpost&sid=NrNn1c 磁碟机变种简单分析(lsass ...

  8. svchost.exe进程的分析

    你是否经常在你电脑看到很多svchost.exe进程呢?有的人电脑有6个svchost.exe进程.有的人电脑更多的svchost.exe进程.例如我的电脑就有5个svchost.exe程序.一般来说 ...

  9. smss.exe之wom毒

    文章类别 文章来源 文章标题 提交者 发布日期 点击数 原创天空 yude smss.exe之wom毒 yude 2006-5-22 3159   这是一个WOW木马,最近好像中招的人多起来了,这个小 ...

最新文章

  1. ACM第一名:基于轨迹感知多模态特征的视频关系检测
  2. [k8s] 第三章 k8s 资源管理
  3. hibernate和jdbc的优缺点,概述
  4. gitblit如何迁移入gitlab合并迁移_github仓库迁移到gitlab以及gitlab仓库迁移到另一个gitlab服务器...
  5. python中的json注意事项
  6. sql server 2008学习5 sql基础
  7. 织梦DedeCMS实现 三级栏目_二级栏目_一级栏目_网站名称 的效果代码
  8. java手动分页工具类
  9. jQuery插件编写,
  10. php 封装模式,PHP设计模式(三):封装
  11. 四、矩阵特征值与特征向量的计算
  12. 七月算法机器学习5 回归分析与工程应用
  13. 由虚短、虚断分析集成运放电路
  14. 【每日早报】2019/07/17
  15. linux下多线程编程、线程间同步通信及应用详解、及踩过的坑
  16. lisp如何将度分秒转换为弧度_1/16怎么转换成角度(度分秒)??
  17. 微信双开/微信多开 程序
  18. 大数据与云计算学习:Python网络数据采集
  19. 费解的开关 Java
  20. 组装台式机后进入PE,检测不到硬盘的解决方法

热门文章

  1. 电商项目day09(网站前台之广告功能实现优化策略)
  2. SQL语句一二三之SQL基本语句
  3. 经典sql基本语句大全
  4. 中国智能手机集成电路(IC)行业市场供需与战略研究报告
  5. 一个可以免费下载O Reilly的书籍的地方
  6. 编写操作norflash的裸机程序
  7. MeasurementStudio安装教程
  8. uniapp接入支付宝支付详细申请流程2021.6.1
  9. namenode元数据多目录配置及测试
  10. 所有学习资源都给你你汇总好啦!