回复:
根除木马——文件并联型木马的查杀
某些用户经常会很郁闷,自己明明已经删除了木马文件和相应的启动项,可是不知道什么时候它自己又原封不动的回来了,这还不算,更悲惨的是有时候杀掉某个木马后,系统也出了故障:所有应用程序都打不开了。这时候,如果用户对计算机技术的了解仅限于使用杀毒软件,那可只能哭哭啼啼的重装系统了!
为什么会这样?难道这种木马还恶意修改了系统核心?其实答案很简单,因为这种木马修改了应用程序(EXE文件)的并联方式。
什么是“并联方式”呢?在Windows系统里,文件的打开操作是通过注册表内相应键值指定的应用程序来执行的,这个部分位于注册表的 “HKEY_CLASSES_ROOT”主键内,当系统收到一个文件名请求时,会以它的后缀名为依据在这里识别文件类型,进而调用相应的程序打开。而应用程序自身也被视为一个文件,它也属于一种文件类型,同样可以用其他方式开启,只不过Windows设置它的调用程序为““%1“ %*”,让系统内核理解为“可执行请求”,它就会为使用这种打开方式的文件创建进程,最终文件就被加载执行了,如果有另外的程序更改了这个键值, Windows就会调用那个指定的文件来开启它。一些木马程序把EXE后缀名对应的exefile类型的“打开方式”改成了“木马程序 “%1“ %*”,运行程序时系统就会先为“木马程序”创建进程,把紧跟着的文件名作为参数传递给它执行,于是在我们看来程序被正常启动了。因为木马程序被作为所有 EXE文件的调用程序,使得它可以长期驻留内存,每次都能恢复自身文件,所以在一般用户看来,这个木马就做到了“永生不死”。然而一旦木马程序被删除, Windows就会找不到相应的调用程序,于是正常程序就无法执行了,这就是所谓的“所有程序都无法运行”的情况来源,并不是木马更改了系统核心,更没必要因此重装整个系统。
根除这种木马的最简单方法只需要查看EXE文件的打开方式被指向了什么程序,立即停止这个程序的进程,如果它还产生了其他木马文件的话,也一起停止,然后在保持注册表编辑器开启着的情况下(否则你的所有程序都会打不开了)删除掉所有木马文件,把 exefile的“打开方式”项(HKEY_CLASSES_ROOTexefileshellopencommand)改回原来的“”%1” %*”即可。
如果删除木马前忘记把并联方式改回来,就会发现程序打不开了,这时候不要着急,如果你是Win9x用户,请使用“外壳替换大法”:重启后按F8进入启动菜单选择MS-DOS模式,把Explorer.exe随便改个名字,再把REGEDIT.EXE改名为 Explorer.exe,再次重启后会发现进入Windows只剩下一个注册表编辑器了,赶快把并联方式改回来吧!重启后别忘记恢复以前的 Explorer.exe。
对于Win2000/XP用户而言,这个操作更简单了,只要在开机时按F8进入启动菜单,选 “命令提示符的安全模式”,系统就会自动调用命令提示符界面作为外壳,直接在里面输入REGEDIT即可打开注册表编辑器!XP用户甚至不需要重启,直接在“打开方式”里浏览到CMD.EXE就能打开“命令提示符”界面运行注册表编辑器REGEDIT.EXE了。
追回被盗的系统文件
除了添加自己到启动项、路径欺骗和更改文件并联以外,一般的木马还有一种伎俩可以使用,那就是替换系统文件。由于如今的操作系统都是由许多文件共同构造的,并不是所有用户都能明白系统文件夹里每个文件的作用,这就给了木马可乘之机,它们盯上了系统里那些不会危害到系统正常运行而又经常会被调用的程序文件,像输入法指示程序internat.exe、让动态链接库可以像程序一样运行的rundll32.exe等。木马先把系统原来的文件改名成只有它们自己知道的一个偏僻文件名,再把自己改名成那个被替换的文件,这样就完成了隐藏极深的感染工作,从此只要系统需要调用那个被替换的程序进行工作,木马就能继续驻留内存了。那么文件被替换会不会导致系统异常呢?只要木马没有被删除,就不会造成系统异常,因为木马在作为原来的程序而被系统启动时,会获得一个由系统传递来的运行参数,这就是系统要求该程序工作的关键所在,木马会直接把这个参数传递给被改名的程序执行,像接力比赛那样完成数据操作,这样在系统看来就是命令被正常执行了,自然不会出现异常。但是也因为这样的特性导致木马被查杀后,系统的某些命令无法传递到本该执行操作的程序中,反而让系统出错了。
要修复它其实很简单,只要记住这个木马的文件名,在删除它之后再从系统光盘复制一个“原配”文件就可以了,如果没有系统光盘,就必须通过工具追踪木马传递参数的目标程序名,再把它改回来。