![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 11:04 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎么用批处理把另一条批处理写进系统服务. |
| 可打印版本 1,847 / 7 |
| 第1楼 pengfei | 发表于 2006-07-23 18:32 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
怎么用批处理把另一条批处理写进系统服务. 运行一个批处理,把另一条批处理写进系统服务,随机运行.
请问,这种方法行不行得通,怎么写 谢谢了! |
|
| 第2楼 electronixtar | 发表于 2006-07-23 18:53 |
| 铂金会员 发帖 2,672 积分 7,493 | |
| 第3楼 pengfei | 发表于 2006-07-23 21:23 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
呵呵~ 那个贴子我看到过,可是那个要借助第三方软件
能不能像写启动项一样,直接用批处理把服务写进注册表里. |
|
| 第4楼 pengfei | 发表于 2006-07-26 10:37 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
大家帮忙看看 我找到这方面的资料,可是真正写成批处理后出现一点问题,路径无法写入,还有就是说该服务没有停止控制响应功能.
现在很多的木马、后门、蠕虫病毒都是通过修改注册表中的RUN键值来实现自启动,这种自启动模式不是很隐蔽,稍微懂点安全的人,一般发现电脑被黑,都会查看RUN键值,于是系统服务便成为了一种相对隐蔽的自启动模式,比如冲击波杀手就采用系统服务来自启动病毒程序。 现在添加系统服务的工具很多,最典型的就是netservice,但是我们这里讲的是手工添加系统服务,所以工具的使用不在本文的讨论范围之内:WINDOWS里的很多东西都是跟注册表息息相关的,系统服务也不例外,系统服务跟以下的注册表几个项目相关: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\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 1 Type REG_DWORD 10 or 20 一般应用程序都是10,其他的对应20 ObjectName REG_SZ LocalSystem 显示本地登陆 注意:在XP/2003下可以完全手工来添加REG EXPAND SZ类型,但是在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 "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的数值是乱码。 怎么想也不明白,还是把乱码修改成绝对路径吧:如果直接把REG信息写成这样: "ImagePath"=hex(2):C:\WINNT\NUKEGROUP.EXE 其他的键值都可以添加,这个键值就不可以了?总之我们可以先添加乱码的ImagePath,然后再修改成C:\winnt\nukegroup.exe 这样也是可能的。 以上是Windows 2000手工添加系统服务的方法,对于Windows 98 注册表结构是不一样的,但是Windows 98仍然可以通过注册表来实现添加系统服务,而且还要更简单一些。 在项目“HKLM/SOFTWARE/Microsoft/WindowsCurrentVersion/RunServices”下添加一个新字符串数值。比如,如果程序的名字叫做“BACKDOOR”,就建立一个名为“BACKDOOR”的字符串数值,然后在数据域中输入执行程序的完整路径。 手工添加一个系统服务就这么简单,手工删除系统也是一个道理。通过注册表来实现,这里就不多说了,为方便广大读者深入了解系统服务的各方面,我推荐以下文章,希望有所帮助: http://www.microsoft.com/china/community/program/originalarticles/TechDoc/WinXPStart.mspx http://sinbad.zhoubin.com/read.html?board=Win&num=89 |
|
| 第5楼 bagpipe | 发表于 2006-07-26 11:27 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
对于WIN2K用INF文件来添加服务
对于XP 2003用SC即可 |
|
| 第6楼 pengfei | 发表于 2006-07-26 11:31 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
Originally posted by bagpipe at 2006-7-26 11:27: :( SC怎么用,具体怎么用,各位老大教教我咯. |
|
| 第7楼 electronixtar | 发表于 2006-07-26 12:04 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
sc /?
楼主要用好系统的帮助功能~~ 提示一下, sc create |
|
| 第8楼 xakey | 发表于 2010-04-23 22:14 |
| 新手上路 发帖 1 积分 1 | |
|
好问题....
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |