windows启动顺序大概流程和服务程序遇到的问题

更改 Windows+Ubuntu 双系统的启动顺序 更改 Windows+Ubuntu 双系统的启动顺序 打开计算机,在选择系统界面下,记录要更改的系统的序号,默认是从 0 开始,比如,Windows 系统位于第三行,那么它的序号就是 2 打开终端,进入到 /etc/default/ 目录下,可以执行下面的命令 cd /etc/default/ 输入下面的命令,随后进入下图所示的界面,即进入更改配置界面 sudo sudo nano grub 在上面的界面中,可以看到位于第一行的白色文字 GRUB_DEFAULT=0,将 0 更改为你要修改的 阅读详情

1.服务程序目前遇到的问题

(1)服务程序无法监控剪贴板;

(2)服务程序无法设置挂载的磁盘卷标;

(3)服务端发到客户端的thritf消息,调用剪贴板写入时会提示com失败的问题;

2.服务程序的启动顺序

参考文档:https://blog.youkuaiyun.com/singleyellow/article/details/104031963/

电脑开机后,大致的启动顺序是BIOS—>MBR—>活动分区—>Ntoskrnl.exe、HAL—>服务类型为0、1的服务—>会话管理器(smss.exe进程)。

服务程序的启动顺序先后,可能导致某些功能实现时出问题。比如说,系统环境还没有设置好,但是某个服务先启动,导致功能异常。

https://i-blog.csdnimg.cn/blog_migrate/0290df099c8e9f1793cae49b87161eca.png

2.1 会话管理器(smss.exe进程)

smss.exe由进程4(Ntoskrnl.exe)创建。

在使用基于ETW(Event Tracing for Windows事件查询)的进程监控工具procmon.exe的开机监控功能中看到,smss.exe是由进程4创建;

https://i-blog.csdnimg.cn/blog_migrate/0b714e6e304e7e8554ffb004c5f285cc.png

2.1.1 读取3处注册表项

HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute,        定义了Native程序。

HKLM\System\CurrentControlSet\Control\Session Manager\SubSystems,        决定启动哪些环境子系统进程。

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations        上次系统重启前未完成的重命名工作。

2.1.2 创建3个进程;

https://i-blog.csdnimg.cn/blog_migrate/bfdf8a347503b2582e14b501d0718e14.png

(1)Native程序:全部使用ntdll.dll中的API编写,先于环境子系统进程(csrss)启动,注册表HKLM\System\CurrentControlSet\Control\Session Manager\BootExecute 处决定了开机时smss.exe负责启动那些native程序(杀毒软件会在此处放置程序清除顽固病毒)。

https://i-blog.csdnimg.cn/blog_migrate/e867343bc9323221893890b6f32239c0.png

(2)环境子系统进程:

https://i-blog.csdnimg.cn/blog_migrate/9f7d015de06054d075644bb6fdbcda22.png

发现两个环境子系统posix、windows,其中psxss.exe程序并不存在,就只能启动csrss.exe程序;(说明注册表关联的路径不存在的exe不会导致系统异常。)

(3)PendingFileRenameOperations(有些电脑上没有这个注册表项)

具体见https://blog.youkuaiyun.com/singleyellow/article/details/100175816

 

2.2 winlogon启动了4个进程

https://i-blog.csdnimg.cn/blog_migrate/0290df099c8e9f1793cae49b87161eca.png

2.2.1 服务控制管理器(services.exe)

下面一大堆svchost.exe进程,一些远控、窃密病毒最喜欢冒充或者寄生里面;这个进程除了负责服务方面的管理工作,里面还寄生了Eventlog,PlugPlay服务,强行结束该进程,操作系统会关闭或者重启动。关于服务方面的东西可以看这里:https://blog.youkuaiyun.com/singleyellow/article/details/80486721

2.2.1.1 dll类型的服务

该类型的服务,可以通过svchost.exe通过命令行的方式启动。ZwCreateThreadEx函数是比CreateRemoteThread更底层的函数,可以注入dll到服务程序中。ZwCreateThreadEx函数没有在ntdll.dll中声明,所以需要使用GetProcAddress从ntdll.dll中获取该函数的导出地址。

以上几个服务启动的命令行如下:

C:\Windows\System32\svchost.exe -k PeerDist

C:\Windows\system32\svchost.exe -k netsvcs

C:\Windows\System32\svchost.exe -k wsappx –p

参考这个文档:https://blog.youkuaiyun.com/liujiayu2/article/details/76955903

服务启动命令-k netsvcs参数,并不是在告诉svchost.exe启动哪个服务。netsvcs代表的是组,表示这个服务是属于哪个组的。组具体有啥用,大概就是节省资源。正是由于采用了分组机制,系统中才会有多个svchost.exe进程,每个进程代表一个组。svchost.exe进程名字相同,主要是根据服务名字区分具体是哪个服务。

Browser服务来说,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services路径下有一个Browser项,名字和服务名字一样(也就是说,有多少个服务,这个路径下就有多少个项,和服务名称相对应),这个项里里边又有一个Parameters子项,Parameters子项里有一个名字叫ServiceDll的键,它的值就是dll的路径。如图:

2.2.1.2 exe类型的服务

可以通过SC命令或是windows API实现。在服务控制管理器中类似于下面这样。

"C:\Program Files (x86)\Uniontech P2V tool\uos-p2v-service.exe" "-d"

在注册表里面的表现形式是:

2.2.2 安全授权LSA(lsass.exe)

据说你的登录密码就在这个进程里面,不过有个法国人写了一个猕猴桃的工具运行一遍就可以直接拿到。记得永恒之蓝那个漏洞吧,漏洞触发之后就是使用APC注入到这个进程的。

2.2.3 登录界面(logoui.exe)

windows的登录界面。先于PE加载器(Explorer.EXE)启动,所以很多自启动的应用程序没有启动。

2.2.4 userinit.exe

winlogon.exe进程通过读取HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的userinit项完成启动;系统刚启动时,如果你调出任务管理器就会看到userinit.exe ,但过一段时间,系统各项加载完毕后,userinit.exe就会自动消失的记。不记得ranmit那个蠕虫 (到现在互联网上都没有清理干净),它就是通过这个注册表项和userinit.exe并行启动的。

https://i-blog.csdnimg.cn/blog_migrate/0640832556298a87fea4ee7339dafb72.png

2.2.5 PE加载器(Explorer.EXE)

Explorer.EXE为用户提供了图形用户界面(也称为图形壳),简单的说就是用来显示系统的桌面环境,包括桌面图标和文件管理。

注册表项Run、RunOnce、启动文件夹这些地方的开机启动,估计都是由PE加载器启动起来的。其中RunOnce里面的项是由 runonce.exe 调起,runonce.exe 又由 Explorer调起,runonce.exe 的完整级别为High Mandatory Level。

2.2.6 AppInit_Dlls注册表项

AppInit_Dlls这个注册表项,用来全局注入dll模块,该功能可以用来做后门持久化。任何使用到User32.dll 的EXE、DLL、OCX等类型的PE文件都会读取这个地方,并且根据约定的规范将这个键值下指向的DLL文件进行加载,加载的方式是调用 LoadLibrary( )函数。

https://i-blog.csdnimg.cn/blog_migrate/d0e7c0e5c08e9afaf45195ccc023d8a9.png

微软默认阻止用户通过appinit功能去加载未知的dll。不过,可以通过修改注册表键值LoadAppInit_DLLs为1去关闭该功能。将待加载的dll保存在Program Files文件夹,并且将AppInit_DLLs键值修改为待加载dll的路径,即可让所有windows进程都加载该dll。

Enable LoadAppInit_DLLs - 32bit and 64bit:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs - 0x1

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\LoadAppInit_DLLs - 0x1

3.服务启动类型

服务启动类型定义为5个等级,0、1级别的由操作系统启动,windows的驱动都是以服务形式存在,作为操作系统的一部分代码运行;2、3、4级别的则是由服务管理器(services.exe进程)启动;微软对服务启动类型的定义:

https://i-blog.csdnimg.cn/blog_migrate/037edbc79be282dec45faa675394ed0c.png

·  在打开的注册表中,定位到这个位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

·  在右侧面板中右键单击,执行:新建--字符串值

·  将其命名为List ,如果该值已经存在,可以直接进行修改

·  右键单击该项,然后在右键菜单中,选择修改

·  在数值数据中,输入windows的各项服务,这些服务就是按照从上到下的顺序启动的。然后点击确定按钮。完成设定。

Windows 11 如何设置应用/功能开机自启动,并控制启动顺序 ✨ Windows 11 开机自启动应用顺序混乱?本文教你全面掌控应用自启与顺序,彻底告别混乱与报错! 阅读详情

相关推荐

延迟顺序启动程序优化系统性能实战方案

延迟顺序启动,本质上是一场资源博弈与依赖协调的艺术。它不仅仅是“等一等”,而是通过科学建模、精准控制和容错设计,把原本混乱的启动过程转变为可控、可观测、可优化的系统行为。当你下次面对一台“开机即卡顿”的服务器时,不妨问自己三个问题:1. 哪些服务在争抢资源?2. 哪些依赖没有被正确处理?3. 是否可以通过DAG建模找到最优启动序列?只要答好这三个问题,你就已经走在成为系统架构高手的路上了 🚀。

weixin_26854475的博客 735

Windows启动顺序详解

Windows的启动过程包括以下几个阶段: 启动自检阶段 这个阶段主要是读取 BIOS ,然后内存,CPU,硬盘,键盘等设备进行自检。这个阶段在屏幕上显示就是自检的那些打印信息。 屏幕显示:自检的打印信息 初始化启动阶段 这个阶段根据 BIOS 指定的启动顺序,找到可以启动的优先启动设备,比如本地磁盘,CD Driver , USB 设备等等,然后准备从这些设备启动...

weixin_34335458的博客 500

改变Windows服务的启动顺序

改变Windows服务的启动顺序! 很值得下载看看!资源免费,大家分享!!

windows系统启动顺序怎么设置

掌握如何正确设置Windows系统的启动顺序是一项基础但十分有用的技能,无论是为了安装新软件还是解决现有的系统故障都非常关键。通过以上介绍,相信读者们已经学会了如何根据自己的需求灵活地调整计算机的启动顺序。只要遵循正确的步骤并且小心谨慎地执行每一步,就能够顺利完成任务而不至于破坏现有环境。

W888999O的博客 6037

雷电模拟器+Google Play服务配置全指南:从安装到定位问题解决

本文详细介绍了雷电模拟器配置Google Play服务的全流程,包括版本选择、组件安装、定位服务调试及网络问题排查。针对安卓开发者的常见挑战,提供从基础到高级的解决方案,帮助优化测试环境稳定性与定位精度。

weixin_30399821的博客 1236

3分钟搞定!QQ音乐歌单导出Excel保姆级教程(含歌单ID获取技巧)

本文提供了一份详细的QQ音乐歌单导出Excel保姆级教程,帮助用户轻松备份和管理个人音乐收藏。教程核心在于获取歌单ID,并利用浏览器开发者工具执行脚本提取数据,最后通过Excel导入功能快速生成结构化表格。整个过程无需编程基础,3分钟即可搞定,是个人数据管理的实用技巧。

weixin_29008691的博客 1400

windows 启动流程

预引导阶段 当我们打开计算机电源后,预引导过程就开始运行了。在这个过程中,计算机硬件首先要完成通电自检(Power-On Self Test,POST),这一步主要会对计算机中安装的处理器、内存等硬件进行检测,如果一切正常,则会继续下面的过程。 开始BIOS自检,通过自检后,bios找到硬盘上的主引导记录MBR。 引导阶段 bootmgr(xp 为ntldr)读取了文件系统驱动,...

292

从零到一:DAMASK与ABAQUS联合仿真的环境配置艺术

本文详细介绍了在Ubuntu 16.04系统中配置DAMASK与ABAQUS2017联合仿真环境的完整流程,涵盖系统基础环境搭建、Python科学计算环境构建、DAMASK核心安装与配置,以及ABAQUS集成与联合调试。通过实战案例和高级调试技巧,帮助用户快速掌握有限元分析中的晶体塑性模拟技术。

weixin_29253711的博客 857

wsappx_什么是“ wsappx”,为什么在我的PC上运行它?

wsappxThe “wsappx” process is part of Windows 8 and 10, and you may see it running in the background or even using a significant amount of CPU and disk resources. It’s related to the Windows Store and...

culiyuan8310的博客 3万+

5分钟搞定!用Keil MDK将STM32F103C8T6工程无缝迁移到ZET6开发板

本文详细介绍了如何在Keil MDK环境下快速将STM32F103C8T6工程迁移到ZET6开发板,涵盖硬件差异对比、工程配置调整、外设适配及编译排错等关键步骤,帮助开发者5分钟内完成工程移植,大幅提升开发效率。

weixin_30879169的博客 409

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

Windows XP 启动过程jjhou

此文译自 Windows XP Resource Kit Web Resource 中 Understanding the Startup Process 一章为了诊断和修复启动故障,您需要理解启动过程中发生了什么。第一步隔离启动问题,判断问题是发生在Microsoft® Windows® XP Professional 启动之前还是之后。 启动失败的根本原因,包括相关因素...

weixin_30699955的博客 451

SAP Fiori单点登录避坑指南:从SAML原理到实战,解决‘第一次登录跳转主页失败’和‘偶发进不了单点’

本文深入解析SAP Fiori单点登录(SSO)的SAML实战与疑难排查,涵盖SAML协议核心机制、SICF登录优先级控制及安全诊断工具的高级用法。针对‘首次登录跳转主页失败’和‘偶发单点登录失效’问题,提供从配置优化到生产环境稳定运行的全面解决方案,助力企业高效实现数字化转型。

weixin_29327977的博客 405

如何在Windows中控制启动程序的顺序

You are probably very familiar with the startup programs function of Windows. While you can specify the applications you want to launch at the start of Windows, the ability to control the order in whi...

culunxun2863的博客 1589

【WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解

WorkBuddy专栏14】专家不是「换皮」——角色切换、训练机制与自我进化深度拆解

AI人人懂 593

Vue2+OpenLayers动态绘制两个经纬度并计算距离(提供Gitee源码)

动态绘制两个经纬度并计算它们之间的距离。

黄团团的个人博客 366

windows顺序程序启动器

windows顺序程序启动器

学不会shader 329

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

计算机启动windows程序,Windows怎么设置开机程序启动顺序?

电脑开机的速度,跟我们开机的程序启动顺序,还有启动程序的数量都是有所关联的。有一些应用程序,譬如杀毒软件,都是需要开机启动的,通过合理的设置开机启动的顺序,可以大大提高开机的速度。那么Windows怎么设置开机程序启动顺序?方法/步骤:1、按 Win + R 打开运行并输入:“regedit”,按确定或回车打开注册表编辑器;2、打开注册表后,在左侧列表中依次展开:“HKEY_LOCAL_MACHI...

weixin_33711871的博客 3605

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

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

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

麒麟系统+Windows双系统修改启动顺序

麒麟系统+Windows双系统修改启动顺序

weixin_66313542的博客 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Windows XP启动时驱动加载顺序调试

Windows XP启动时驱动加载顺序调试: 说明:因为这里的调试采用的是针对IopLoadDriver下断的方法,无法调试到BOOT启动加载的驱动. ============================================================================= 操作系统版本:Windows XP Professional Version

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 4331

使用bcdedit 更改windows vista 的启动顺序

下了个windows vista试用,等我旅游一趟回来,发现要激活。但我又没有激活码,所以连操作系统都进不去。vista安装后更改了启动顺序,将vista 设为缺省启动。这样我每次启动电脑一不留神就跑vista里面去了,而又不能用。查看XP的boot顺序,根本连vista的选项都没有。这就是说,我无法更改启动顺序,而缺省却总引导到一个我不能用的vista?查看XP的boot.ini,发现vis

周海汉的开发专栏 2216

Win 开机自启动顺序

所有 Windows 系列都没有提供调整开机自启动优先级的功能,但 Windows 可以间接延迟启动顺序。 1:自启动方式 开机自启动一般有以下三种方式,启动顺序根据设置方式决定。 系统启动时执行的顺序大于用户登录时执行的顺序。 方式 解释 计划任务 用户登录时执行 和 系统启动时执行 都可以设置。 没有计划 启动文件夹 用户登录时执行。 注册表 有两条路径,分别是 用户...

weixin_46012855的博客 4185

如何改变Windows 服务的启动顺序。

要改变Windows服务的启动顺序,只要修改Windows的注册表就可 以了。任何Windows服务的注册信息可以在注册表的HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices键下找到。下面就介绍几个与服务启动顺序相关的服务的值:  Group值:一个REG_SZ类型的值。它用来描述服务属于那一个服务组。如果服务没有这一项,那么它不属于任何一个服务

Alex Zhang's Blog 2388

计算机启动bios的访问顺序,访问任何Windows版本的BIOS更改启动顺序 | MOS86

不管更改引导顺序的原因是什么,访问BIOS的过程都可能因计算机而异。 差异将取决于您的计算机上是旧版BIOS还是较新的UEFI BIOS或两者。除了如何访问它们之外,我不会详细介绍这两种BIOS之间的区别。 进入计算机上的BIOS后,便可以更改引导顺序。因此,首先让我们谈谈进入BIOS。 如果您不确定计算机是使用Legacy还是UEFI BIOS还是Legacy + UEFI(这实际上是第三种选择...

weixin_31115505的博客 2023

【Ubuntu】修改ubuntu和windows双系统启动顺序

GRUB(GRand Unified Bootloader,大一统引导程序)是一个用于加载和管理系统启动的完整程序。它是 Linux 发行版中最常见的引导程序bootloader。引导程序是计算机启动时运行的第一个软件。它加载 操作系统的内核,然后再由内核初始化操作系统的其他部分(包括 Shell、显示管理器、桌面环境 等等)。Ubuntu+Windows双系统默认使用GRUB作为引导管理器,而且通常默认启动Ubuntu。这样过于死板,而且也不一定符合我们个人的使用习惯。可以通过更改Grub配置文件实现。

amnesiagreen的博客 6760
上一篇: 基于lsp劫持或hook api的方式的代理客户端
下一篇: 映像劫持,windows服务启动的两种形式
灰灰君呀
博客等级 码龄16年 13粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值