朋友怀疑是因为打了几个补丁,才造成了上述故障。笔者却不这样认为,安装补丁只会让系统变得更加安全,绝不会造成系统出现运行故障。笔者重启该机后,发现该机启动很缓慢,硬盘灯不停的闪烁,看来只有进入安全模式查找原因了。再次重启进入安全模式,经过检测,发现该机已经安装了所有最新的补丁,系统运行状态正常。因为安全模式是最“单纯”的运行环境,所以可以判断出系统文件基本没有问题。估计应该是在启动过程中,某个程序捣乱所致。因为安全模式没有问题,就已经说明该故障和补丁没有直接关系,否则的话往往会导致系统彻底崩溃。即使补丁存在某些功能上的问题,也不会导致安全模式运行稳定而正常模式出现问题的情况。
为了稳妥起见,在控制面板中运行“添加或删除程序”,将最近安装的几个补丁全部卸载,然后重启系统发现故障依然存在,这就完全说明该故障不是因为补丁引发的。
然后进入安全模式,注意到该机安装有某款杀毒软件,而且病毒库最近才更新过,运行杀毒软件扫描系统,没有发现木马病毒等不法之徒。运行“services.msc”程序,在服务管理窗口仔细检测,没有发现可疑分子。运行“msconfig.exe”程序,在系统配置实用程序窗口中打开“启动”面板,发现里面有很多启动项。
笔者凭经验将不需要的启动项逐一删除,然后重启系统,但是问题依旧。
在安全模式中再次运行“msconfig.exe”程序,对启动项进行检测。无意间发现刚才已经删除的名为“Navigate_UP”的启动项目又重新出现了,与其关联的程序路径 为“C:Program FilesNavigateLiveWinServe.exe”。既然该启动项能够自动复活,那就说明一定有某进程对其进行监控所致。本来想使用FileMon,RegMon等利器,对该程序的活动进行监控,但是这些工具无法在安全模式下运行。笔者亮出了IceSword这款反黑利剑,但是其同样无法在安全模式下运行。打开系统自带的任务管理器,对进程信息进行分析,没有发现明显的可疑进程。
既然如此,就直接进入“C:Program FilesNavigateLive”路径来一探究竟吧。但是进入“C:Program Files”文件夹后,却找不到“NavigateLive”目录。在文件夹选项窗口中选择“显示所有的文件和文件夹项”,取消“隐藏受保护的操作系统文件”项的选择状态。之后依然无法显示“NavigateLive”目录。笔者运行“cmd.exe”程序,在命令行窗口中进入“C:Program Files”路径,执行“cd NavigateLive”命 令,“摸黑”进入了该目录,执行“dir”命令,终于可以看到其中的所有文件了。但是试图使用“del”命令删除其中的文件,或者使用“arrtib”命令修改其文件属性操作时,系统都提示无法找到对应的路径,而无法顺利进行。看到其中有个名为“Uninstall.exe”的程序,估计是卸载某软件用的。
运行该程序后,弹出确认卸载的对话框,确定后也没有什么具体的动作。重启系统后故障依旧。不过,根据以上情况分析,可以得出结论——这个奇怪的程序一定有某个进程在背后“照应”,一旦发现注册表中对应的启动项消失,就会立即进行恢复,好让该程序跟随系统自动运行。同时该程序已经处于加载运行状态,所以可以对其安装目录进行保护,禁止用户对其进行浏览、删除、更改属性等操作。
一般来说在安全模式下,普通的程序是无法正常启动并执行上述监控动作的。唯一的可能是恶意程序采用了驱动加载的模式,将自身伪装成合法的驱动文件,达到在安全模式下非法活动的目的。
为了找到深度潜伏的恶意程序,笔者使用WinPE优盘启动系统,进入WinPE环境 后,进 入“C:Program Files”文件夹,找到了其中的“NavigateLive”目 录,将其属性修改为正常状态,并将其完整备份出来。之后删除“NavigateLive”目 录,重启系统后,发现问题依然没有解决。打开备份出来的“NavigateLive”目录,发现其中存在名为“filelog.inf”的文件,使用记事本打开该文件,发现里面提供了相关的驱动程序安装信息,显示名为“device.sys”的驱动文件藏身于“C:WindowsSystem32drivers”路径中。看来终于找到幕后黑手了,再次使用WinPE优盘优盘启动系统,在WinPE环境中进入“C:WindowsSystem32drivers”,发现其中果然存在上述“device.sys”文件,这明显是一个来历不明的驱动文件。
先将其属性修改为正常,之后将其备份出来,然后将其删除。同时对“C:Program FilesNavigateLive”进 行 检测,确保该文件夹以及其中的文件全部被删除。之后重新启动系统,系统启动迅速,运行速度正常。
为了消除垃圾信息,运行“regedit.exe”程序,在注册表编辑器中找到和“Navigate_Up”的启动项关联的键值,将其删除。因为已经将补丁卸载,为此又重新下载安装了对应的几个补丁程序。在之后的测试中,系统已经彻底恢复了活力。
由此看来,以上故障主要是由潜伏在系统中的恶意程序造成的,和系统补丁没有关系。
为了进一步了解该恶意程序的特点,笔者将其备份的“NavigateLive”目录放置到了虚拟机中,进入该目录,仔细查看其中的文件,仅仅从图标来看,这些似乎都是老实本分的文件,例如TMP、EXE、SYS等,很容易对用户造成错觉,以为这是正常的软件。运行其中的“Winserve.exe”程序,却发现系统并没有出现运行缓慢的迹象。运行IceSword这款利器,在进程列表中发现了“netserch.exe”和“serverhost.exe”的隐藏进程,怪不得在Windows的任务管理器中无法发现其踪迹,与其关联的文件藏身地为“C:Windowssystem32”文件夹。在IceSword中查看内核加载模块,发现名为“device.sys”模块,这是通过驱动加载的。
当进入“C:Windowssystem32drivers”文件夹,不仅发现了“device.sys”文件,而且通过对文件创建日期进行排序,还发现了“advice.sys”和“nprocess.sys”两个可疑驱动文件。在IceSword的内核模块列表中同样发现了它们的“身影”,看来这三个驱动文件都是恶意软件的“杰作”。
在Icesword中查看启动项目,可以发现“Navigate_UP”启动项。但是在Windows自带的注册表编辑器中却无法直接发现其踪迹,看来恶意程序一定对其进行了隐藏处理。
使用Icesword将上述“device.sys”、“advice.sys”、“nprocess.sys”等文件强制删除后,当重启系统后,发现系统弹出错误信息,提示和来源为“Service Control Manager”,ID分别为7000和7026的事件出现运行故障,找不到指定的文件。
究其原因,主要是在注册表中残存有与之相关的启动信息,但是与之关联的文件已经消失的缘故。
进入系统后,在注册表编辑器中打开“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices”分支,将其中名为“Anvice”、“fdevice”、“HidProcess”、“Remote Log”等项目全部删除,再次启动系统就不会弹出错误提示了。
根据对该恶意软件的分析不难看出,其千方百计地对自身的行踪进行隐藏,来保持自身的顺利运行。不过,这种保护措施也恰恰暴露了自己,因为对注册表启动项的监控,来自动恢复被删除的启动项,让有经验的用户很容易产生警惕。因为该机上安装的某杀毒软件并没有发现并清除该恶意软件,说明该恶意软件并不像木马病毒那样张扬,而是属于潜伏性很高的类型。估计应该是某些不良网站开发的用来收集用户各种敏感信息的工具,类似于流氓软件的性质。在一般情况下,该恶意软件不会对系统正常运行造成太大的影响。很可能是在该恶意软件潜伏运行以后,用户安装了某些补丁、软件或者某些操作,造成该恶意软件和系统发生了冲突,才导致上述故障的发生。由此不难发现,对于系统出现的异常现象,不能仅仅从某些软件上着解决。
例如,在本例中不能因为安装了几个补丁,就想当然地认为故障和补丁有关,而应该从软件和软件之间,软件和系统之间可能存在的冲突入手,来发现并解决问题。从恶意软件,以及木马病毒等不法分子的入侵手法上看,以往的通过启动项,文件关联的老伎俩逐渐失宠,通过服务或者驱动加载等新技术已经成为主流,很值得引起我们的警觉。
很多人以为在安全模式下可以让恶意程序失去活力,这一看法具有一定的片面性,因为有些驱动是可以在安全模式下加载运行的,这就为恶意程序在安全模式下活动创造了条件。所以,安全模式其实并非绝对安全。
此外,一些常用的安全软件可能会在安全模式下失去“功力”,所以应该熟练使用系统基本命令来发现相关痕迹信息。当终止恶意程序运行后,不能万事大吉,而是应该跟踪追击,发现其同伙并删除原本被其隐藏但是已经暴露的启动项、可疑文件等对象。在清除了恶意软件后,还要进入深度检测,以利于彻底清除残留的垃圾信息,实现除恶任务并让系统彻底恢复正常功能的目标。