Board logo

标题: [求助] SC CREATE命令如何创建不能结束的进程或服务? [打印本页]

作者: HUNRYBECKY     时间: 2009-3-16 21:32    标题: [求助] SC CREATE命令如何创建不能结束的进程或服务?

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删除服务。
请问各位高手,有没有办法使创建的进程服务不能手动结束。在线等等。。。。。
作者: HUNRYBECKY     时间: 2009-3-16 21:56
关于删除服务我找到了方法,就是使用SETACL给服务加个权限就删除不了。
作者: HUNRYBECKY     时间: 2009-3-16 22:04
另外SETACL也具有设置SRV的权限,不知道怎么用,也许用这个也可以实现效果。
作者: HUNRYBECKY     时间: 2009-3-16 23:05
今天怎么这么冷清,继续顶。
作者: yishanju     时间: 2009-3-16 23:49
很明显的跟SC没有任何关系,那得杀毒的自我保护功能的作用
作者: QOIQoc     时间: 2009-3-17 02:43
关了360,然后删除其文件夹,弹出提示框:如图
我的进程列表如图:
用unlocker 显示也没有锁定的操作,为什么还会有提示框呢?
360 是如何做到的呢? 是怎样保护自己呢?


作者: HUNRYBECKY     时间: 2009-3-18 05:56
找到了方法。思路很简单,主要有以下几点。
一是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 ]