svchost.exe启动服务原理(如何查看系统服务究竟启动了哪个文件)
引言:
本来是不想研究这些东西的,但是米老大指示要求禁用网上邻居,顺便研究一下。
其实禁用网上邻居,可以简单的从注册表禁用,不过这样太苍白无力了,既然做,就做强悍点,直接从服务入手,彻底kill网上邻居服务(是篡改服务文件,而不是简单的暂停服务),神也无力回天,除非修复系统。
网上邻居核心服务是ComputerBrowser,那么如何找到这个服务启动的文件呢?
再多废话点,提醒各位需要禁用网上邻居的童鞋,别忘了网上邻居还有DOS版哦~~~,命令是NET,直接篡改C:\Windows\System32目录下的net.exe即可简单禁用。
注意,我们做的不是病毒,不仅能篡改,还要能改回来,不能破坏系统。
正文:
svchost.exe本身只是作为服务宿主,并不实现任何服务功能,需要svchost.exe启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost.exe,启动这些服务时由svchost.exe调用相应服务的动态链接库来启动服务。
双击服务列表的服务,可以看到服务详细信息。
其中,C:\Windows\System32\svchost.exe-k netsvcs这个路径当然就是启动服务的关键信息,其实,后边的这个-k netsvcs参数并不是在告诉svchost.exe启动哪个服务,netsvcs代表的是组,表示这个服务是属于哪个组的,组具体有啥用,大概就是节省资源什么乱七八糟的。正是由于采用了分组机制,系统中才会有多个svchost.exe进程,每个进程代表一个组。
那svchost.exe是怎么区分不同的服务呢?原来是根据服务名字区分的。。。搞个什么参数,弄的这么复杂,原来还是根据服务名字区分的。。。。
注意服务的名称,可不是服务列表里直接看到的名称,双击服务从属性里看以看到,如图:
哪个服务对应哪个dll,都是保存在注册表里的,路径是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services。
就拿上边的Browser服务来说,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services路径下有一个Browser项,名字和服务名字一样(也就是说,有多少个服务,这个路径下就有多少个项,和服务名称相对应),这个项里里边又有一个Parameters子项,Parameters子项里有一个名字叫ServiceDll的键,它的值就是dll的路径。如图:
这样一来,svchost.exe根据服务名称找到相应的键值,就找到要启动的dll了。
当然,不是所有的服务都是通过svchost.exe启动的,以上的方法仅仅适用于利用svchost.exe启动的服务,如果服务本身就是exe,而不是dll,不需要借助于svchost.exe。
如果服务不通过svchost.exe启动,那么就更简单,直接在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services路径下找到和服务名称一样的项,项中有一个叫ImagePath的键,这个键的值就是服务exe文件的路径和启动参数。如图:
svchost.exe启动服务原理(如何查看系统服务究竟启动了哪个文件)相关推荐
- svchost.exe启动服务原理
svchost.exe本身只是作为服务宿主,并不实现任何服务功能,需要svchost.exe启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost.exe,启动这些服务 ...
- android启动服务的生命周期,android Service启动运行服务 生命周期
Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...
- android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
我试图从Activity访问InputMethodService,我遇到了权限问题.这适用于自定义键盘应用. 我想要实现的是将在Activity中创建的文本绑定回InputMethodService. ...
- Django自学之 自学过程遇到的坑:pycharm点击服务绿色三角无法启动服务,django项目突然无法启动服务
最近自己在自学Django,因为小白比较穷,所以就从网上找一些资料文档和实例来进行入门的学习啦!现在已经是自学的第三天,可是昨天突然发现,自己点击启动服务▶️无法启动,然后尝试重启pycharm.使用 ...
- win7关闭开机启动项_win7系统如何查看注册表启动项 win7系统查看注册表启动项方法【介绍】...
很多用户都清楚开机启动项除了能够使用msconfig命令打开之外,也可以使用第三方工具.注册表查看开机启动项,因为数值的存在,注册表看到的启动项比较准确,不过有很电脑用户都不知道win7系统怎么查看注 ...
- CentOS6/7 日常管理--启动服务及日志查看
CentOS6 chkconfig / chkconfig --list显示开机启动服务列表 chkconfig --level 3 服务名 on/off chkconfig 服务名 on/off ...
- redis linux无法启动服务,CentOS7 下redis不能开机启动,求解?
我的/etc/init.d/redis 脚本可以正常启动或者停止redis服务 service redis start service redis stop service redis restart ...
- svchost.exe进程的分析
你是否经常在你电脑看到很多svchost.exe进程呢?有的人电脑有6个svchost.exe进程.有的人电脑更多的svchost.exe进程.例如我的电脑就有5个svchost.exe程序.一般来说 ...
- Svchost.exe占用CPU100%全面解析与进程说明
在win.ini文件中,在[WINDOWS]下面,"run="和"load="是可能加载"***"程序的途径,必须仔细留心它们.一般情况下, ...
最新文章
- Android日志系统分析之开篇
- python学起来难吗-Python入门学习难吗,新手如何学习
- php error 2,一起搞懂PHP的错误和异常(二)
- pandas基础(part5)--透视表与交叉表
- cordova 项目添加splash启动界面
- 基本功 | Java即时编译器原理解析及实践
- linux内存碎片malloc,linux_ptmalloc下malloc()的过程:有 ptmalloc 源码
- MIT App Inventor使用与入门教程
- php 天气小偷程序,天气小偷程序,自动采集信息入库
- VirtualBox 中的Centos如何安装VBoxGuestAdditions
- 如何使用visio画出思维导图
- C盘清理--模拟器(夜神为例)占用空间越来越大问题解决方案(本方法适用于安装过多个APK,虽然卸载了但是占用仍然很严重的情况)
- C++ 11 多线程之future
- android最佳开发实现_在android开发中使用可访问性最佳做法
- 计算机二级C语言备考指南
- python分析红楼梦出现的虚词词频统计_用Python分析红楼梦,见证贾府的兴衰
- 将 时间戳 转为 任意日期格式
- 人生就是修炼,修什么?
- flash图片如何镜像翻转_FLASH特效与实例-立体层旋转效果.
- Windows 7 小工具
热门文章
- 【问题解决】Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
- JS导出Echarts图标数据为Excel表格
- MT7628学习笔记(12)——GPIO操作,注册LED驱动
- jetson Tx2 使用Python打开板载相机with opencv
- 职称论文发表第三作者有用吗
- 印度最具零售投资吸引力
- 4G路由器解决方案 物联网 4G透明传输模块的功能
- [蓝桥杯单片机]学习笔记——共阳数码管的静态与动态显示
- 【STM32实战】机械臂快递分拣系统(二)——机械臂控制程序(上位机)编写
- 新华三培训4---路由器