中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 13:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助] SC CREATE命令如何创建不能结束的进程或服务? 查看 1,675 回复 6
楼 主 [求助] SC CREATE命令如何创建不能结束的进程或服务? 发表于 2009-03-16 21:32 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
NT系统中的SC 命令非常有用,但是最近做一个款杀毒软件NOD32,原版的杀毒软件安装后不能使用任务管理器结束ekrn.exe(提示无法结束系统进程)也不能使用sc delete删除服务,而我自己使用"%WINDIR%\SYSTEM32\SC.EXE" CREATE "ekrn" TYPE= INTERACT TYPE= OWN START= AUTO BINPATH= "%CD%\ekrn.exe" DISPLAYNAME= "Eset Service"命令创建的进程不仅能使用任何管理器结束也能使用sc delete删除服务。
请问各位高手,有没有办法使创建的进程服务不能手动结束。在线等等。。。。。
2 发表于 2009-03-16 21:56 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
关于删除服务我找到了方法,就是使用SETACL给服务加个权限就删除不了。
3 发表于 2009-03-16 22:04 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
另外SETACL也具有设置SRV的权限,不知道怎么用,也许用这个也可以实现效果。
4 发表于 2009-03-16 23:05 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
今天怎么这么冷清,继续顶。
5 发表于 2009-03-16 23:49 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
很明显的跟SC没有任何关系,那得杀毒的自我保护功能的作用

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
6 发表于 2009-03-17 02:43 ·  中国 北京 联通
初级用户
★★
积分 48
发帖 51
注册 2009-03-03 23:23
17年会员
UID 140498
性别 女
状态 离线
关了360,然后删除其文件夹,弹出提示框:如图
我的进程列表如图:
用unlocker 显示也没有锁定的操作,为什么还会有提示框呢?
360 是如何做到的呢? 是怎样保护自己呢?

7 发表于 2009-03-18 05:56 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
19年会员
UID 62249
状态 离线
找到了方法。思路很简单,主要有以下几点。
一是FailureActions:这个是其实就是启动失败后的操作,经过测试,也是服务进程结束(失败)后的操作,这个是关键,没有这个操作则结束进程后不会再自动启动服务。我下面的FailureActions无论你怎么结束都无法结束,因为会自动生成。
二是使用setacl设置服务的注册表权限,禁止被删除,这样你使用服务管理器的时候无法停止进程。
三是使用setacl设置服务的操作权限为只读,这样用户就不能停止服务了。
代码如下:具体可以参考我的BLOG:http://xbdsoft.kmip.net/article/gsoft/52.htm

SC CREATE "ekrn" TYPE= INTERACT TYPE= OWN START= AUTO BINPATH= "%CD%\ekrn.exe" DISPLAYNAME= "Eset Service"
REM SC failure ekrn reset= 60 actions= restart/60/restart/60/restart/60
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ekrn" /v "FailureActions" /t REG_BINARY /d "3C000000000000000000000001000000000000000100000000000000" /f
NET START "Eset Service">NUL
set op=-ot reg -actn ace -ace "n:everyone;p:read;m:grant;w:dacl" -actn setprot -op "dacl:p_nc"
IF NOT "%WINDIR:~-2%"=="PE" setacl -on "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ekrn" %op%
set svr=-ot srv -actn ace -ace "n:Everyone;m:grant;p:read;i:sc"


[ Last edited by HUNRYBECKY on 2009-3-18 at 06:02 ]
论坛跳转: