自启动程序详解
自启动程序 ShellServiceObjectDelayLoad
ShellServiceObjectDelayLoad是一个未公布的注册表项,可以将组件关联到这个键,这样一来,系统启动时间EXPLORER将自动加载目标组件.这就是某些病毒将自己注射到EXPLORER的办法.我们经常会遇到这样的事情,IeXPLORER的首页设置为BLANK,注册表RUN键的值也为空,但就是每隔一会儿有莫名其妙的网页自动弹出,这就是ShellServiceObjectDelayLoad在搞鬼。O21 - 注册表键 ShellServiceObjectDelayLoad (SSODL)处的自启动项
揪出自启动程序 [转]
一、经典的启动——“启动”文件夹
单击“开始→程序”,你会发现一个“启动”菜单,这就是最经典的Windows启动位置,右击“启动”菜单选择“打开”即可将其打开,如所示,其中的程序和快捷方式都会在系统启动时自动运行。最常见的启动位置如下:
当前用户:<C:\Documents and Settings\用户名\「开始」菜单\程序\启动>
所有用户:<C:\Documents and Settings\All Users\「开始」菜单\程序\启动>
二、有名的启动——注册表启动项
注册表是启动程序藏身之处最多的地方,主要有以下几项:
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\CurrentVersion\Policies\Explorer\Run],
也要仔细查看。
2.RunOnce键
RunOnce位于[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]键,与Run不同的是,RunOnce下的程序仅会被自动执行一次。
3.RunServicesOnce键
RunServicesOnce键位于[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]和[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]下,其中的程序会在系统加载时自动启动执行一次。
4.RunServices键
RunServices继RunServicesOnce之后启动的程序,位于注册表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]和
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices]键。
5.RunOnceEx键
该键是Windows XP/2003特有的自启动注册表项,位于[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx]。
6.load键
[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows]下的load键值的程序也可以自启动。
7.Winlogon键
该键位于位于注册表[HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon],注意下面的Notify、Userinit、Shell键值也会有自启动的程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。
8.其他注册表位置
还有一些其他键值,经常会有一些程序在这里自动运行,如:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad]
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]
小提示:
注册表的[HKEY_LOCAL_MACHINE]和[HKEY_CURRENT_USER]键的区别:前者对所有用户有效,后者只对当前用户有效。
三、古老的启动——自动批处理文件
从DOS时代过来的朋友肯定知道autoexec.bat(位于系统盘根目录)这个自动批处理文件,它会在电脑启动时自动运行,早期许多病毒就看中了它,使用deltree、format等危险命令来破坏硬盘数据。如“C盘杀手”就是用一句“deltree /y c:\*.*”命令,让电脑一启动就自动删除C盘所有文件,害人无数。
小提示:
★在Windows 98中,Autoexec.bat还有一个哥们——Winstart.bat文件,winstart.bat位于Windows文件夹,也会在启动时自动执行。
★在Windows Me/2000/XP中,上述两个批处理文件默认都不会被执行。
四、常用的启动——系统配置文件
在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所示,在这里也可以方便的对上述文件进行查看与修改。
五、智能的启动——开/关机/登录/注销脚本在Windows2000/XP中,单击“开始→运行”,输入gpedit.msc回车可以打开“组策略编辑器”,在左侧窗格展开“本地计算机策略→用户配置→管理模板→系统→登录”,然后在右窗格中双击“在用户登录时运行这些程序”,单击“显示”按钮,在“登录时运行的项目”下就显示了自启动的程序。
六、定时的启动——任务计划
在默认情况下,“任务计划”程序随Windows一起启动并在后台运行。如果把某个程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或“登录时”,这样也可以实现程序自启动。通过“计划任务”加载的程序一般会在任务栏系统托盘区里有它们的图标。大家也可以双击“控制面板”中的“计划任务”图标查看其中的项目。
小提示:
“任务计划”也是一个特殊的系统文件夹,单击“开始→程序→附件→系统工具→任务计划”即可打开该文件夹,从而方便进行查看和管理。
七、跟着别人的启动——随软件开启的程序随MyIE2启动的程序,详见本刊2004年第3期、4期《让你受用终生的浏览器─MyIE2实用技巧大放送》一文。
下篇 全方位作战
彻底清查Windows自启动
一、从“系统信息”查看启动程序
单击“开始→程序→附件→系统工具→系统信息”,双击“软件环境”,单击“启动程序”,在右边窗口出现的程序就是所有自启动程序,在“装载源”或“位置”下显出该程序是由注册表还是“启动”文件夹启动的。从这里只能查看自启动程序,不能对自启动程序进行禁止自启动等任何更改操作。
软件性质: Windows自身功能
推荐指数: ★★★★
二、MSConfig
在Windows 98/Me/XP/2003中,单击“开始→运行”,输入msconfig回车即可打开“系统配置实用程序”窗口,单击“启动”标签,在列表框中显示的就是从注册表、“启动”文件夹和系统配置文件中自启动的程序。程序前有对号的是允许自启动的程序,没有对号的则不会自启动。如果想取消某个程序的自启动,单击取消程序前的对勾即可。还可以在autoexec.bat、system.ini和win.ini标签里面对它们进行编辑,取消其中的自启动程序。
小提示:
★所有的修改都需要重新启动才能生效。
★Windows 2000没有msconfig程序,但是我们可以从Windows 98或者XP拷贝一个到system32目录,同样可以起作用。
软件性质: 免费,微软原装
推荐指数: ★★★★
三、startup.cpl
只需要将startup.cpl文件拷贝到Windows安装目录下的system32文件夹下面即可,单击“开始→设置→控制面板”打开控制面板,你会发现里面多了一个Startup项,双击打开它,在打开的对话框中,可以方便地对“启动”文件夹和注册表中的启动项目进行管理,如右击空白处新建一个启动项,右击已有的启动项目可以对其进行编辑、删除、禁用和立刻运行等操作。
软件性质: 免费,绿色软件
推荐指数: ★★★★★
四、StartupMonitor
双击StartupMonitor.msi执行安装,安装完成后,它就乖乖的在后台运行,只占据100多KB的内存,什么时候才显示出它的本事呢?当你安装了一个软件的时候,如果它想自己偷偷自启动,嘿嘿,就必须通过StartupMonitor的这一关,如所示,它管得非常宽,无论是什么程序,它都不放过!渔歌强烈推荐。
软件性质: 免费,小巧实用
推荐指数: ★★★★★
五、StartStop
软件安装后它会将自己加到注册表的RunOnce 自启动,启动后会自动缩小到托盘区一个小图标,双击即可打开StartStop主界面,在这里列出了本机启动程序,右击某个程序可以选择总是启动、从不启动还是每次询问是否启动,如所示,它有特色的一个地方是单击菜单“Options→Startup delay”,可以设置启动时延迟多少时间启动程序。
软件性质: 免费, 有特色
推荐指数: ★★★★
六、Autoruns
下载autoruns.zip后解压缩直接执行里面的autoruns.exe即可,由于它不会在启动时加载,显得更绿色。双击autoruns.exe打开程序界面,它不仅仅列出的是非常全的启动项,而且详细地列出了启动程序的公司和路径,如果还不满意,右击某个启动项目,选择属性,可以查看该启动项的文件属性。它还有两个特色功能,一个是右击任何一个启动项,选择Jump to就会立刻跳转到具体的位置,如跳转到注册表的具体键值、打开启动文件夹、打开INI文件等,非常方便!还有一个功能是单击View菜单,可以切换是否显示所有的启动位置、是否显示启动的服务、是否只显示非Microsoft公司的项目,这对于检查启动项目和过滤项目非常有用。
软件性质: 免费,绿色软件
推荐指数: ★★★★★
七、StartUp organizer
Startup organizer的组织和管理自启动项功能很强大,它在控制启动项目方面做的也比较细,如为某个启动设定声音提示,还能设置在 Windows启动时按某个键来控制某些程序启动与否,还可以备份自启动配置文件以便应急恢复、比较启动程序的变化、恢复第一次运行时的默认配置,操作也比较简单,遗憾之处就是不是免费的。
软件性质: 共享软件,30天免费试用
出处:http://hi.baidu.com/diannaojieyou/item/6924e5e19aaea60f64db00c6