人毒大战

毒――难道非要用软件?(人毒大战的终级指南)
在下Creamdog,可以算是一名熟练的C++程序员了,从业六年。曾尝试过写杀毒软件,仅限于对某一种或几种类似病毒的专杀。我的主攻是三维引擎和仿真领域的数据结构和算法,对杀毒软件这种体力活并不在行,因此没有过多的研究,但对于其机理还是有一定了解的。对于琳琅满目的杀毒软件我一向是不屑一顾,因为他们不仅不能够有效的防范、查杀,自己有时也有一些流氓行为,不仅让计算机性能极剧降低,占用了巨大的内存资源,更为可恶的是有时将病毒杀死后竟藏匿尸首,令人哭笑不得。我数年来从未用过任何杀毒软件杀毒,一切病毒靠人工查杀,机器没有一次因病毒而瘫痪,因此我在在预防和查杀上积累了一些经验,希望和朋友们分享。下面将从预防和查杀两个角度展开讨论,希望此文对于饱受病毒之苦的朋友有所帮助。
预防篇
一、98?ME?2K?XP?Vista!?
操作系统是最需要得到重视的,我估计至少有90%以上的病毒是通过各类操作系统漏洞而感染机器的,因此要想从根源上断掉病毒的根,务必从操作系统入手。我更情愿将机器抵抗病毒的能力比喻为人的免疫系统,而操作系统正像人类免疫系统的第一级――皮肤,因此选择一款安全的操作系统是非常重要的,下面是我对MS各操作系统的看法。98和ME已被我列入黑名单,MS实际上已经放弃了对它们的支持,不会再对其安全性做大的升级了,我想它们对于大家来说也没有什么值得留恋的,正如盖茨曾说的“一晃二十年,形式变了!”但如果你必须要使用,最好的防毒办法就是“物理断开”。网线是一定要拨掉的,光盘、软盘、MP3、移动硬盘……还是少插为妙。有人要问了,什么都不能用,我还用98/ME干嘛呀?是啊,我也不知道您非要用98/ME干嘛!我推荐使用2K和XP,尤其是XP。对于目前来讲,XP的安全性还是最高的,微软出任何补丁也是先给XP出。虽然XP有正版验证的问题,但总有办法破解的,下面我会提到。对于新出的vista,我抱有一定的期望。这一次它的发布又跳票到2007年的1月,可见MS对于其安全性之重视程度。希望在未来的几年,我们会过上高枕无忧,藐视病毒的日子。要想了解关于各操作系统的安全性的详细介绍,Google一下!不过我们下面还是来说现实的事吧。
二、更新?更新?再更新
如果windows的自动更新它总是跳出来,恭喜你,你的机器中毒的机率已经很小了!让机器的自动更新功能打开,时刻与微软保持一致,你将几乎不可能遭受到来自互联网的病毒攻击。如果您是新装的操作系统,强烈建议在安装任何程序,访问任何网站之前访问 [url]http://www.windowsupdate.com/[/url],并按照提示安装各类更新,可能在安装的过程中重起,重起后需要再次访问,直到它报告你的机器暂时没有任何可用的更新。这时你的操作系统就是安全的了。但MS动用的正版优势计划无疑对于我们这些用D版的人来说是严重的打击,然而道高一尺魔高一丈,对于2K来说,正版验证实同虚设,根本不予正视。而XP就比较讨厌了,前几天MS又强化了验证的有效性,使得靠修改data.dat文件来更新的人一下子手足无措。但令人惊奇的是,MS依然没有封掉JS的调用,我们依然可以通过调用JS函数的方法来绕过正版验证。方法是先进入更新站点,停在第一个页面应该是有“快速”和“自定义”两个按钮,此时将下面的语法输入地址栏:java script:void(window.g_sDisableWGACheck='all'),然后按回车,你回惊奇的发现――什么也没有发生。但此时您应当仰天大笑了,直接点“自定义”看看,根本就没有验证那回事了!另外有些朋友问我,为什么总是不能更新,开始我也觉得很奇怪,因为一切都对路,但总是提示没有打开那两个讨厌的服务――AutoUpdate&BackTrans――实际上服务正运行着。后来我才发现服务光开着是不行的,还需要将启动类型设为自动。设定后一切问题都立即烟消云散了。下面我们将面临一个是鸡生蛋还是蛋生鸡的问题,我们所面临的情况是每天都有上百种新病毒或其变种问世,每一秒种无数的病毒都在伺机对任何可能的端口发动攻击,然而我们才装的机子就像刚出生的小孩,没有任何抵抗能力,想直接去MS更新谈何容易,在更新期间中毒是再正常不过的事!幸好对于XP和2K来讲都有强大的更新合集,简称SP。希望大家在电脑正常的时候未雨绸缪,从官方下载之,约有一二百兆,可能对于网速慢的朋友来说比较大,但当您需要重装系统的时候,这是您唯一的“还魂丹”!XP目前是SP2,2K是SP4,注意版本。除了SP,随时下载小更新也是很必要的,如果你不清楚近期你的机器自动安装了什么更新,可以到控制面版的“添加删除程序”里查一下(注意,XP要点上面那个“显示更新”)。要下载的话,先记下它们的编号,一般是KBXXXXXX或QXXXXXX,然后到 [url]http://www.microsoft.com[/url]去搜索这个号就可以得到下载的地址了。这也许对英文有点抱歉的朋友来说是比较麻烦的事,但国内也有一些网站提供了定期的更新合集下载,可以一试。Google一下!
三、上网=中毒?
网页里经常暗藏杀机,对于机器来说,网页恶意程序是计算机的第二大杀手。我将它比喻为人类的呼吸系统,因为现在计算机不能停止上网就像人类不能停止呼吸一样,而人类的每一次呼吸都意味着可能染上可怕的疾病,比如时髦的SARS和禽流感。但不知您注意到了没有,我并没有在这里提到病毒二字,因为我这里所说的只是普通的网站网页,不包括网页上链接的程序,程序的问题下面会讲到。一般来讲网页能做的还没有那么多,顶多是各种脚本写成的恶意程序,并不具有传染性,因此不能称之为病毒。但千万别小瞧它们,让你的IE病到生不如死还是比较轻松的,他可能会修改你的注册表,让你不能够访问IE的属性;也可能不时弹出/关上你的光驱,让你惊恐万分;也可能将你在网上的信息散之天下;当然,最可怕的事就是只要你一开机就弹出无数的广告窗口让你无法使用。看到这里的朋友相信有很多都在咬牙切齿,谁又不是从这一步走过来的呢?当我们有了Maxthon这样的软件,真的一切问题都搞定了,能禁止下载的全部禁止,能屏蔽的广告全部屏蔽,我不相信单纯的网页又有多大的本事能够冲破Maxthon这个好卫兵的门关!
四、软件是可怕的寄主
如果您按照我上面所讲的内容将最基本的“皮肤”和呼吸这两关打好了预防针,其它的就比较好办了,因为我们致少可以保证在下面进行的查杀毒过程中不会二次中毒。俗话说“病从口入”,计算机也是这样的,第三道免疫的重点关卡“口”就是我们常用的各类软件。机器装的软件越多越杂,中毒的可能性就越大,因为现在各类软件就是病毒的最好寄主,尤其是从网页上下载的各种小软件。对于这类病毒攻击其实我也没有太好的办法,实际上,我的机器也常染上一些病毒,但一般的在发作之前就被我干掉了,因为我清楚的知道我装的软件向我机器上写入的每一字节数据,而做到这一点则需要很多年的经验,对于大多数涉网未深的网友又该如何是好呢?我想最好的办法还是自己谨慎。有几个原则要说明的,邮件里来的附件一律不要打开;你并没想下载什么而自动跳出来让你下载的一律不要下载;网页上弹出的诱人的信息问你是否查看的一律要点“否”;凡是弹出来ActiveX要安装如果你不是非常的清楚并有安装的经验一律不要安装(Microsoft除外,那是自动更新);没有被其它网友推荐过的软件一律不要下载。能做到上面这几个一律的话,我想你已经将机器的第三道免疫关把的很死了。还有一点是不得不提的,那就是现在流行的一个新词汇――流氓软件。它们并非病毒,也非恶意程序,堂尔皇之的挂上官方的旗号,名正言顺的进驻您的机器,但它们从不干好事。无法干净的卸载事小,上网经时经常受到骚扰就很讨厌了,它们唯一的目的就是令所谓的“官方”获益。3721、中文上网、百度工具条、网络猪之流正是如此,要获得完整的流氓软件列表,请Google“流氓软件”。对于我本人来讲,因为业务需要,所以经常要试用一些陌生的软件,这也给病毒攻击带来了机会,然而对于大多数网友来说,计算机只不过一是台“游戏机”或“家庭影院”,其它能用到的功能用的并不多,因此一份各类软件的推荐列表是很重要的。我会尽快出这样一份列表,包括我能想得到的各类用途的软件,选出公认最好的一两种,附上官方下载地址,以帮助朋友们为机器把好免疫关。目前您要是想了解对于各类软件哪些是公认最棒的,还是那句老话:Google一下!
五、光盘、软盘、MP3、移动硬盘……
这是病毒攻击你的最后机会了,因为这些都是硬性插入你的机器而使你的机器得病的,所以我实在不想用人的免疫系统来比喻了,原谅我吧,那太可怕了。如果你的机器有最新的补丁,我想还是可以放心的打开它们的,只要不随意运行来历不明的程序。不过将所有的自动拨放都关掉还是很必要的!对于2K,自动拨放在设备管理器中,查看光驱的属性就可以取消。对于XP,在盘符上点右键,进入属性就可以设置,具体操作我不想多说了,那不是本文的重点,请自行Google。另外,如果你真的对机器的安全性要求很高,那么在你打开这些盘之前,最好还是先用命令提示符进入,看看根目录下有没有可疑的文件。这一步仅限有经验的朋友。
六、系统设置,无懈可击的境界
虽然免疫系统已经万无一失,但人的操作总会出现一些问题,导致病毒有可乘之机。那么从病毒攻击的手段上来讲,我们可以采取一些补救性的措施。将服务列表中没用的服务全部禁用是非常好的做法,尤其是像Task、Message这类服务是一定要禁用的,因为它们常被病毒所利用!偶尔会用到的服务尽量采用手动启动,这样会为将来的查毒提供方便。有关各服务的详细说明,网上到处都是,Google一下就可以得到。请朋友们根据自己的需要设定吧!我的服务列表里自动运行的服务只有二十来个,这已经足够了。另外可能被病毒攻击的地方就是各种即时通讯软件。QQ这样有一定流氓性质的软件,用起来一定要小心,任何人发来的信息中包括的链接不要随便点,实在要看的话,复制到Maxthon里,在所有屏蔽功能打开的状态下前往,这样您将会得到最有效的安全保障。其它可能会自动上网更新的软件,尽量设置为不自动更新,有时他们的行为会令你摸不着头脑,甚至会被误判为病毒,为查毒操作带来相当大的干扰。定期去官网更新是最安全的方式。
到此为止,预防的工作您已经作的很好了,任何的杀毒软件、防火墙(包括XP自带的)你都可以藐视之,并笑傲江湖。但天有不测风雨,再好的免疫系统也有失效的时候,如果您真的由于操作不慎而导致不幸中招,那就请看下面的查杀篇。记得,查杀只能是一种补救措施,而且任何查杀的措施都只能在预防措施完善的情况下进行,因此防患于未燃才是最重要的。

查毒篇
一、工具
虽然不用杀毒软件,但并不意味着不使用任何工具。要想有效的处理病毒,有两类软件是必不可少的,一是进程管理,二是安装监控。进程管理软件目前最好用的是ProcessExplorer,Google一搜就有,它是完全免费的,请前往官方网站下载最新版。安装监控软件我并不想给大家推荐完美卸载之流的软件,因为他们本身都有一定的缺陷,但这类软件对于新手来讲还是必要的,至少可以让你看到一个安装程序运行的每一个细节,以积累一些查毒经验。我推荐使用的是RegMon软件,它也是完全免费的,并且功能强大,可以随时监控任何程序对注册表进行的任何读、写、创建等操作,这是我们将病毒清理干净的一把利刃,请前往官方网站下载最新版。以上就是我仅仅推荐的两款软件,都是很小的绿色软件,大家放心使用吧!
二、半自动实时监控
我们对于病毒最大的问题是如何知道病毒程序正在运行,这也是电脑新手面临的最大难题,他们往往借助于各类杀毒软件。但这不仅于事无补,并且会导致你的机器性能大幅下降。我做过测试,在同样的机器,上同样时长的网,开杀毒软件导致的用电量都将比不开杀毒软件高出30%左右,这太可怕了。众所周知,我国目前的电能资源极度紧缺……。好,朋友们会问了,不用杀毒软件你怎么知道机器被病毒感染了?我想告诉你的是每一台计算机都有两套天生的病毒警报装置,一套就是机箱上的HDD端口(硬盘)指示灯。学会观查指示灯状态,听辨硬盘的读盘声是非常重要的,也并不很难。首先我们要明确的知道我们现在正在机器上做什么,用到的程序是否会大量的读写硬盘。显然,没有任何一种应用软件在使用的时候会从头到尾不停的读写硬盘(磁盘碎片整理程序等除外),事实上运行大多数程序时,绝大多数时间硬盘也应该只是处于偶尔闪烁一下的状态,包括听歌、看电影、写文档、上网下载甚至是打游戏!但如果硬盘灯在不停的闪,并不断的发出“巨大”的响声,而你并没有进行很复杂的操作,那你的机器就很可能有危险了。排除检测法是很必要的,当你发现机器的硬盘不正常的运作,请将所运行的程序一个个的关掉,直到硬盘工作状态缓和下来。这样就很可能发现原来是某一个程序整在干“坏事”,不过当你把所有的程序都关掉时硬盘仍然在不停的运作就是令人感到非常不安的信号,这时您就应该高度的警惕了!另外一套自动警报装置来自于系统的响应效率。如果你发现你并没有运行什么操作繁杂的程序,但机器却变的很慢,甚至连打开“我的电脑”都要花一些时间的话,我将不幸的告诉您,您的机器八成是中毒了。效率低也可能分几种情况,比如时不时的顿一下,或着每次开机需要很长时间等,这都应该引起我们的注意。当然很多病毒在潜伏期是很安静的,对于这种病毒我们又如何才能发现呢?这确实是一个问题,但很有经验的朋友并不会为此感到担心,因为只要是病毒总会做出一些细小的动作,如果您对你的机算机上任何一个程序的运行过程都了如直掌的话,那病毒隐蔽的再好也不可能逃过你的眼睛。当然这需要长期积累的经验,没有经验的朋友请看下面的内容吧,一台高效病毒监控仪将会成为病毒最残忍的克星!
三、每一个进程都是我们的朋友
孙子曰“知己知彼,百战不殆”,我们必须认清病毒的真实面目,才能够进行有效的应对措施。病毒也是一种程序,任何病毒的运行都无法脱离进程,因而进程将成为我们了解病毒的第一手资料!现在要做的就是立即打开ProcessExplorer,它将会列出你机器上正在运行的每一个进程,与进程们做朋友吧,做到将所有的系统进程的情况都了如直掌。天天打开ProcessExplorer看进程列表,不懂的进程上Google搜,用不了几天您就会达到对病毒一目了然的境界。相信我,我就是这么过来的,Justdoit!还是说正事,病毒只有两种运行方式,第一种是比较弱的病毒,它会利用一个独立的进程,但有可能伪装成正常的进程的名字,所以在你查看时一定要仔细核对每一个字母。将re写成er、将I写成l都是它们惯用的手法,不过再怎么伪装还是难逃我们的火眼!一般CPU占用率很高的,而且你并不清楚的程序就应该被写入你的高危进程列表中。首先应立即对它进行Suspend操作,然后查看它的详细属性核实它所对应的程序文件是不是你所知道的,如果不能确定就上网查询,这样就可以完全搞清楚它。另一种病毒就比较讨厌了,它并不是单独的进程,而是作为一个动态链接库,挂到你系统的正常进程底下,这就非常隐蔽,但也是有办法的。对于利用rundll32.exe启动的病毒DLL还是比较容易发现的,只要利用ProcessExplorer查看rundll32.exe进程到底调用了哪些DLL就可以掌握,最可怕的是挂在IE和Explorer这类进程底下的DLL插件病毒,这就比较讨厌了。对于它们,我们只能在发现浏览器出现了一些莫名其妙的问题时才能想到去搜查病毒的底细,索性这类病毒比较罕见,并且危害性并不很大,因为它们的调用依赖浏览器,将浏览器关闭后它们将无法运行。也许很多朋友会说现在浏览器插件到处都是,搞的机器满目狼藉,怎么还能说罕见呢?注意,您说的那些是恶意程序或流氓软件,不是病毒,它们不具传染性,因为插件的自身的复制是没有意义也不容易用程序实现的。而干掉那些恶意程序和流氓软件的方法,在后面的章节中我将会提到。
杀毒篇
一、屠杀,从进程开始
如果您已经了解了病毒的基本信息,那么查杀他将不是难事。开刀的地方当然还是进程,对病毒进程处以Suspend操作而非简单的Kill是非常必要的,因为挂起后它将不能执行任何计算机指令,对于您的机算机暂时是完全安全的。Suspend还有另一个好处,那就是彻底干掉再生型病毒。我曾见过一些病毒有两个或多个进程,相互守望,当一个被关掉,另一个马上又会把它启动起来,和您打时间差的游戏,但这对于Suspend操作就是完全没有效果的了。ProcessExplorer提供批处理的供能,我们全给他Suspend掉,看他还能怎么样!之后呢您就可以安心地泡上一杯咖啡,然后有条不紊的打开进程属性,对这个被您完全制服的病毒进行彻底解剖。先看看它调用了那些DLL,这里就很有可能存在它的同伙。有时您可能很难辨认到底哪些DLL是系统的,哪些是病毒,这里我给您提供两个方法:第一,查看DLL的属性,着重查看版本信息。如果是系统DLL,公司一定会是Microsoft,并且会有详细的版本信息,不过有些病毒DLL也会用这些东西来伪装,那就得用下面第二种方法了,那就是上Google搜索DLL的文件名,如果那是系统DLL一定可以搜到,并且你可以得到关于这个DLL的详细信息。但如果搜不到您就要小心了,它很有可能是问题DLL,尤其是在Windows目录下或System32目录下的DLL,那十有八九都是病毒!如果确认了DLL,您可能需要将这些DLL和EXE的文件名在ProcessExplorer的FindHandel功能里搜索一下,看看还有没有正藏在其它系统进程后面正偷偷注视着你一举一动的奸细。当你将病毒进程及其同伙的所有信息都掌握,并记录下来后,此时就可以来个批处理,把进程中的病毒统统杀死。这时您的电脑的内存中就暂时是无毒的了。有一部分病毒进程并不是普通的进程而是系统服务,这时您杀掉它后,还是务必去服务里禁用它。但要注意,偶尔有些病毒是附加在Explorer的进程中的,作为Explorer的插件,这就稍有些麻烦;还有更麻烦的,那就是病毒附加在系统服务的进程上,因为这些服务并不能随便关停,这会令我们感到非常苦恼,不过请相信病毒永远是人而不是神编写出来的,有我们这一群为计算机安全执着奋斗着的人在,胜利永远属于正义的一边!对于处理起来比较麻烦的病毒,我在后文会提到,下面是将比较简单的病毒赶尽杀绝的事。
二、让病毒从目录中滚蛋
我们先得从病毒所在的目录入手,如果病毒像正常的软件一样有自己独立的目录,那么我们可以略微的笑笑了――这个病毒比较弱。检查目录的创建时间就可以知道您是什么时候染的毒,并可能发现毒从何来。如果它没有自己单独的目录,而是存在于系统目录,那也比较好办,这种病毒的破坏性一般不是很大,您就直接查看它的属性就可以了解到一切必要的信息。如果它存在于您计算机上的每个目录,那这时候Windows自带的文件搜索功能就派上用场了。尽管它复制的到处都是,但这种病毒都只有一个主程序文件,且都是一个娘胎生的,文件大小必然一致。打开文件搜索的高级功能,填入EXE文件类型并把文件的大小输入,然后按下回车键,接着藏在您硬盘每个角落的病毒就会被暴露无疑。利用创建时建排序,您可以发现第一个攻击您机器的病毒了。现在所有的病毒数据文件几本都在眼前了,至少是病毒能对你发动攻击的主要成分,那么就请大开杀戒吧,把您找到的与任何与病毒相关的EXE、DLL、数据全部删除。不过别做的太绝,留上至少一个EXE作为标本,将其扩展名改为DAT并用RAR打包,我们以后还用的上。另外还是请您非常的小心谨慎,别把不是病毒的文件给误删了,那可是致命的错误!在处理完硬盘病毒后,千万不要重起计算机,那可能会导致前功尽弃,因为有的病毒的正身我们并不能如此轻易的找到。如果有些病毒不以EXE的身份出现,而是其它的比如COM、RAR等,我们的文件尺寸搜索法一样适用,换个扩展名就行了。不过我还是要告诉您一件不幸的事,主程序文件尺寸不一样的病毒现在还没有但并不代表以后不会有,到那时我们只能用关键数据匹配搜索了。然而Windows的搜索在内容匹配这一块是相当的弱,所以我打算在下一步编写一个这样的小程序,可以根据关键数据来搜索文件……扯的有点远了,必竟我们现在的形势还是一片大好,病毒还没有想象中的那么强不是吗?最终的胜利就在眼前!
三、对病毒最后的阵地发动总攻
硬盘上的病毒虽然已被我们斩草除根,但更麻烦的事还在等着我们,要知道负隅顽抗的敌人才是最可怕的。病毒的最后阵地在哪呢?无疑就是那传说中的注册表。因为系统服务的信息都存储在注册表理,我就把服务的内容归类在这一节了。首先应该做的事是仔细检查你的服务列表,仔细核对每一个没有描述的服务,看是否和你刚结束掉的进程有关。对于中文版Windows的用户来说,查出病毒服务是有一定优势的,原因说来比较可笑,那就是国外写病毒的程序员不懂中文,因此他们不会用中文的描述来将自己伪装成系统服务。因此对于一切英文描述的服务也应该格外注意。我还见过更狠的病毒,它将系统正常的进程干掉,然后将那个进程的描述、名称等信息套用在自己身上,伪装的真是天衣无缝。但最终还是露出了马脚,它所对应的EXE文件是完全不对路的。当确保进程是安全的,那我们就可以直接进入注册表了,先检查系统起动时自动运行的注册项,看有没有可疑的程序。我的经验是在系统启动时基本不运任何程序,真的要运行就放在开始菜单的启动项里,这样不仅安全,而且可以为你发现病毒带来极大的便利。事实上,长期以来的无数次实践证明,将所有的自动启动项都删除对于机器是没有任何不良影响的。系统本身不会把关键的启动程序放在那里,对于系统运行最关键的其实是服务。不过当你在这里发现病毒时先不要急于删除键值,您应该将它记录下来,看看它对应的程序是否已被你备案。然后将病毒程序可能的名字都复制下来,逐个在注册表中搜索,把找到的所有的匹配项全部删掉。不过这样做还是有一定的危险性,我强烈建议您在删除前导出键值以做备份。在注册表的查杀和扫描工作结束后,我们终于可以长嘘一口气了,因为病毒及其家人很可能已经被我们残忍的屠杀净了。在您再次检查进程列表确保无误后,就可以重起计算机看看病毒是否会再次发作了。应该不会,呵呵。
四,真正可怕的对手
还记得上面的内容中层经提到过的寄生在浏览器进程或系统服务进程中的病毒吗?它们当之无愧是我们最可怕的敌人,因为一般的杀毒软件对这类病毒根本无效,甚至它们会将您机器上安装的杀毒软件自动防护系统关闭。然而随着您将他们藏在注册表里的信息清除掉,它们中的大多数在您重起机器后就不会再附加在系统进程上了,这时就可以按照上面的方法将它们清除,这听起来并不很复杂是吗?但更加令人恐怖的病毒还在后面,那就是病毒在运行的时候对注册表实施了监控,一旦发现它在注册表里的注册信息被破坏,将会立即复原,使你对注册表的操作无效。对于这样的病毒,我们只能用干净的DOS启动盘启动机器,然后将它的程序文件删掉,再启动进入Windows,删除它在注册表里的信息。有的朋友会问,为什么不进入安全模式杀毒。当然,在安全模式下绝大多数无用的服务和进程不会被启动,然而这对于那些丧心病狂的特殊病毒这是无效的,甚至于当它们发现您的机器进入了安全模式后会立即发动最后猛攻,使您的机器彻底瘫痪。虽然这么狠的病毒对于一般的朋友来说是百年难遇的,但一张多功能的DOS启动光盘必竟会为我们的机器提供多一层的保障,还是常备一张吧!想得到它的话Google+Nero就可以了。
 
 

你可能感兴趣的:(职场,安全,病毒,休闲)