注册系统服务方法
来源:互联网 发布:c语言中a是多少 编辑:程序博客网 时间:2024/06/11 04:57
前几天下了个鸽子来研究下注册成系统服务的方法(我不用鸽子),发现它是用rundll32导入一个inf来实现的,这个应该是加了注册表锁(禁用reg脚本,禁用regedit)都有效的吧?
例子如下:
增加一个服务:
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供对 Internet 信息服务管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary=%11%/inetsvr.exe
保存为inetsvr.inf,然后:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:/path/inetsvr.inf
这个例子增加一个名为inetsvr的服务(是不是很像系统自带的服务,呵呵)。
几点说明:
1,最后四项分别是
服务类型:0x10为独立进程服务,0x20为共享进程服务(比如svchost);
启动类型:0 系统引导时加载,1 OS初始化时加载,2 由SCM(服务控制管理器)自动启动,3 手动启动,4 禁用。
(注意,0和1只能用于驱动程序)
错误控制:0 忽略,1 继续并警告,2 切换到LastKnownGood的设置,3 蓝屏。
服务程序位置:%11%表示system32目录,%10%表示系统目录(WINNT或Windows),%12%为驱动目录system32/drivers。其他取值参见DDK。你也可以不用变量,直接使用全路径。
这四项是必须要有的。
2,除例子中的六个项目,还有LoadOrderGroup、Dependencies等。不常用所以不介绍了。
3,inetsvr后面有两个逗号,因为中间省略了一个不常用的参数flags。
删除一个服务:
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall.Services]
DelService=inetsvr
很简单,不是吗?
当然,你也可以通过导入注册表达到目的。但inf自有其优势。
1,导出一个系统自带服务的注册表项,你会发现其执行路径是这样的:
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,/
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,/
00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00
可读性太差。其实它就是%SystemRoot%/system32/tlntsvr.exe,但数据类型是REG_EXPAND_SZ。当手动导入注册表以增加服务时,这样定义ImagePath显然很不方便。而使用inf文件就完全没有这个问题,ServiceBinary(即ImagePath)自动成为REG_EXPAND_SZ。
2,最关键的是,和用SC等工具一样,inf文件的效果是即时起效的,而导入reg后必须重启才有效。
3,inf文件会自动为服务的注册表项添加一个Security子键,使它看起来更像系统自带的服务。
另外,AddService和DelService以及AddReg、DelReg可以同时且重复使用。即可以同时增加和删除多个服务和注册表项。
我就是这样手工把黑洞注册成服务了,呵呵。
安静的补充:
不错...
我是用把黑洞感染进别的服务文件以达到以服务方式启动的....
特点是隐蔽性好!~..还有点自我保护功能呵呵..就算他删了.重新启动又会再生成
由于是感染进去的所以不会影响原文件:)
- 注册系统服务方法
- windows系统服务的注册及运行服务方法
- windows系统服务的注册及运行服务方法收藏
- windows系统服务的注册及运行服务方法
- Linux 系统服务注册
- 如何注册系统服务
- windows注册系统服务
- Linux注册系统服务
- Linux 注册系统服务
- android注册系统服务
- Tomcat 注册系统服务
- 注册、卸载系统服务
- Android系统服务注册
- linux注册系统服务
- Linux 注册系统服务
- 灰鸽子注册成系统服务的方法--参考用于黑洞
- Windows 自定义exe文件注册系统服务方法(Inber write)
- 将bat文件注册为windows系统服务的方法
- 经典的存储过程的学习- -
- SOAP1.1规范
- 关于表单
- 判断多个文本框输入的数据是不是有重复(原创)
- 办公室人际关系的至尊宝典(转)
- 注册系统服务方法
- Windows编程高手请指教!
- 我有了自己的blog
- 我的CSDN博客诞生
- 转载--关于SQL Server中事务的理解
- 为DataGrid创建自定义列控件(一)
- 内核防火墙netfilter入门
- [转]深入Linux网络核心堆栈
- 深入研究Asp.net页面的生命周期