windows 手动添加服务方法一:修改注册表 在注册表编辑器,展开分支"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services",在右侧窗格中显示的就是本机安装的服务项。如果要新建服务,只须点击"编辑→新建→项" ,然后为此项命名,如"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:\windows\Sc\myserver.exe sc config myservers tart= auto sc start myserver 方法三: 写注册表文件 现在很多的木马、后门、蠕虫病毒都是通过修改注册表中的RUN键值来实现自启动。 但是这种自启动模式不是很隐蔽的,稍微懂点安全的人,一般发现电脑被黑,都会查看RUN键值的。 于是系统服务便成为了一种相对隐蔽的自启动模式。比如冲击波杀手就采用系统服务来自启动病毒程序。 现在添加系统服务的工具很多,最典型的就是netservice。但是我们这里讲的是手工添加系统服务,所以工具的使用不在本文的讨论范围之内。 WINDOWS里的很多东西都是跟注册表息息相关的,系统服务也不例外。 系统服务跟以下的注册表几个项目相关: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services我们完全可以找到在系统服务中已注册的服务的键值来依样画葫芦。 在以上任何注册表列中添加一个新项: 名字是你想要添加系统服务的名字,比如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 1Type REG_DWORD 10 or 20 一般应用程序都是10,其他的对应20ObjectName REG_SZ LocalSystem 显示本地登陆 注意:在XP/2003下可以完全手工来添加REG EXPAND SZ类型。在XP/2003下直接修改ImagePath 键值就可以了。但是在WIN2000下却不可以。原因我也不清楚:(。但是在WIN2000下我们写一个REG来直接注册系统服务,这样WIN2000下添加系统也能很轻松了。这里同样需要注意的是注册表文件里的ImagePath的数值类型必须是HEX(16进制)。可以拿WINHEX来把程序的绝对路径转换成16进制的。每一个数值用逗号搁开。比如我的ImagePath键值是C:\winnt\nukegroup.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_MACHINE\SYSTEM\CurrentControlSet\Services\"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:\WINNT\NUKEGROUP.EXE 其他的键值都可以添加,这个键值就不可以了?总之我们可以先添加乱码的ImagePath,然后再修改成C:\winnt\nukegroup.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_MACHINE\SYSTEM\CurrentControlSet\Services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可. 特殊情况 1,如果服务显示的是 rundll32.exe,并且这个文件是位于 system32 目录下,那么就不能删 除这个 rundll32.exe 文件,它是 Windows 系统的文件.这时只要清除相关的服务就可以了 2,如果一个服务删除了马上又自动建立了,说明后台有进程在监视,保护.需要先在进 程管理器中杀掉相应的进程,或者启动后按 F8,到安全模式下删除.
转载于:https://www.cnblogs.com/SunOne/p/4952335.html
