CSK.Blog--个人原创Weblog

« 放假了……如果《死亡九分钟》说的是真的事情…… »

连载:《windows亲手灭毒宝典》之三

作为对曾经我提过的要写些教程的兑现,这里先把我在交大计算机协会作的讲座《windows亲手灭毒宝典》放上来。当然其中的内容比我实际讲的要多,且要难。
由于第一次写教程,加上自己水平有限,文中出现的问题希望各位及时指正,谢谢!
文章为CSK原创,转载请保留原作者和引用作者的版权信息。
CSK版权所有

---------------------------------------------------------------------------------
第二回的地址:http://www.csksoft.net/blog/post/killvirusDIY2.html

第三回:亲手杀毒的一般步骤

本文不需要你具有诸如程序开发等方面的专业技能,但如果有一定的经验可以帮助你更好的理解

如果你还没有看过前一篇文章,不要紧,但是本文是建立在你已经掌握前篇文章所提及知识的基础之上的,所以遇到不明白的可以参考前一篇

其实事情很简单,自然就是先找出那些病毒文件,然后将他们删除

但是硬盘上保存了那么多程序,哪些才是病毒文件呢?本文将告诉你一个快速确定并找出病毒文件方位的方法

由前文我们了解到,所有在windows环境中运作的病毒,一般都是以具体的文件形式存在的,并且往往是那些可执行文件。但是,单单是这些保存在硬盘上的文件还是不能起什么作用的。一个程序的运行必须是由系统将它们从磁盘的文件中读取出来,然后存放在内存中并加以执行。这个过程常被我们称作:加载。

病毒也是一种程序体,自然的,他也需要有系统事先加载到内存中执行才能做恶。当然这种加载有2种途径:

  1. 你可能不小心点击打开了一个病毒文件(你主动加载了它,往往是你第一次感染病毒的途径)
  2. 系统自动加载了它

自然,我们更关心第二种情况,因为你应该知道中毒的机器就算是重新启动,病毒还是照样会驻留在内存中运行(除非那个病毒自身也有缺陷……)这就是通过系统自动加载完成的。

作为病毒自然是希望一直在你机器中生存着,等待它发作的那一天……所以他肯定要告诉系统:每次启动的时候也加载我把~,然后为了让系统去加载他,病毒还会告诉自己文件保存的地点-文件路径

正因为这样,病毒就在我们的系统中留下了它的作案痕迹。我们的杀毒过程也就是从查找这些作案痕迹开始的。

所以,第一步就是:找到病毒在系统中留下的痕迹,从而找出那些可能的病毒

2.1.系统的备忘录-注册表

或许你很早就知道很多程序在系统启动时也会自己启动,比如你在使用的MSN Messenger或者QQ,他们在系统每次启动完毕后都会自己“弹”出来。

图:每次开机后你的QQ程序是不是会自己“弹”出来呢?

其实在这个过程中,那些该死的病毒也偷偷的进入你的内存开始运作了,只不过做贼心虚,不会“弹”出来说“喂,小样,我是病毒,嘿嘿,有种来杀我啊”之类的话

这些程序其实都是由系统自动加载运行的,那么windows就必须要有一张“清单”好使他在启动时仍然记得要去启动这些程序。而这里说的清单其实就是注册表

或许你听过这个名字,而且可能对他有一种神秘的感觉。其实他的作用就上上面所说的那样:只是一个清单。用来记录一些系统需要记住的事,同时很多应用程序也用它来记录一些配置:比如IE会用它记录主页的地址。

不过我们这里只对其中一小部分感兴趣,那就是系统用来记录开机时需要启动哪些程序的地方

windows提供了一个程序来供我们察看和修改注册表,那就是regedit

图:注册表编辑器(regedit.exe)

你可以从[开始]菜单->[运行],输入regedit.exe启动他,如果系统提示找不到该文件,很不幸的,可能病毒已经删除它了:-<,如果这样你就需要从别人那里复制来一份。

regedit和资源管理器很类似,也提供了类似目录和文件方式的界面。其中系统把每一种清单保存在不同的目录下面,而具体清单的信息就是那些“文件”了。

那么系统每次启动时加载的程序清单在哪里呢?其中一个清单你可以根据下面的这个路径找到:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

你可能会看到这样的画面:

其中最左边一栏是程序的名字,当然他们作用不大,而最右边的就是程序的路径了。系统启动后就会按照这张清单一次加载文件。

不过很不巧的时,其实病毒已经隐藏在了上面这个清单中了。或许你已经有所发现。你也可以看看自己注册表中的那些条目。

就上面这张图中,下面这些路径下的文件都可能是病毒:

  • AutoUpdate c:\windows\winsys.exe
  • Explorer c:\windows\system32\explorer.exe
  • (默认) c:\commond.com

首先,这里只能说是可能是病毒,并不能马上确定,但是为什么说这些文件的嫌疑最大呢?下面给出一些规则

  1. 在加载清单中大部分程序都是系统中安装的应用程序,而很少是系统自身的组件
  2. 由第一条得出,系统组件几乎不会出现在清单中
  3. 有第一条得出,清单中的程序并不是系统所必须的,也就是说即使不去加载他们,你的windows还是照样可以运行。
  4. 正常情况下,(默认)这个条目应该是空白的
  5. 病毒喜欢隐藏:多藏于windows目录之下或者是很简单的路径格式:如C:\virus.com。这样有利于其传播
  6. 为了伪装自己,目前大多是病毒喜欢将自己的名字伪造成系统中的一些组件名

所以对于第一次尝试手工杀毒的人来说,如果很难确定哪些是病毒的话不妨删除所有的清单条目(注意,那个叫做“默认”的条目是无法清除的,但你可以把它的内容删除)

那么为什么那些文件可能为病毒呢?首先我们看“AutoUpdate ”这个文件。第一从他的名字上,很多人会以为他是windows的自动更新程序。而且它的途径:windows系统目录下,又叫做winsys.exe(暗示你它是windows system的一部分),似乎他是个正常的程序?如果你这么想就是中了全套。按照上面给出的第2条规则,如果真的是“自动更新程序”,他不太可能出现在这个清单中(真正的自动更新程序是一个系统服务,具体会在今后的文章中论述)。那么这个家伙就非常可疑了

其次是explorer。或许你也会觉得这很正常,造成这种想法的原因可能是他正好是windows资源管理器的名字。而且细心的你可能发现每次系统开机的确会有个叫做explorer.exe的文件在运行(其实它是在其他地方加载的,今后的文章中你会知道,explorer.exe叫做系统外壳:shell,除了资源管理器的功能外,你的桌面也是他“变”成的)。但是真正的资源管理器是位于windows\目录下而非windows\system32\下。并且根据第二条规则,自然也就有很大嫌疑了

那么这个叫做(默认)项目为什么也会是病毒呢?其实注册表的每个目录下都会有一个(默认)的项目。它是注册表自动产生的。而根据规则第四条,这里的“默认”条目一般是留空的,所以马上就能确定c:\commond.com有很大嫌疑了。并且很高笑的是,这个程序的作者似乎想和以前DOS系统的命令行提示程序command.com取同样名字来欺骗我们。但是,他拼错了……

事实上,上面提到的的确就是病毒,不过这里只是我为了演示所以加进去的,但现实中如果你真看到了这样的项目,那么别犹豫,他们99%就是病毒或恶意程序!

接下来要做的就是先找到那些文件的位置,然后将他们清除即可,最后再删除注册表中的那些项目。不过为了预防万一,往往删除前我们还需要一个确认的过程。而且很糟糕的时,windows一项混乱的作风使得启动程序的清单并不是只有这一个,并且还有一类叫做系统服务的程序,他们也会自我启动。所以在下回中,我将告诉你所有的启动清单的地方,同时介绍系统服务的一些事情

不过60%-70%的病毒都是在上述的清单中加入自己的作案痕迹的,所以今后如果怀疑自己系统中毒那么先看看这里吧

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

但怎么来记住这么长的目录呢?下面给一个敲门:

  • HKEY_LOCAL_MACHINE表示本地系统
  • SOFTWARE记录的都是软件信息(区别于硬件的驱动信息)
  • Microsoft windows是微软公司自己的产品
  • Windows\CurrentVersion 当前版本的windows系统
  • Run 要运行的清单

最后附上一些清单中常见程序的说明

  • CnsMin:

Rundll32.exe C:\WINDOWS\DOWNLO~1\CnsMin.dll,Rundll32
3721中文实名hook的主进程,难怪一段时间被诺顿视为病毒

  • helper.dll:

C:\WINDOWS\system32\rundll32.exe C:\PROGRA~1\3721\helper.dll,Rundll32
3721上网助手,一个熊样……就是毒!

  • TkBellExe:

C:\Program Files\Common Files\Real\Update_OB\realsched.exe -osboot
RealPlayer的广告客户端,可以del掉

  • ctfmon.exe:

C:\WINDOWS\system32\ctfmon.exe
M$别出心裁的为了配合office XP以上版本进行输入法监控(就是微软拼音)和文档检索用的监控进程

好了,这回就到这里,最后祝各位情人节快乐

CSK 2006.2.14

CSK版权所有,演讲ppt在ftp.csksoft.net中下载。

  • quote 2.想请教有关注册表的问题
  • 你好,其实我是想问有关rundll32.exe的问题。我照你说的方法打开了注册表。但我的注册表跟你的不一样,很奇怪。我的是这样HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\
    OptionalComponents,而OptionalComponents下面还有IMAIL、MAPI、MSFS三个子目录,打开也不像你说的画面那样。而我在我的任务管理器中发现,有两个rundll32.exe分别在Administrator和system中运行。在Administrator里面,rundll.32.exe在CPU中居然占40甚至50多数目。(我不知这样描述对不对)因此我想请问我怎么减少rundll.32.exe中的动态链接?
    不好意思,我实在找不到高人请教,所以才来打扰你,希望能得到帮忙。万分感激~~
  • 3/22/2006 7:46:59 PM 回复该留言
  • quote 4.更具体
  • 哎 我好苯啊不会操作怎么办啊 您还是给我们这些受害者把每步的操作图带上 那就谢谢您了!!!谢谢!!!
  • 7/19/2007 3:56:23 PM 回复该留言

发表评论:

注意:为了有效防止SPAM,任何含有http://字样的消息会被阻止发布同时,本站仅供技术交流,请不要讨论任何政治敏感话题或者低级趣味问题。

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright Shikai Chen 2000-2012. Powered By Z-Blog(CSK Modified)