level 7
继续丶冷漠
楼主
#dxl:当我们启动计算机的时候,系统会加载很多的应用程序,不过这样做是有好有坏的。好的一面是我们在系统启动后,运用软件更加的方便节约时间,坏的一面当然就是长时间的积累会让系统启动越来越慢,甚至死机,对于资源运用来说是极大的浪费;再者就是恶意软件了,除了那些技术高深的三无后门外,几乎所有的恶意软件都用到了这项技术,因此了解系统自启动的原理是系统管理员的必备知识。本文就是对常见的启动方式进行剖析。
(注:本文内容参考了大量的资料,并非完全原创!!)
0X001“启动”文件夹
单击“开始→程序”,你会发现一个“启动”菜单,这就是最经典的Windows启动位置,右击“启动”菜单选择“打开”即可将其打开,如所示,其中的程序和快捷方式都会在系统启动时自动运行。最常见的启动位置如下:
当前用户:
所有用户:
0X002 注册表启动项
注册表是启动程序藏身之处最多的地方,主要有以下几项:
1.Run键
Run键是病毒最青睐的自启动之所,该键位置是[HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\Run]
和[HKEY_LOCAL_MACHINE\Software\Microsoft \Windows\CurrentVersion\Run],其下的所有程序在每次启动登录时都会按顺序自动执行。
还有一个不被注意的Run键,位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
和[HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersionPolicies\Explorer\Run],也要仔细查看。
2.RunOnce键
RunOnce位于[HKEY_CURRENT_USER\Software\Microsoft\WindowsCurrentVersion\ RunOnce]
[HKEY_LOCAL_MACHINE\Software\MicrosoftWindows\CurrentVersion\RunOnce]键,与Run不同的是,RunOnce下的程序仅会被自动执行一次。
3.RunOnce\Setup键
位于[HKEY_CURRENT_USER\Software\Microsoft\WindowsCurrentVersion\RunOnce\Setup]
和[HKEY_LOCAL_MACHINE\Software\MicrosoftWindows\CurrentVersion\RunOnce\Setup]
4.RunServicesOnce键
RunServicesOnce键位于[HKEY_CURRENT_USER\Software\MicrosoftWindows\Current Version\RunServicesOnce]
和[HKEY_LOCAL_MACHINESoftware\Microsoft\Windows\Current Version\RunServicesOnce]下,其中的程序会在系统加载时自动启动执行一次。
5.RunServices键
RunServices继RunServicesOnce之后启动的程序,位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
和[HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersionRunServices]键。
6.RunOnceEx键
该键是Windows XP/2003特有的自启动注册表项,位于[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
和[HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]。
7.load键
[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows]下的load键值的程序也可以自启动。
8.Winlogon键
该键位于位于注册表[HKEY_CURRENT_USER\SOFTWAREMicrosoft\Windows NT\CurrentVersion\Winlogon]
和[HKEY_LOCAL_MACHINESOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon],注意下面的Notify、Userinit、Shell键值也会有自启动的程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。
9.其他注册表位置
还有一些其他键值,经常会有一些程序在这里自动运行,如:
[HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad] 中的syshosts键值
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]
小提示:
注册表的[HKEY_LOCAL_MACHINE]和[HKEY_CURRENT_USER]键的区别:前者对所有用户有效,后者只对当前用户有效。
0X003 自动批处理文件
从 DOS时代过来的朋友肯定知道autoexec.bat(位于系统盘根目录)这个自动批处理文件,它会在电脑启动时自动运行,早期许多病毒就看中了它,使用deltree、format等危险命令来破坏硬盘数据。如“C盘杀手”就是用一句“deltree /y c:\*.*”命令,让电脑一启动就自动删除C盘所有文件,害人无数。
小技巧
@在Windows 98中,Autoexec.bat还有一个哥们——Winstart.bat文件,winstart.bat位于Windows文件夹,也会在启动时自动执行。
@在Windows Me/2000/XP中,上述两个批处理文件默认都不会被执行。
0X004 常用的启动——系统配置文件
在Windows的配置文件(包括Win.ini、System.ini和wininit.ini文件)也会加载一些自动运行的程序。
1.Win.ini文件
使用“记事本”打开Win.ini文件,在[windows]段下的“Run=”和“LOAD=”语句后面就可以直接加可执行程序,只要程序名称及路径写在“=”后面即可。
小提示:
“load=”后面的程序在自启动后最小化运行,而“run=”后程序则会正常运行。
2.System.ini文件
使用“记事本”打开System.ini文件,找到[boot]段下“shell=”语句,该语句默认为“shell=Explorer.exe”,启动的时候运行Windows外壳程序explorer.exe。病毒可不客气,如“妖之吻”病毒干脆把它改成“shell=c:\yzw.exe”,如果你强行删除“妖之吻”病毒程序yzw.exe,Windows就会提示报错,让你重装Windows,吓人不?也有客气一点的病毒,如将该句变成 “shell=Explorer.exe 其他程序名”,看到这样的情况,后面的其他程序名一定是病毒程序如所示。
3.wininit.ini
wininit.ini 文件是很容易被许多电脑用户忽视的系统配置文件,因为该文件在Windows启动时自动执后会被自动删除,这就是说该文件中的命令只会自动执行一次。该配置文件主要由软件的安装程序生成,对那些在Windows图形界面启动后就不能进行删除、更新和重命名的文件进行操作。若其被病毒写上危险命令,那么后果与“C盘杀手”无异。
小技巧:
@如果不知道它们存放的位置,按F3键打开“搜索”对话框进行搜索;
@单击“开始→运行”,输入sysedit回车,打开“系统配置编辑程序”,如图2所示,在这里也可以方便的对上述文件进行查看与修改。
0X005 开/关机/登录/注销脚本
在Windows 2000/XP中,单击“开始→运行”,输入gpedit.msc回车可以打开“组策略编辑器”,在左侧窗格展开“本地计算机策略→用户配置→管理模板→ 系统→登录”,然后在右窗格中双击“在用户登录时运行这些程序”,单击“显示”按钮,在“登录时运行的项目”下就显示了自启动的程序。
0X006 定时的启动——任务计划
在默认情况下,“任务计划”程序随Windows一起启动并在后台运行。如果把某个程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或“登录时 ”,这样也可以实现程序自启动。通过“计划任务”加载的程序一般会在任务栏系统托盘区里有它们的图标。大家也可以双击“控制面板”中的“计划任务”图标查看其中的项目。
小提示:“任务计划”也是一个特殊的系统文件夹,单击“开始→程序→附件→系统工具→任务计划”即可打开该文件夹,从而方便进行查看和管理
再者就是at命令了,同样可以达到效果哦。
0X007 从“系统信息”查看启动程序
单击“开始→程序→附件→系统工具→系统信息”,双击“软件环境”,单击“启动程序”,在右边窗口出现的程序就是所有自启动程序,在“装载源”或“位置”下显出该程序是由注册表还是“启动”文件夹启动的。从这里只能查看自启动程序,不能对自启动程序进行禁止自启动等任何更改操作。
0X009 MSConfig
在Windows 98/Me/XP/2003中,单击“开始→运行”,输入msconfig回车即可打开“系统配置实用程序”窗口,单击“启动”标签,在列表框中显示的就是从注册表、“启动”文件夹和系统配置文件中自启动的程序。程序前有对号的是允许自启动的程序,没有对号的则不会自启动。如果想取消某个程序的自启动,单击取消程序前的对勾即可。还可以在autoexec.bat、system.ini和win.ini标签里面对它们进行编辑,取消其中的自启动程序。
0X010 以windows服务方式启动
这种方式目前已经少有病毒见到,但作为一种行之有效的启动方式,仍被以些病毒采用。这种启动方式的病毒,我们可以通过“开始→控制面板→管理工具→服务”来查看。一般通过这种方式启动的病毒服务状态都是“自动”和“已启动”状态的,我们可以通过修改其状态为“已停止”和“禁用”来停止病毒服务,并且,在该服务的“属性”中有此病毒程序的路径及名称,我们可以在此路径下删除病毒文件即可杀灭病毒。
用工具是可以实现这一目的的。
这里我举得的例子就是Run As Service 软件
用法和介绍如下:
把任何可执行文件(包括批处理和角本)当作系统服务运行的工具
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
基本信息介绍:
■ 将任何可执行文件作为系统服务运行。
■ 开始主要是为了移植一些linux 的 daemon;也可以用于启动任何应用程序和维护性角本。
■ 安静地运行,除非指定了 Interactive 模式,否则不会弹出任何窗口。
■ 无需登陆,系统启动后自动运行,无需等待用户登陆完毕。
■ 作为附带的功能,支持启动、停止和删除任何系统服务。
■ 完整接管系统服务管理器的指令(启动、停止等等)。运行的程序终止后,自动向服务管理器提交状态同时自身退出,不会驻留内存
用法介绍:
用法: runassrv <动作> <选项>
===========================================================================
动作:
add - 新增一个服务.
remove - 删除一个服务.
start - 启动一个服务.
stop - 停止一个服务.
pause - 暂停一个服务
continue - 继续一个被暂停的服务.
control - 向指定服务发送一个控制码.
listsrv - 列出当前系统中符合条件的所有服务及驱动.
listgrp - 列出当前系统中所有服务启动组的优先级顺序.
-h - 此帮助屏幕.
===========================================================================
选项:
-cmdline - 当服务启动时,指定你真正想要运行那个程序. 这个选项可以被多次使
用,每个都指定一个要运行的应用。当服务启动时,这些应用将被并发
地执行。
-name - 指定系统服务名(net start 等系统操作用).
-dispname - 指定用户将要看到的服务显示名称(在服务管理器中看到的名称).
-desc - 指定服务描述(在服务管理器中看到的服务描述信息)
默认: 无
-type - 指定服务类型,可以是以下几种:
FileSystemDriver : 文件系统及驱动,将在内核载入之前被装入,注
意这个级别的服务几乎不可以使用任何系统API。
KernelDriver : 内核级驱动,内核装入后,立即被装入,这个
级别的服务只能使用受限的API。
OwnProcess : 单独进程服务,标准服务,在Win32子系统ready
后启动,默认。
ShareProcess : 共享进程服务,即数个服务共享同一进程,很多
依赖svchost的服务都使用这种类型。
InteractiveProcess: 交互式服务,服务可以与用户交互,除了这个类
型以外,其它所有类型的服务都不可能有用户可
见的界面。
注意: 错误的设置这个选项可能使系统变得不稳定,甚至无法启动!如果
不知道自己正在做什么,请不要尝试前两项。
-starttype - 服务启动类型,包括:
SystemStart : 系统级启动,在kernel初始化后启动。
BootStart : 由系统装载器启动(kernel初始化前)。
AutoStart : 自动启动,Win32子系统初始化完毕后启动,默认。
DemandStart : 手动。
Disabled : 禁用。
注意: 错误的设置这个选项可能使系统变得不稳定,甚至无法启动!如果
不知道自己正在做什么,请不要尝试前两项。
-errctl - 指定服务出错时的错误处理策略,可以是:
ErrorIgnore : 忽略错误,不挽救服务,系统继续运行
ErrorNormal : 记录到系统日志,并且弹出一个对话框提示用户,默
认。(默认)
ErrorSevere : 记录日志并弹出提示框,如果当前系统已经运行于了
最后一次正确启动的配置,则忽略该错误,否则自动
重启到最后一次正确配置。
ErrorCritical : 同上,但是如果重启到最后一次正确配置还是启动本
服务失败就蓝屏。
注意: 错误的设置这个选项可能使系统变得不稳定,甚至无法启动!如果
不知道自己正在做什么,请不要尝试后两项。
-group - 指定服务属于的启动优先级组,优先级组可以通过 listgrp 按顺序列出。
默认: 无
-depen - 指定本服务所依赖的服务,在这里指定的服务必须在本服务启动之前正确
启动。多个服务之间用 “/”分割。这里要指定系统服务名,而不是用户
看到的那个名称。
默认: 无
-user - 指定用户身份,即本服务使用那个用户帐号运行
默认: LocalSystem(本地系统,最高权限),交互式服务必须使用这个
帐号。
-pass - 指定用户密码
默认: 无(LocalSystem)
-priority - cmdline 参数指定程序的运行优先级,可以是(这个不用解释了吧):
Idle
BelowNormal
Normal (默认)
AboveNormal
High
RealTime
-unstoppable - 系统服务管理器将拒绝停止以此选项安装的服务。
-opcode - 为 control 命令指定要发送的控制码。控制码 “1”其实相当于命令
stop,用于停止服务。除了几个标准的控制码外,大部分控制码所对应的
行为由服务自己定义。
-logfile - 指定日志文件
默认: 不记录日志文件
-loglevel - 指定日志记录的详细程度,可以是:
DebugOnly (记录所有运行细节)
Info
Warning
Error (默认)
FatalError
Disabled (关闭对控制台和文件的日志输出)
===========================================================================
使用 listsrv 命令时的特殊选项:
-name - 指定要列出的服务名通配符
默认: *
-dispname - 指定要列出的服务显示名称通配符
默认: *
-pid - 仅列出运行于指定进程的服务
默认: 所有进程
-type - 仅列出指定类型的服务, 多个服务类型间使用 "/" 分割
默认: 所有类型
-starttype - 仅列出指定启动类型的服务, 多个类型间使用 "/" 分割
默认: 所有类型
-group - 进列出位于指定启动组的服务
默认: 任意组
-state - 仅列出当前状态满足指定值的服务, 可以是:
active : 服务当前处于活动状态(正在启动、运行等)
inactive : 服务当前处于非活动状态(已停止)
默认 : 任意
===========================================================================
例子:
runassrv add /cmdline:"c:\tools\myapp.exe -arg1 -arg2" /name:"mysrv"
runassrv add /cmdline:myapp.exe /cmdline:yourapp.exe /name:mysrv
runassrv add /cmdline:notepad /cmdline:vi.bat /type:interactiveprocess /priority:AboveNormal /name:testsrv /logfile:C:\test.log /loglevel:debugonly /dispname:"My Test Service" /desc:"This is a Test Service"
runassrv start /name:wuauserv
runassrv stop /name:wuauserv
runassrv pause /name:iisadmin
runassrv control /name:wuauserv /opcode:1
runassrv listsrv /name:w*
runassrv listsrv /type:KernelDriver/FileSystemDriver
runassrv listsrv /starttype:SystemStart/BootStart
runassrv listsrv /group:pnp_tdi
runassrv listsrv /pid:1234
runassrv listgrp
===========================================================================
关于命令和参数的分隔符:
所有参数以 “-” 或 “/” 为前缀;需要赋值得参数以 “:” 或 “=”作为
赋值运算符,例如:-name="mysrv"; /name:"mysrv"; -name:"mysrv" 等组合都
是合法的。
小技巧:
这里我要说明下判断的方法了,一般的服务是有自己的介绍说明的,但是如果有没有说明的服务,又不敢随便的删除,该怎么办呢?这里我们就要找个这个服务指向的程序,查看属性。呵呵,一般的程序是有自己的注册信息,而恶意软件是没有的,这样的话就不怕操作失误了
转自:http://bbs.winos.cn/viewthread.php?tid=54252&extra=page%3D1%26amp%3Bfilter%3Ddigest
2014年03月29日 12点03分
1
(注:本文内容参考了大量的资料,并非完全原创!!)
0X001“启动”文件夹
单击“开始→程序”,你会发现一个“启动”菜单,这就是最经典的Windows启动位置,右击“启动”菜单选择“打开”即可将其打开,如所示,其中的程序和快捷方式都会在系统启动时自动运行。最常见的启动位置如下:
当前用户:
所有用户:
0X002 注册表启动项
注册表是启动程序藏身之处最多的地方,主要有以下几项:
1.Run键
Run键是病毒最青睐的自启动之所,该键位置是[HKEY_CURRENT_USER\Software \Microsoft\Windows\CurrentVersion\Run]
和[HKEY_LOCAL_MACHINE\Software\Microsoft \Windows\CurrentVersion\Run],其下的所有程序在每次启动登录时都会按顺序自动执行。
还有一个不被注意的Run键,位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
和[HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersionPolicies\Explorer\Run],也要仔细查看。
2.RunOnce键
RunOnce位于[HKEY_CURRENT_USER\Software\Microsoft\WindowsCurrentVersion\ RunOnce]
[HKEY_LOCAL_MACHINE\Software\MicrosoftWindows\CurrentVersion\RunOnce]键,与Run不同的是,RunOnce下的程序仅会被自动执行一次。
3.RunOnce\Setup键
位于[HKEY_CURRENT_USER\Software\Microsoft\WindowsCurrentVersion\RunOnce\Setup]
和[HKEY_LOCAL_MACHINE\Software\MicrosoftWindows\CurrentVersion\RunOnce\Setup]
4.RunServicesOnce键
RunServicesOnce键位于[HKEY_CURRENT_USER\Software\MicrosoftWindows\Current Version\RunServicesOnce]
和[HKEY_LOCAL_MACHINESoftware\Microsoft\Windows\Current Version\RunServicesOnce]下,其中的程序会在系统加载时自动启动执行一次。
5.RunServices键
RunServices继RunServicesOnce之后启动的程序,位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]
和[HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersionRunServices]键。
6.RunOnceEx键
该键是Windows XP/2003特有的自启动注册表项,位于[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]
和[HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]。
7.load键
[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows]下的load键值的程序也可以自启动。
8.Winlogon键
该键位于位于注册表[HKEY_CURRENT_USER\SOFTWAREMicrosoft\Windows NT\CurrentVersion\Winlogon]
和[HKEY_LOCAL_MACHINESOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon],注意下面的Notify、Userinit、Shell键值也会有自启动的程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。
9.其他注册表位置
还有一些其他键值,经常会有一些程序在这里自动运行,如:
[HKEY_CURRENT_USER \Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad] 中的syshosts键值
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]
小提示:
注册表的[HKEY_LOCAL_MACHINE]和[HKEY_CURRENT_USER]键的区别:前者对所有用户有效,后者只对当前用户有效。
0X003 自动批处理文件
从 DOS时代过来的朋友肯定知道autoexec.bat(位于系统盘根目录)这个自动批处理文件,它会在电脑启动时自动运行,早期许多病毒就看中了它,使用deltree、format等危险命令来破坏硬盘数据。如“C盘杀手”就是用一句“deltree /y c:\*.*”命令,让电脑一启动就自动删除C盘所有文件,害人无数。
小技巧
@在Windows 98中,Autoexec.bat还有一个哥们——Winstart.bat文件,winstart.bat位于Windows文件夹,也会在启动时自动执行。
@在Windows Me/2000/XP中,上述两个批处理文件默认都不会被执行。
0X004 常用的启动——系统配置文件
在Windows的配置文件(包括Win.ini、System.ini和wininit.ini文件)也会加载一些自动运行的程序。
1.Win.ini文件
使用“记事本”打开Win.ini文件,在[windows]段下的“Run=”和“LOAD=”语句后面就可以直接加可执行程序,只要程序名称及路径写在“=”后面即可。
小提示:
“load=”后面的程序在自启动后最小化运行,而“run=”后程序则会正常运行。
2.System.ini文件
使用“记事本”打开System.ini文件,找到[boot]段下“shell=”语句,该语句默认为“shell=Explorer.exe”,启动的时候运行Windows外壳程序explorer.exe。病毒可不客气,如“妖之吻”病毒干脆把它改成“shell=c:\yzw.exe”,如果你强行删除“妖之吻”病毒程序yzw.exe,Windows就会提示报错,让你重装Windows,吓人不?也有客气一点的病毒,如将该句变成 “shell=Explorer.exe 其他程序名”,看到这样的情况,后面的其他程序名一定是病毒程序如所示。
3.wininit.ini
wininit.ini 文件是很容易被许多电脑用户忽视的系统配置文件,因为该文件在Windows启动时自动执后会被自动删除,这就是说该文件中的命令只会自动执行一次。该配置文件主要由软件的安装程序生成,对那些在Windows图形界面启动后就不能进行删除、更新和重命名的文件进行操作。若其被病毒写上危险命令,那么后果与“C盘杀手”无异。
小技巧:
@如果不知道它们存放的位置,按F3键打开“搜索”对话框进行搜索;
@单击“开始→运行”,输入sysedit回车,打开“系统配置编辑程序”,如图2所示,在这里也可以方便的对上述文件进行查看与修改。
0X005 开/关机/登录/注销脚本
在Windows 2000/XP中,单击“开始→运行”,输入gpedit.msc回车可以打开“组策略编辑器”,在左侧窗格展开“本地计算机策略→用户配置→管理模板→ 系统→登录”,然后在右窗格中双击“在用户登录时运行这些程序”,单击“显示”按钮,在“登录时运行的项目”下就显示了自启动的程序。
0X006 定时的启动——任务计划
在默认情况下,“任务计划”程序随Windows一起启动并在后台运行。如果把某个程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或“登录时 ”,这样也可以实现程序自启动。通过“计划任务”加载的程序一般会在任务栏系统托盘区里有它们的图标。大家也可以双击“控制面板”中的“计划任务”图标查看其中的项目。
小提示:“任务计划”也是一个特殊的系统文件夹,单击“开始→程序→附件→系统工具→任务计划”即可打开该文件夹,从而方便进行查看和管理
再者就是at命令了,同样可以达到效果哦。
0X007 从“系统信息”查看启动程序
单击“开始→程序→附件→系统工具→系统信息”,双击“软件环境”,单击“启动程序”,在右边窗口出现的程序就是所有自启动程序,在“装载源”或“位置”下显出该程序是由注册表还是“启动”文件夹启动的。从这里只能查看自启动程序,不能对自启动程序进行禁止自启动等任何更改操作。
0X009 MSConfig
在Windows 98/Me/XP/2003中,单击“开始→运行”,输入msconfig回车即可打开“系统配置实用程序”窗口,单击“启动”标签,在列表框中显示的就是从注册表、“启动”文件夹和系统配置文件中自启动的程序。程序前有对号的是允许自启动的程序,没有对号的则不会自启动。如果想取消某个程序的自启动,单击取消程序前的对勾即可。还可以在autoexec.bat、system.ini和win.ini标签里面对它们进行编辑,取消其中的自启动程序。
0X010 以windows服务方式启动
这种方式目前已经少有病毒见到,但作为一种行之有效的启动方式,仍被以些病毒采用。这种启动方式的病毒,我们可以通过“开始→控制面板→管理工具→服务”来查看。一般通过这种方式启动的病毒服务状态都是“自动”和“已启动”状态的,我们可以通过修改其状态为“已停止”和“禁用”来停止病毒服务,并且,在该服务的“属性”中有此病毒程序的路径及名称,我们可以在此路径下删除病毒文件即可杀灭病毒。
用工具是可以实现这一目的的。
这里我举得的例子就是Run As Service 软件
用法和介绍如下:
把任何可执行文件(包括批处理和角本)当作系统服务运行的工具
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
基本信息介绍:
■ 将任何可执行文件作为系统服务运行。
■ 开始主要是为了移植一些linux 的 daemon;也可以用于启动任何应用程序和维护性角本。
■ 安静地运行,除非指定了 Interactive 模式,否则不会弹出任何窗口。
■ 无需登陆,系统启动后自动运行,无需等待用户登陆完毕。
■ 作为附带的功能,支持启动、停止和删除任何系统服务。
■ 完整接管系统服务管理器的指令(启动、停止等等)。运行的程序终止后,自动向服务管理器提交状态同时自身退出,不会驻留内存
用法介绍:
用法: runassrv <动作> <选项>
===========================================================================
动作:
add - 新增一个服务.
remove - 删除一个服务.
start - 启动一个服务.
stop - 停止一个服务.
pause - 暂停一个服务
continue - 继续一个被暂停的服务.
control - 向指定服务发送一个控制码.
listsrv - 列出当前系统中符合条件的所有服务及驱动.
listgrp - 列出当前系统中所有服务启动组的优先级顺序.
-h - 此帮助屏幕.
===========================================================================
选项:
-cmdline - 当服务启动时,指定你真正想要运行那个程序. 这个选项可以被多次使
用,每个都指定一个要运行的应用。当服务启动时,这些应用将被并发
地执行。
-name - 指定系统服务名(net start 等系统操作用).
-dispname - 指定用户将要看到的服务显示名称(在服务管理器中看到的名称).
-desc - 指定服务描述(在服务管理器中看到的服务描述信息)
默认: 无
-type - 指定服务类型,可以是以下几种:
FileSystemDriver : 文件系统及驱动,将在内核载入之前被装入,注
意这个级别的服务几乎不可以使用任何系统API。
KernelDriver : 内核级驱动,内核装入后,立即被装入,这个
级别的服务只能使用受限的API。
OwnProcess : 单独进程服务,标准服务,在Win32子系统ready
后启动,默认。
ShareProcess : 共享进程服务,即数个服务共享同一进程,很多
依赖svchost的服务都使用这种类型。
InteractiveProcess: 交互式服务,服务可以与用户交互,除了这个类
型以外,其它所有类型的服务都不可能有用户可
见的界面。
注意: 错误的设置这个选项可能使系统变得不稳定,甚至无法启动!如果
不知道自己正在做什么,请不要尝试前两项。
-starttype - 服务启动类型,包括:
SystemStart : 系统级启动,在kernel初始化后启动。
BootStart : 由系统装载器启动(kernel初始化前)。
AutoStart : 自动启动,Win32子系统初始化完毕后启动,默认。
DemandStart : 手动。
Disabled : 禁用。
注意: 错误的设置这个选项可能使系统变得不稳定,甚至无法启动!如果
不知道自己正在做什么,请不要尝试前两项。
-errctl - 指定服务出错时的错误处理策略,可以是:
ErrorIgnore : 忽略错误,不挽救服务,系统继续运行
ErrorNormal : 记录到系统日志,并且弹出一个对话框提示用户,默
认。(默认)
ErrorSevere : 记录日志并弹出提示框,如果当前系统已经运行于了
最后一次正确启动的配置,则忽略该错误,否则自动
重启到最后一次正确配置。
ErrorCritical : 同上,但是如果重启到最后一次正确配置还是启动本
服务失败就蓝屏。
注意: 错误的设置这个选项可能使系统变得不稳定,甚至无法启动!如果
不知道自己正在做什么,请不要尝试后两项。
-group - 指定服务属于的启动优先级组,优先级组可以通过 listgrp 按顺序列出。
默认: 无
-depen - 指定本服务所依赖的服务,在这里指定的服务必须在本服务启动之前正确
启动。多个服务之间用 “/”分割。这里要指定系统服务名,而不是用户
看到的那个名称。
默认: 无
-user - 指定用户身份,即本服务使用那个用户帐号运行
默认: LocalSystem(本地系统,最高权限),交互式服务必须使用这个
帐号。
-pass - 指定用户密码
默认: 无(LocalSystem)
-priority - cmdline 参数指定程序的运行优先级,可以是(这个不用解释了吧):
Idle
BelowNormal
Normal (默认)
AboveNormal
High
RealTime
-unstoppable - 系统服务管理器将拒绝停止以此选项安装的服务。
-opcode - 为 control 命令指定要发送的控制码。控制码 “1”其实相当于命令
stop,用于停止服务。除了几个标准的控制码外,大部分控制码所对应的
行为由服务自己定义。
-logfile - 指定日志文件
默认: 不记录日志文件
-loglevel - 指定日志记录的详细程度,可以是:
DebugOnly (记录所有运行细节)
Info
Warning
Error (默认)
FatalError
Disabled (关闭对控制台和文件的日志输出)
===========================================================================
使用 listsrv 命令时的特殊选项:
-name - 指定要列出的服务名通配符
默认: *
-dispname - 指定要列出的服务显示名称通配符
默认: *
-pid - 仅列出运行于指定进程的服务
默认: 所有进程
-type - 仅列出指定类型的服务, 多个服务类型间使用 "/" 分割
默认: 所有类型
-starttype - 仅列出指定启动类型的服务, 多个类型间使用 "/" 分割
默认: 所有类型
-group - 进列出位于指定启动组的服务
默认: 任意组
-state - 仅列出当前状态满足指定值的服务, 可以是:
active : 服务当前处于活动状态(正在启动、运行等)
inactive : 服务当前处于非活动状态(已停止)
默认 : 任意
===========================================================================
例子:
runassrv add /cmdline:"c:\tools\myapp.exe -arg1 -arg2" /name:"mysrv"
runassrv add /cmdline:myapp.exe /cmdline:yourapp.exe /name:mysrv
runassrv add /cmdline:notepad /cmdline:vi.bat /type:interactiveprocess /priority:AboveNormal /name:testsrv /logfile:C:\test.log /loglevel:debugonly /dispname:"My Test Service" /desc:"This is a Test Service"
runassrv start /name:wuauserv
runassrv stop /name:wuauserv
runassrv pause /name:iisadmin
runassrv control /name:wuauserv /opcode:1
runassrv listsrv /name:w*
runassrv listsrv /type:KernelDriver/FileSystemDriver
runassrv listsrv /starttype:SystemStart/BootStart
runassrv listsrv /group:pnp_tdi
runassrv listsrv /pid:1234
runassrv listgrp
===========================================================================
关于命令和参数的分隔符:
所有参数以 “-” 或 “/” 为前缀;需要赋值得参数以 “:” 或 “=”作为
赋值运算符,例如:-name="mysrv"; /name:"mysrv"; -name:"mysrv" 等组合都
是合法的。
小技巧:
这里我要说明下判断的方法了,一般的服务是有自己的介绍说明的,但是如果有没有说明的服务,又不敢随便的删除,该怎么办呢?这里我们就要找个这个服务指向的程序,查看属性。呵呵,一般的程序是有自己的注册信息,而恶意软件是没有的,这样的话就不怕操作失误了
转自:http://bbs.winos.cn/viewthread.php?tid=54252&extra=page%3D1%26amp%3Bfilter%3Ddigest