( Fri, 22 Aug 2008 11:26:42 +0800 )


Description:

如果你的电脑中一种新型的木马病毒你能怎么办?特别是一些未知类型的木马病毒,使用一般的杀毒软件或防木马软件是很难将其根除的,这时候我们就需要手动来清除这些病毒文件了。

其实我们只要能破坏这些病毒的启动条件,就可以达到清除病毒的目的,为此,就本人在这方面的一些经验提供给大家,以供参考。

病毒的启动主要分为3类,分别是:一、随windows系统启动,二、映像劫持启动,三、捆绑和嵌入正常程序中启动。下面我们主要就第一和第二点进行详细介绍。

第一部分:Windows自启动程序

一、经典的启动——“启动”文件夹

单击“开始→程序”,你会发现一个“启动”菜单,这就是最经典的Windows启动位置,右击“启动”菜单选择“打开”即可将其打开,如所示,其中的程序和快捷方式都会在系统启动时自动运行。最常见的启动位置如下:

当前用户:

所有用户:



二、有名的启动—— 注册表启动项

注册表是启动程序藏身之处最多的地方,主要有以下几项:

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.RunServicesOnce键

RunServicesOnce键位于[HKEY_CURRENT_USER/Software/MicrosoftWindows/Current Version/RunServicesOnce]

和[HKEY_LOCAL_MACHINESoftware/Microsoft/Windows/Current Version/RunServicesOnce]下,其中的程序会在系统加载时自动启动执行一次。



4.RunServices键

RunServices继RunServicesOnce之后启动的程序,位于 注册表[HKEY_CURRENT_USER /Software/Microsoft/Windows/CurrentVersion/RunServices]

和[HKEY_LOCAL_MACHINE /SOFTWARE/Microsoft/Windows/CurrentVersionRunServices]键。



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/SOFTWAREMicrosoft/Windows NT/CurrentVersion/Winlogon]

和[HKEY_LOCAL_MACHINESOFTWARE/Microsoft/Windows NT/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所示,在这里也可以方便的对上述文件进行查看与修改。



五、智能的启动——开/关机/登录/注销脚本

在Windows 2000/XP中,单击“开始→运行”,输入gpedit.msc回车可以打开“组策略编辑器”,在左侧窗格展开“本地计算机策略→用户配置→管理模板→系统→登录”,然后在右窗格中双击“在用户登录时运行这些程序”,单击“显示”按钮,在“登录时运行的项目”下就显示了自启动的程序。



六、定时的启动——任务计划

在默认情况下,“任务计划”程序随Windows一起启动并在后台运行。如果把某个程序添加到计划任务文件夹,并将计划任务设置为“系统启动时”或“登录时”,这样也可以实现程序自启动。通过“计划任务”加载的程序一般会在任务栏系统托盘区里有它们的图标。大家也可以双击“控制面板”中的“计划任务”图标查看其中的项目。

小提示:“任务计划”也是一个特殊的系统文件夹,单击“开始→程序→附件→系统工具→任务计划”即可打开该文件夹,从而方便进行查看和管理。



七、跟着别人的启动(病毒映像劫持,在下部分介绍)——随软件开启的程序

八、从“系统信息”查看启动程序



单击“开始→程序→附件→系统工具→系统信息”,双击“软件环境”,单击“启动程序”,在右边窗口出现的程序就是所有自启动程序,在“装载源”或“位置”下显出该程序是由 注册表还是“启动”文件夹启动的。从这里只能查看自启动程序,不能对自启动程序进行禁止自启动等任何更改操作。



九、MSConfig

在Windows 98/Me/XP/2003中,单击“开始→运行”,输入msconfig回车即可打开“系统配置实用程序”窗口,单击“启动”标签,在列表框中显示的就是从 注册表、“启动”文件夹和系统配置文件中自启动的程序。程序前有对号的是允许自启动的程序,没有对号的则不会自启动。如果想取消某个程序的自启动,单击取消程序前的对勾即可。还可以在autoexec.bat、system.ini和win.ini标签里面对它们进行编辑,取消其中的自启动程序。

十、以windows服务方式启动

这种方式目前已经少有病毒见到,但作为一种行之有效的启动方式,仍被以些病毒采用。这种启动方式的病毒,我们可以通过“开始→控制面板→管理工具→服务”来查看。一般通过这种方式启动的病毒服务状态都是“自动”和“已启动”状态的,我们可以通过修改其状态为“已停止”和“禁用”来停止病毒服务,并且,在该服务的“属性”中有此病毒程序的路径及名称,我们可以在此路径下删除病毒文件即可杀灭病毒。

第二部分:病毒的映象劫持技术

映像劫持的定义

所谓的映像劫持(IFEO)就是Image File Execution Options,位于 注册表的[HKEY_LOCAL MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options]由于这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写修改。

通俗一点来说,就是比如我想运行QQ.exe(记事本),结果运行的却是运行了notepad.exe(记事本),也就是说在这种情况下,QQ程序被notepad给劫持了,即你想运行的程序被另外一个程序代替了。

映像劫持病毒

虽然映像劫持是系统自带的功能,对我们一般用户来说根本没什么用的必要,但是就有一些病毒通过映像劫持来做文章,表面上看起来是运行了一个程序,实际上病毒已经在后台运行了。

但是与一般的木马,病毒不同的是,就有一些病毒偏偏不通过这些来加载自己,不随着系统的启动运行,而是等到你运行某个特定的程序的时候运行,这也抓住了一些用户的心理,一般的用户,只要发觉自己的机子中了病毒,首先要察看的就是系统的加载项,很少有人会想到映像劫持,这也是这种病毒高明的地方。

映像劫持病毒主要通过修改 注册表中的[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution options] 项来劫持正常的程序,比如有一个病毒 vires.exe 要劫持 qq 程序,它会在上面 注册表的位置 新建一个qq.exe项,再这个项下面 新建一个字符串的键值  debugger 内容是:C:/WINDOWS/SYSTEM32/ABC.EXE(这里是病毒藏身的路径)即可。当然如果你把该字符串值改为任意的其他值的话,系统就会提示找不到该文件。

映像胁持的基本原理

WINDOWS NT系统在试图执行一个从命令行调用的可执行文件运行请求时,先会检查运行程序是不是可执行文件,如果是的话,再检查格式的,然后就会检查是否存在。如果不存在的话,它会提示系统找不到文件或者是“指定的路径不正确”等等。把这些键删除后,程序就可以运行!

映像劫持的应用

★禁止某些程序的运行

先看一段代码:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/qq.exe]

"Debugger"="notepad.exe"


使用记事本,把上面这段代码复制到记事本中,并另存为 ABC.reg,双击导入 注册表,打开你的QQ看一下效果!

这段代码的作用是双击运行QQ的时候,系统都打开记事本,原因就是QQ被重定向了。如果要让QQ继续运行的话,把notepad.exe改为QQ.exe的绝对路径就可以了。

★偷梁换柱恶作剧

每次我们按下CTRL+ALT+DEL键时,都会弹出任务管理器,想不想在我们按下这些键的时候让它弹出命令提示符窗口,下面就教你怎么玩:


Windows Registry Editor Version 5.00 

[HKEY_LOCAL MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/taskmgr.exe] 

"Debugger"="C:/WINDOWS/pchealth/helpctr/binaries/msconfig.exe"



将上面的代码在记事本中另存为 task_cmd.reg,双击导入 注册表。按下那三个键看是什么效果,不用我说了吧,是不是很惊讶啊!精彩的还在后头呢!

★让病毒迷失自我

同上面的道理一样,如果我们把病毒程序给重定向了,是不是病毒就不能运行了,答案是肯定的!下面就自己试着玩吧!

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/sppoolsv.exe] 

"Debugger"="123.exe" 

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options/logo_1.exe] 

"Debugger"="123.exe"



上面的代码是以金猪报喜病毒和威金病毒为例,这样即使这些病毒在系统启动项里面,即使随系统运行了,但是由于映像劫持的重定向作用,还是会被系统提示 无法找到病毒文件(这里是logo_1.exe和sppoolsv.exe)。是不是很过瘾啊,想不到病毒也有今天!



当然你也可以把病毒程序重定向到你要启动的程序中去,如果你想让QQ开机自启动,你可以把上面的123.exe改为你QQ的安装路径即可,但是前提是这些病毒必须是随系统的启动而启动的。



关于映像劫持的预防,主要通过以下几个方法来实现:



★权限限制法

如果用户无权访问该 注册表项了,它也就 无法修改这些东西了。打开 注册表编辑器,进入[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/WindowsNT/CurrentVersion/Image File Execution Options] ,选中该项,右键——>权限——>高级,将administrator 和 system 用户的权限调低即可(这里只要把写入操作给取消就行了)。

★快刀斩乱麻法

打开 注册表编辑器,进入把[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Image File Execution Options]项,直接删掉 Image File Execution Options 项即可解决问题。

第三部分:捆绑和嵌入(感染)正常程序启动

这种启动方式也是一种普遍的病毒启动方式,也是最让一般用户感到头疼的病毒感染方式,它通过感染和嵌入正常程序中达到使病毒启动的目的。

一、查看文件最后修改日期和字节大小

通过列出当前运行的程序目录,我们可以通过显示文件的“详细信息”来查看文件的最后修改日期和当前文件大小,一般来说,病毒感染的文件的修改日期都很近,而且被感染文件比正常程序文件体积要大一些。要注意的是,病毒嵌入后文件体积大小增加可能不明显,必须在该文件的属性中才可以看到最精确的文件体积,通过对比正常程序文件的正确体积和最后修改时间,才能判断该文件是否被感染。

一旦确定被感染文件,我们可以通过文件替换方式来修复被感染的程序。

小提示:

如果病毒感染了你的操作系统文件, 无法在windows中直接置换该文件,可以考虑使用光盘虚拟操作系统或将硬盘挂载到其他计算机上的方法,来完成文件替换工作。