说到引导加载项,不要以为是系统启动(运行)项。最简单的例子就是杀毒软件或用户手动删除病毒文件后,注册表中的自动加载信息还在,登录系统时会提示“加载* DLLs出错,系统找不到指定模块”。这些dll是病毒寄生在系统进程下的附加程序。
加载dll时出错
病毒本身被阻止运行,却“利用系统制造用户”,躲在系统进程背后,继续狐假虎威,大受欢迎;在找到并删除它们之后,下一次系统登录、启动服务、初始化用户配置以及启动外壳explorer.exe时,它仍然会根据注册表的指令运行rundll32.exe来调用这些插件。此时,如果系统找不到文件实体,会提示加载失败。虽然不影响使用,但是“嗡嗡”的声音就像晴天霹雳,一打开就让人慌!点开之后,我如坐针毡,总觉得自己中毒了。
其实只要在注册表中搜索dll并删除,一般都可以在本地解决。问题是,很多dll根本无法在注册表中搜索到,它只是想在开机时弹出框!不要慌,只要去注册表下面的固定位置,总能找到线索。后面位置的前四个字母都是缩写,常用于注册表工具Registry Workshop的地址栏。可以直接粘贴进入,加入收藏。收藏也可以分类~ ~走吧!
(1)WinLoad
HKCU \软件\微软\ Windows NT \当前版本\ Windows \加载
Windows_load
如图,这个项目本来就不存在,或者默认为空。如果病毒在这里添加了自己的dll,可想而知系统启动时会自动加载。
(2)通知
HKLM \软件\微软\ Windows NT \当前版本\ Winlogon \通知
Winlogon_notify
这里是windows登录“通知”,图中所有项目都是正常项目。在过去,Windows正版增值计划(WGA)的通知暗示Windows不是正版,或者通过wgalogon.dll在这里添加一个项目。登录时,通知叫WgaTray.exe,托盘里弹出提示。如果病毒在这里也嵌入了一个“通知”,那它开机后肯定会有所表现和行动。
(3)用户初始化
HKLM \软件\ Microsoft \ Windows NT \ current version \ Winlogon \ Userinit
Winlogon_Userinit
当“欢迎”或者“加载个人配置”的窗口飘过,我们打开任务管理器,可以看到这个Userinit.exe进程停留了很久,是用户个人配置的初始化程序。它的默认值是C:\ windows \ system32 \ userinit.exe,(带英文逗号)。如果修改此项,将很难错误加载个人配置。如果改成病毒程序,后果不堪设想。
(4)登录外壳
HKLM \软件\微软\ Windows NT \当前版本\Winlogon\Shell
Winlogon_Shell
Shell是指可视化用户资源管理界面。默认值是Explorer.exe,它是显示浏览器、我的电脑、文件夹、桌面、开始菜单、任务栏和托盘的程序。当我们从任务管理器中完成Explorer.exe时,我们可以看到桌面上只剩下一张壁纸,所有的文件夹界面都消失了,应用程序窗口还在。
如果这种情况发生在启动到桌面后,这意味着Explorer.exe程序已被修改或注册表中的这个键已被阻止启动。此时,您可以首先尝试从explorer运行explorer。如果没有,请从其他人的计算机上复制explorer.exe,并将其覆盖在Windows文件夹中。同时,您应该在此处输入,以查看Shell的默认值Explorer.exe是否被篡改,以及是否有一个带“尾巴”的附加组件附加到Explorer.exe上。
(5)探索自动运行
HKLM \软件\微软\ Windows \当前版本\策略\资源管理器
探索自动驾驶仪
图片中的项目是由Windows的更新生成的正常项目,但请注意,它也可能被病毒嵌入到加载项中。
(6)ShellServiceObjectDelayLoad
HKLM \软件\ Microsoft \ Windows \ current version \ ShellServiceObjectDelayLoad
ShellSvcLoad
这些是“外壳服务”。比如CDBurn是Window的一个鲜为人知的烧录功能,SysTray是一个系统托盘显示程序。打开此图标后,一些托盘图标会消失。当然,这里也可以使用病毒插件。
(7)外壳执行钩子
HKLM \软件\微软\ Windows \当前版本\资源管理器\ShellExecuteHooks
ShellExeHook
这是一个“壳钩程序”。图中的正常项目对应于shell32.dll,包括系统图标、工具栏和其他界面元素。如果病毒在这里有眼线,它在有生之年肯定会带着壳跑,死后还会继续造帧错误。
(8)规划任务
这种情况比较特殊。是指用户自定义的调度任务,找不到文件,所以弹出加载错误。典型的例子是“自定义桌面”中的“桌面清理向导”,如图:
任务——清理桌面
system32目录下的桌面清理任务由fldrclnr.dll负责。许多系统都简化了这个文件。如果用户不小心勾选了“每60天运行一次桌面清理向导”,60天后会弹出“加载fldrclnr.dll出错”。这时候再怎么折腾注册表,都是竹篮打水一场空。
以上八条,围剿过后,加载dll已经露出真面目。如果你删除了它们,你就可以告别那个砸你脑袋的“加载失败”框了!将这些常用位置添加到Registry Workshop的收藏夹中,您就再也不会害怕它再次播放了!更暗暗期待先生们自己积累。
这里说的都是附加项,不是我们熟悉的启动项。即使是启动键,注册表位置也很多,远不止Msconfig。详情下次见。