用HijackThis没有找出任何可疑的地方。于是尝试在安全模式下面删除这些文件。
谁知道在安全模式下面删除这些文件之后,立马又有了。检查进程也没发现什么可疑进程。当下我便怀疑该病毒是使用消息钩子对Explorer.exe进行监控,每当打开资源管理器便进行感染。可是用GMER也没看出什么特别的东西出来(也许是因为我还不会用GMER吧-_-!!)。无奈之下只好重新分析。
在DOS环境下进行删除操作之后,会发现这些文件不会再次出现,由此可推,病毒应该是采用Explorer注入或者监视
在DOS环境下删除后,打开资源管理器,发现分区下面再次出现了Autorun.inf和NTDETECT.EXE。验证了病毒应该是劫持了Explorer.EXE。
任何病毒都会有主体,所有动作都是由这个主体程序触发执行的。撇去牛角尖,从注册表入手。
查找NTDETECT.EXE,结果发现了很多键值被修改了。主要的修改如下:
Windows Registry Editor Version 5.00
C:WINDOWSsystem32RunDLL32.EXE Shell32.DLL,ShellExec_RunDLLNTDETECT.exe e:
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellNoRoamMUICache]
"C:\NTDETECT.exe"="explorer Microsoft "
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMountPoints2{4d5a53e2-4d38-11db-927f-806d 6172696f}Shell播放command]
@="E:\NTDETECT.exe e:"
这里发现了一个比较例外的值"C:\NTDETECT.exe"="explorer Microsoft",我想也许这个键值会告诉我们一些事情吧。
查找"explorer Microsoft ",结果发现了另外一个意外的信息:
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellNoRoamMUICache]
"C:\WINDOWS\system32\shellexplore.exe"="explorer Microsoft "
在我记忆中,在System32里面好像没有Shellexplore.exe这个可执行程序的。打开System32文件夹,发现其中果然有一个隐藏得文件:Shellexplore.exe。然而,这个程序是如何劫持Explorer.exe的呢?我想注册表可能可以告诉我更多东西。
继续查找Shellexplore.exe,结果发现了他控制Explorer的手段了
[HKEY_CLASSES_ROOTDriveshellopencommand]
@="C:\WINDOWS\system32\shellexplore.exe %1"
在[HKEY_CLASSES_ROOTDriveshell]这个项的子项应该是没有[open]这个子项的,Shellexplore.exe通过在这里建立一个[OpenCommand]的子项,并把键值修改为shellexplore.exe,即用shellexplore.exe调用打开。因此,在我们利用资源管理器打开磁盘分区的时候,shellexplore.exe便开始感染所有分区。这也是为什么我们在安全模式下也无法删除NTDETECT.EXE的原因了。
分析完毕,现在就来设定清除病毒的步骤和程序吧。
1 进入安全模式
2 关闭所有浏览器、资源管理器、我的电脑(所有会调用Explorer.exe的程序都关掉)
3 打开注册表编辑器regedit.exe
4 打开CMD,进入命令行模式(即通常说的DOS模式)
5 删除各分区下的Autorun.inf和NTDETECT.EXE这两个隐藏文件。怎么删除??
c:attrib autorun.inf -s -h -r-a
c:attrib NTDETECT.EXE -s -h-r -a
c:del autorun.inf
c:del NTDETECT.EXE
前面两个是去除文件的系统、隐藏和只读属性,后面就不要我说了
6 在注册表编辑器里查找所有带有NTDETECT.EXE的项,删除
7 查找所有带explorer Microsoft的值,删除
8 查找所有带Shellexplore.exe的值,删除
9 在命令行模式下输入指令:shutdown -r 重新启动计算机
重新启动后,发现病毒的症状消失了。所有分区也可以正常打开了。资源管理器和我的电脑打开的速度也正常了。