zoukankan      html  css  js  c++  java
  • 如何手动添加Windows服务和如何把一个服务删除

    windows 手动添加服务
    方法一:修改注册表
      在注册表编辑器,展开分支"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices",在右侧窗格中显示的就是本机安装的服务项。如果要新建服务,只须点击"编辑→新建→项" ,然后为此项命名,如"test";然后右击该项,选择"新建→字符串值"或"新建→Dword值"即可。添加一个服务项目具体需要添加的键值如下: "DisplayName",字符串值,对应服务名称;
      "Description",字符串值,对应服务描述;
      "ImagePath",字符串值,对应该服务程序所在的路径;
      "ObjectName",字符串值,值为"LocalSystem",表示本地登录;
      "ErrorControl",Dword值,值为"1";
      "Start",Dword值,值为2表示自动运行,值为3表示手动运行,值为4表示禁止;
      "Type",Dword值,应用程序对应10,其它对应20。
      另外,还要在"test"项下新建一个"Enum"项。如果有些必须通过srvany来加载的还必须 添加另外的Parameters子项在该项中提供详细的要加为服务的程序所在的路径。而上面的那个 路径就需要指到srvany所在的路径。
      方法二:脚本操作
      sc create myserver binpath= c:windowsScmyserver.exe
      sc config myservers tart= auto
      sc start myserver
      方法三: 写注册表文件
      现在很多的木马、后门、蠕虫病毒都是通过修改注册表中的RUN键值来实现自启动。
      但是这种自启动模式不是很隐蔽的,稍微懂点安全的人,一般发现电脑被黑,都会查看RUN键值的。
      于是系统服务便成为了一种相对隐蔽的自启动模式。比如冲击波杀手就采用系统服务来自启动病毒程序。
      现在添加系统服务的工具很多,最典型的就是netservice。但是我们这里讲的是手工添加系统服务,所以工具的使用不在本文的讨论范围之内。
      WINDOWS里的很多东西都是跟注册表息息相关的,系统服务也不例外。
      系统服务跟以下的注册表几个项目相关:
      HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
      HKEY_LOCAL_MACHINESYSTEMControlSet001Services
      HKEY_LOCAL_MACHINESYSTEMControlSet002Services
    我们完全可以找到在系统服务中已注册的服务的键值来依样画葫芦。
      在以上任何注册表列中添加一个新项:
      名字是你想要添加系统服务的名字,比如Backdoor。
      在BACKDOOR项下新建一个字符串,数值名称Displayname 数值数据为要添加服务的
      名称Backdoor。
    下面列出一个表,会直观一些:
      名称 类型 数据 备注
      Displayname REG_SZ 想要添加服务的名称 想要添加服务的名称
    Description REG_SZ 服务的描述 服务的描述
    ImagePath REG EXPAND SZ 程序的路径
    Start REG_DWORD 0,2,3,4 2代表自动启动,3代表手动启动服务.4代表禁用服务,0代表系统对底层设备驱动(一般不需要这个)
    ErrorControl REG_DWORD 1
    Type REG_DWORD 10 or 20 一般应用程序都是10,其他的对应20
    ObjectName REG_SZ LocalSystem 显示本地登陆
      注意:在XP/2003下可以完全手工来添加REG EXPAND SZ类型。在XP/2003下直接修改ImagePath 键值就可以了。但是在WIN2000下却不可以。原因我也不清楚:(。但是在WIN2000下我们写一个REG来直接注册系统服务,这样WIN2000下添加系统也能很轻松了。这里同样需要注意的是注册表文件里的ImagePath的数值类型必须是HEX(16进制)。可以拿WINHEX来把程序的绝对路径转换成16进制的。每一个数值用逗号搁开。比如我的ImagePath键值是C:winnt ukegroup.exe那就应该转换成:
    63,3A,5C,77,69,6E,6E,74,5C,6E,75,6B,65,2E,65,78,65(无空格)
      打开记事本,敲入以下内容:
      Windows Registry Editor Version 5.00
      [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices"want to create the name of service"]
      "Type"=dword:00000010
      "Start"=dword:00000002
      "ErrorControl"=dword:00000001
      "ImagePath"=hex(2):63,3A,5C,77,69,6E,6E,74,5C,6E,75,6B,65,2E,65,78,65
      "DisplayName"="SRVTEST"
      "ObjectName"="LocalSystem"
      "Description"="系统服务测试"
      把以上信息保存为addsrv.reg,我们就可以依靠命令来导入注册表,从而达到添加系统服务的目的。
      我们在命令控制台输入regedit /s addsrv.reg,等机器重新启动,这个服务就被成功添加了。
      但是我在真正实验的时候就遇到困难了。ImagePath的数值是乱码(1)(2),

    怎么想也不明白。但是这时可以把乱码修改成绝对路径了。如果直接把REG信息写成这样
    "ImagePath"=hex(2):C:WINNTNUKEGROUP.EXE
      其他的键值都可以添加,这个键值就不可以了?总之我们可以先添加乱码的ImagePath,然后再修改成C:winnt ukegroup.exe 这样也不是不可能的。就是在命令行下来添加就很麻烦了。(3)
      以上是Windows 2000手工添加系统服务的方法,对于Windows 98 注册表结构是不一样的,但是Windows 98仍然可以通过注册表来实现添加系统服务,而且还要更简单一些。
      在项目“HKLM/SOFTWARE/Microsoft/WindowsCurrentVersion/RunServices”下添加一个新字符串数值。
      比如,如果程序的名字叫做“BACKDOOR”,就建立一个名为“BACKDOOR”的字符串数值,然后在数据域中输入执行程序的完整路径。
      手工添加一个系统服务就这么简单,手工删除系统也是一个道理。通过注册表来实现,这里就不多说了。

    办法一: 用 sc.exe 这个 Windows 命令 开始——运行——cmd.exe,然后输入 sc 就可以看到了.使用办法很简单: sc delete "服务名" (如果服务名中间有空格,就需要前后加引号) 如针对上面的: sc delete ConnectMON 办法二: 办法二:直接进行注册表编辑 打开注册表编辑器,找到下面的键值: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可. 特殊情况 1,如果服务显示的是 rundll32.exe,并且这个文件是位于 system32 目录下,那么就不能删 除这个 rundll32.exe 文件,它是 Windows 系统的文件.这时只要清除相关的服务就可以了 2,如果一个服务删除了马上又自动建立了,说明后台有进程在监视,保护.需要先在进 程管理器中杀掉相应的进程,或者启动后按 F8,到安全模式下删除.
  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/SunOne/p/4952335.html
Copyright © 2011-2022 走看看