有些情况下,机器中毒之后,将有可能无法使用绝大多数杀毒软件,这是由于病毒利用了注册表里的“映像劫持”。简单点说,当杀毒软件a.exe 被病毒b.exe在注册表里设置了映像劫持后,当运行a.exe时,真正启动的却是b.exe。病毒/木马一般会劫持常见的安全类程序,因此,不止是杀毒软件,包括Sreng(杀木马利器,有强大的日志功能)、IceSword(鼎鼎大名的冰刃)、Regedit、MsConfig都无法正常使用。
映像劫持涉及的注册表路径为:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options],正常情况下一般如图所示:
只有一个键,名为“Your Image File Name Here without a path”,里面有个键值:“debugger”,这就是映像劫持的原型,微软建立此键是为了系统调试用的,ntsd命令可以说明一切。
注:当进程无法用任务管理器杀死的时候,我们可以用ntsd命令来杀进程。用法:ntsd -c q -p PID,PID就是进程的PID。此命令非常强悍,只有System、SMSS.EXE和CSRSS.EXE不能杀(现在大多数的杀毒软件进程也无法杀,这是我们所期望的)。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。
下面我们来做个测试,在“Your Image File Name Here without a path”的后面建立一个“项”,名字是你想要要运行的程序,比如“cmd.exe”,然后在右边新建一个名为debugger的键值,类型为字符串,值为真正被运行的程序(我们暂把它比作后台的病毒程序),这里用“D:\Program Files\EditPlus\editplus.exe”来做测试。
好了,我们在运行栏里输入cmd回车,将会看到editplus将会被运行,而cmd窗口却始终没有出现,我们可以这么说,cmd.exe给editplus给映像劫持了,这就好比杀毒软件被病毒给劫持了。
说明:
1.本方法可以很轻松的对付大部分病毒,已及病毒的“映像劫持”。
2.修复过程中任何一步出错都必须从第二步重新开始!
3.如果Registry Work本例中用到的RegWorkshop无法运行,请将RegWorkshop.exe改名为随机字母数字组合.exe(WsysCheck.exe同理)
4.WSysCheck还可以替代资源管理器对系统内的文件进行管理(浏览、复制、剪切、删除等),同时WSysCheck也内置注册表编辑功能,可以对注册表进行维护。
要是不知道映像劫持的原理,有时候想把病毒揪出来就比较棘手。知道有这么回事就简单了,一语道破天机:“改文件名”。因为一般映像劫持都会把文件名写死,如卡巴就是avp.exe,此时我们把卡巴改成avpXXX.exe就可以运行了。我们这里不讨论杀软,众所周之,杀软对新病毒都是无能为力的。这里讨论的是如何用WsysCheck(与冰刃类似,过之而无不及)和RegWorkshop(功能强大的注册表编辑工具)进行手工杀毒。
第一步:下载软件Regsitry Workshop、Wsyscheck0825中文版。
Regsitry Workshop 功能强大的注册表编辑器,可以备份恢复注册表,支持权限编辑,速度相当快。
Wsyscheck系统修复、查杀病毒的好工具,功能实用且异常强大,包含进程和服务驱动检查,SSDT强化检测,文件查询,注册表操作,DOS删除等一应俱全。
第二步:打开 Regsitry Workshop,最小化备用。
第三步:打开Wsyscheck,单击左上角的“软件设置”,勾选 “禁止进程和文件创建”,这一步的作用是防止病毒进程在杀死之后又死灰复燃。
第四步:在进程管理中勾选所有显示红色的进程,然后单击鼠标右键选择“结束选择的进程”,注意不要勾选刚才开启备用的Regsitry Workshop进程。
第五步:在进程管理中,单击Explorer.exe或者是Winlogon.exe,查看下面的进程模块,仔细检查是否加载了文件名由随机字母和随机数字组成,长度在7-8位左右的DLL,当然读者如果对windows的DLL有所了解的话,一般一眼就能看出来是否有不正常的DLL,要是不能确定的话可以google和baidu。把找到的可疑DLL选中,右键单击该模块,选择“添加到Dos删除列表”。要是Dos删除列表中有东西的话,电脑重启的时候,WSysCheck会先进MSDOS(由软件来虚拟),在DOS下把病毒木马的DLL模块删除。因为32位的DLL在DOS下是无能为力的,所有就可轻松且彻底地删除了。
然后执行下面的第十步内容,删除顽固文件完成后进入正常系统,再从上面的第二步重新开始向下执行。 yE[5u&zx;
5MPn‑<yl
需要注意的是这个dll不一定只局限于7、8位随机名的DLL,也有可能是其他文件名的DLL,这里主要是要判断陌生的dll文件,一般插入Explorer的病毒dll包含在以下文件夹:【C:\Program Files\Common Files\Microsoft Shared及其子文件夹】、【C:\Program Files\Internet Explorer及其子文件夹】、【C:\WINDOWS\system32\drivers及其子文件夹】、【C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files】等,操作时需多加判断 。
第六步:勾选除 csrss.exe winlogon.exe services.exe (只有一个,有时病毒会瞒天过海,取个与系统进程名字及其接近的,如把l改成1,o改成0等等),svchost.exe(有4-5个进程,都是系统的核心进程,勿删除) 之外的所有粉红色进程,单击右键,“结束选择的进程”。 这一步也很重要,包括Explorer.exe以及Iexplore.exe都要终止 。
第七步:切换到“安全检查”的“常规检查”选项,将右边的“禁用程序管理”列表中的项全部清空:依次单击右键,点“允许这个程序运行”。
第八步:在“注册表键值变动检测”处的所有项目上依次单击鼠标右键,点“修复所选项”。
第九步:用Regsitry Workshop打开映像劫持所在的位置,把被劫持的项全部删除,此时映像劫持已经修复。
第十步:切回Wsyscheck界面,打开“Dos删除”选项卡,最后点击“执行Dos删除”,接着电脑重启,启动菜单会多出一项“删除顽固文件”,选择进行DOS删除。完成后重启。重启之前,有一点提示,即:请使用WSysCheck内置的文件管理器浏览各个硬盘分区,检查其根目录下是否存在Autorun.inf及陌生的.exe或.pif文件,如果存在,请务必删除
重启之前,有一点提示,即:请使用WSysCheck内置的文件管理器浏览各个硬盘分区,检查其根目录下是否存在Autorun.inf及陌生的.exe或.pif文件,如果存在,请务必删除。
至此,病毒清理工作结束。
1、权限限制法
打开注册表编辑器,定位到
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions\,选中该项,右键→权限→高级,取消administrator和system用户的写权限即可。
2、快刀斩乱麻法
打开注册表编辑器,定位到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\,把“ImageFileExecutionOptions”项删除即可。
SREng 全名System Repair Engineer(SREng):一般翻译为系统修复工程师,是世界上最先进的系统辅助分析工具之一。 SREng日志比Hijakcthis的更全(体现在hijackthis会遗漏一些启动项)另外 SREng的日志能提供更详细的诊断信息,方便清除QQ尾巴等顽固病毒。
IceSword(冰刃) 一把斩断黑手的利刃,与Wsyscheck相似,用于查探系统中的幕后黑手(木马后门)并作出处理,当然使用它需要用户有一些操作系统的知识。
Autoruns 是一款出色的启动项目管理工具,它的功能十分强大,不仅可以对各启动项目进行管理,还能直接控制注册表,此外软件可以直接利用google和MSN进行网上搜索。
Filemon 文件监控程序,可以监控磁盘上的文件读写操作。
ProcessExplorer 驱动级进程管理工具,可以用不同颜色标注出服务、独立进程和.Net进程等。
Regmon 注册表监控工具,可以监控注册表的存取操作,用来检查可疑的程序。
RootkitUnhooker Rku,国外的一款反Rootkit工具,可以有效对付SSDT Hook、Shadow SSDT Hook以及Inline Hook,同时也是一款强力进程管理工具。
SnipeSword 狙剑,一般人喜欢用它的进程管理功能,我喜欢用它的内核代码扫描和文件、磁盘过滤系统检查等功能,稳定性上比冰刃和RKU差,但功能更强。