引言:

本来是不想研究这些东西的,但是米老大指示要求禁用网上邻居,顺便研究一下。

其实禁用网上邻居,可以简单的从注册表禁用,不过这样太苍白无力了,既然做,就做强悍点,直接从服务入手,彻底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启动服务原理(如何查看系统服务究竟启动了哪个文件)相关推荐

  1. svchost.exe启动服务原理

    svchost.exe本身只是作为服务宿主,并不实现任何服务功能,需要svchost.exe启动的服务以动态链接库形式实现,在安装这些服务时,把服务的可执行程序指向svchost.exe,启动这些服务 ...

  2. android启动服务的生命周期,android Service启动运行服务 生命周期

    Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...

  3. android 启动服务权限,android – 当我尝试启动服务时权限被拒绝

    我试图从Activity访问InputMethodService,我遇到了权限问题.这适用于自定义键盘应用. 我想要实现的是将在Activity中创建的文本绑定回InputMethodService. ...

  4. Django自学之 自学过程遇到的坑:pycharm点击服务绿色三角无法启动服务,django项目突然无法启动服务

    最近自己在自学Django,因为小白比较穷,所以就从网上找一些资料文档和实例来进行入门的学习啦!现在已经是自学的第三天,可是昨天突然发现,自己点击启动服务▶️无法启动,然后尝试重启pycharm.使用 ...

  5. win7关闭开机启动项_win7系统如何查看注册表启动项 win7系统查看注册表启动项方法【介绍】...

    很多用户都清楚开机启动项除了能够使用msconfig命令打开之外,也可以使用第三方工具.注册表查看开机启动项,因为数值的存在,注册表看到的启动项比较准确,不过有很电脑用户都不知道win7系统怎么查看注 ...

  6. CentOS6/7 日常管理--启动服务及日志查看

    CentOS6 chkconfig  / chkconfig --list显示开机启动服务列表 chkconfig --level 3 服务名 on/off chkconfig 服务名 on/off ...

  7. redis linux无法启动服务,CentOS7 下redis不能开机启动,求解?

    我的/etc/init.d/redis 脚本可以正常启动或者停止redis服务 service redis start service redis stop service redis restart ...

  8. svchost.exe进程的分析

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

  9. Svchost.exe占用CPU100%全面解析与进程说明

    在win.ini文件中,在[WINDOWS]下面,"run="和"load="是可能加载"***"程序的途径,必须仔细留心它们.一般情况下, ...

最新文章

  1. Android日志系统分析之开篇
  2. python学起来难吗-Python入门学习难吗,新手如何学习
  3. php error 2,一起搞懂PHP的错误和异常(二)
  4. pandas基础(part5)--透视表与交叉表
  5. cordova 项目添加splash启动界面
  6. 基本功 | Java即时编译器原理解析及实践
  7. linux内存碎片malloc,linux_ptmalloc下malloc()的过程:有 ptmalloc 源码
  8. MIT App Inventor使用与入门教程
  9. php 天气小偷程序,天气小偷程序,自动采集信息入库
  10. VirtualBox 中的Centos如何安装VBoxGuestAdditions
  11. 如何使用visio画出思维导图
  12. C盘清理--模拟器(夜神为例)占用空间越来越大问题解决方案(本方法适用于安装过多个APK,虽然卸载了但是占用仍然很严重的情况)
  13. C++ 11 多线程之future
  14. android最佳开发实现_在android开发中使用可访问性最佳做法
  15. 计算机二级C语言备考指南
  16. python分析红楼梦出现的虚词词频统计_用Python分析红楼梦,见证贾府的兴衰
  17. 将 时间戳 转为 任意日期格式
  18. 人生就是修炼,修什么?
  19. flash图片如何镜像翻转_FLASH特效与实例-立体层旋转效果.
  20. Windows 7 小工具

热门文章

  1. 【问题解决】Excel无法打开文件xxx.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
  2. JS导出Echarts图标数据为Excel表格
  3. MT7628学习笔记(12)——GPIO操作,注册LED驱动
  4. jetson Tx2 使用Python打开板载相机with opencv
  5. 职称论文发表第三作者有用吗
  6. 印度最具零售投资吸引力
  7. 4G路由器解决方案 物联网 4G透明传输模块的功能
  8. [蓝桥杯单片机]学习笔记——共阳数码管的静态与动态显示
  9. 【STM32实战】机械臂快递分拣系统(二)——机械臂控制程序(上位机)编写
  10. 新华三培训4---路由器