此时的反病毒程序,基本都是采用汇编编写。我们通过更多早期的反病毒程序源代码可以看出这个事实:抗病毒软件基本都使用纯汇编语言编写。而一个建立在理论体系化上面的完整杀毒程序代码量都不会少,这使得进入反病毒这个领域的门栏高得让人望而生畏。后来,使用纯C和C++编写的反病毒程序和相关模块多了起来,其中一部分还是基于跨平台的考虑。而在整个AV历史中,只有极少的爱好者使用Pascal语言来编写反病毒程序。
这是某AV查壳部分源代码:
======================================================================unp proc
call readTitle
jc noUnp
cmp varNP,0
je noUnp
call scanPack
noUnp:
ret
endp
scanPack proc
push ax bx cx dx bp di es
mov es,baseSeg
mov di,regIP
lea si,sigUnp
noLastSig:
push si
scanMore:
call scanChSumB ;1
jne nextSig
......
====================================================================== 还有一些扫描和清除模块的源代码,限于篇幅,就不一一贴出了。
远古的病毒库也较为简单,别惊讶,下面这几行,就是当年的大名鼎鼎的F-PORT的病毒特征库中的一小段:
======================================================================Valert y0Jny5dM+OMjnm-2mljm7hpsUBQrVAqq5M6i05mO0m+4gBqYUlBNBU
Taiwan OVn5aMFMA6-KNMqpYCbw-qCOqWQBEPDX553mpwNRvlehJgNldYp6Bz
Durban fEJn-jPjD2m5mjIrJb8oKcVZJMgmhkBcjcaOMnjj3YnYjvuDtW
Pretoria G7kmu5s5rypVosPPtvczLY7fKUc5MjucEPYkkM7F0od24-HW
XA1 g0knPMSjgjKH5mj5PhOA4gK6l7jr8KJWYhOKw3mm8KgCHYMM-W
Kennedy h0ljSMDMd864oME5TM+YjgeKpLuHbjmjah0fuOTM0ptAfu6LZI
8-tunes jp1TKjd5htmjnMZcwNwj+THd70MrOFFKM4X55TjjURT5JMBsnv
Virdem NWk5s5Ij9osXSctXAX82MMnmm674Rtw09rkRDu7e9fTlbO479rNbvdIipT
======================================================================
后来,时代要求科学合理的病毒库出现,病毒库不单包括病毒名、特征码,还要包括清除方法。于是人们改进了原来病毒库的结构,如下就是后来许多人采用的改进病毒库结构:
====================================================================== .!.:rc393,[VD/SLAM]
.:0.:16.:66.:00.:0C 4F8E 0D9A.:3E.:0C.:20 BC46 CF5D.:AUTO+.:62.:0.:AUTO
.!.:rc393,[VD/SLAM]
.:0.:16.:E9.:00.:0C 2A7F 96BF.:DD.:0C.:20 48A4 2DBD.:AUTO+.:152.:0.:AUTO
======================================================================
三、开元盛世:
从1994年起,AV正式成熟起来,此时的AV正慢慢走入了鼎盛时代,这个时候,以AVP为首的反病毒厂商开始大刀阔斧的占领市场,反病毒从最初的谁行谁上,演变为需要靠广告战,价格战来抢夺市场。市场的竞争就难免豪夺巧取,于是在欧洲强胜一时的Dr.Solomon开始走下坡路,最终无奈被NAI(MCAFEE)收购。
更多后起之秀们,从前辈那学来的知识,也开始参与了市场激烈的竞争,只是在反病毒技术和体系上,再也没有突破过AVP和Dr.Solomon的厂商。由于Dr.Solomon被MCAFEE收购,所以天下的反病毒引擎分为了两个派系,一个AVP(Kaspersky Antivirus)派系,一个NAI派系(Dr.Solomon派)。
而只有Eugene Kaspersky此时正式开创了一个反病毒的神话(见本人AVP神话一文),其它的商家无一不搅在市场的这个利益的角斗场。在地下病毒站,VXER们讨论和剖析的反病毒产品主要有:AVP、TBAV、F-Prot、Dr.Web,说起这个不外乎有这样的意义,我们把目光放得更远,抛却商业的争夺看到的是,在病毒作者心目中反病毒产品的力量。事实上AVP和F-PROT以大量的病毒样本库闻名,地下的VXER经常使用这两款杀毒软件来进行样本交换。
这里,让我们怀念一下Dr.Solomon,这位反病毒历史上极其重要的人物,他在1989年的反病毒产品图片(来之不易啊):




由于AVP的技术成功,使得大量第三方AV产品使用AVP的引擎来工作,这里面知名的有F-Secure、AVK等。也有许多后来学习利用AVP技术的产品,比如DR.Web,它是Igor Daniloff所领军打造的产品,这哥们也是一个顶尖逆向工程高手,而且很早以前他还经常在地下站点发表反病毒和逆向的相关文章,从对Drweb的老版本查看,我经常发现AVP的影子,连病毒库的结构,都有几分形似。
这个时候的反病毒不仅在市场上大获全胜,赚了大把的票子,在用户的需求和市场的竞争下,技术上也成熟起来,具备了:
1、高速的扫描/特征匹配算法。
2、合理的病毒库,大量的病毒样本,完善的病毒清除方法。
3、产品线全面,各种主流系统的兼容DOS/Win9x/Winnt/2000,NOVELL、LINUX/UNIX四处开花。
4、以监控为主的防护概念普及和应用。
5、启发扫描、虚拟机、人工智能全面应用。
直到今天,这些技术依然是整个AV体制的坚石和基础,而今天AV技术的发展却缓慢鲜有创新。
四、赚并堕落着: 没错,反病毒的今天已经开始了堕落,这种堕落体现在关键技术上的不思进取,市场上的尔虞我诈。反病毒商家的自我炒作,彼此炒作已经屡见不鲜。而由于基础反病毒技术的浅显化,使得大量的小手工作坊又一次涌现出来,这些手工作坊的产品不仅没有多少创意。而且它们这些良莠不齐的反病毒/反木马产品,混淆着用户的视听。
在网络上,各个BBS中,你会发现N多人都在谈论病毒,整天谈论的就是怎么清除一个木马,木马又改注册表哪里啦?木马把文件拷贝到哪儿啦?TXT文件关联是不是又被修改啦?等等,并觉得这就是“技术”,乐此不疲。我经常被人家这样问来问去,在某种意义上,我觉得这侮辱了反病毒技术,这个活儿应该叫客服 当然这种堕落也是病毒技术的堕落,初接触计算机那种对病毒的神秘感已经彻底消失,今天的病毒是看得见的,今天的病毒作者十有八九的不懂变形、多态,你看那几百K的木马,近1M的后门,形形色色的蠕虫和垃圾邮件们依靠操作系统漏洞、应用程序的BUG和对用户的社交工程欺骗来传播。
反病毒公司这个年代大喜过望,因为几乎不用对抗那些诡异的病毒,传统的那些多态、变形的DOS/WIN9X病毒已经随着系统的变换成为昨日黄花,那个年代AV做的再烂都已经无关紧要,新的平台给了大家站在同一个起跑线的机会。如今的商业反病毒公司面对木马几乎是居高临下的傲视,这让反病毒的公司的分析员多少有些无聊,是的,整天面对那些重复着、弱智的木马,那些单一的、垃圾的代码,生活变得那么乏味,没有激情,没有可敬的敌人,惺惺相惜的对手。病毒和反病毒从原来的曲高和寡,彻头彻尾的沦落为下里巴人。
我们以前要面对的是这样一些天才:

29/A成员,以Benny为首的29/A不少高手,写过许多非常具有创意的病毒、包括一些划时代的病毒,Benny是一个对技术执着的顶尖高手。值得一提的是:他虽然写了很多病毒,但他写的这些病毒仅仅是一种技术研究,事实上国内也有不少病毒高手,在默默研究病毒技术,以更深层次的技术交流为目的。有的高手还研究病毒技术的应用,包括针对爆发蠕虫的遏制。安全届最初找到通过PEB获取kernel.dll地址,从而获得ShellCode 使用API的方法时,人人叫好,而这却是被病毒高手们玩烂的技术。还有一些高手,自己写出来针对自己病毒的清除程序,原因仅仅是反病毒公司编写的清除模块不能检测和正常的清除病毒。您不信么?看看下面这段SMF病毒组织一个作者在自己的病毒清除工具包中的自述:
From author:
~~~~~~~~~~~~
I write this program, because AV programs like AVP or DrWeb can't cure
some of my virii :) Sorry, this version not tested archives and packed
files. They test only COM/EXE files. Make report at dav.rep file.
Detected all HLL-virii from DVL #3 - #4.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CIH作者,不管怎么说,陈赢豪的学习能力是值得敬佩的,因为在他写CIH之前不久,大约是两周,捷克的加密解密高手EliCZ刚刚公开自己的研究成果:通过IDT从Ring3切换到Ring0的方法,这个方法刚刚被披露没几天,就被陈赢豪创造性的应用在的病毒上。
然而,今天我们对抗的却是这样一些所谓“高手”

Jeremy Jaynes是个百万富翁,也是个垃圾邮件发送高手,他雇佣人专门进行收费互联网垃圾邮件发送业务。

Jay Echouafni ,CEO,同时也是一个黑客,控制了傀儡网络进行给竞争对手DDOS攻击。

Andrew Schwarmkoff 是俄罗斯一个黑客团体成员,善于自己改造木马/后门利用来发动社会工程学的钓鱼攻击。
病毒和反病毒仿佛商量过似的,一起开始了赚钱,不同的是,病毒作者“低调”的赚钱,钻着法律的空子,依靠网络的不可控的现实。而反病毒公司则天经地义,明目张胆。
五、前路在哪里:
今天,似乎没有多少人对反病毒产品的未来进行探索。F-Prot已经不像当年那么风光无限,虽然它的启发扫描的逻辑依然被我所赞叹。卡巴斯基(Kaspersky)“独孤求败”的寂寞和不能出世的无奈并不为多少外人所知。然而市场毕竟是市场,用户并不关心你的启发扫描模块的优劣。据我所知,有几个厂商的反病毒引擎,已经近4年几乎没有更新过,这些年惟一更新的就是不断的炒作。有的“要求进步”的公司则直接建立了研究室,你别以为这是独立探索最新反病毒技术的地方,事实上这是逆向先进反病毒产品,从而用来亦步亦趋的跟着学的研究室。
每天都是一个变革的开始,给新生的力量带来了机会,Microsoft也正式的介入了这个领域,事实上在遥远的DOS年代Microsoft就染指了一次反病毒市场,那是个时候正好是免疫技术流行的时代,Microsoft错误的以为免疫技术足以应对各种病毒,于是CPAV一度在DOS下流传。然而天山派剑术的轻灵终究无法抵挡昆仑派内力的雄厚,所以Microsoft败得很惨。但Microsoft又是一个善于学习的商家,今天Anti-Spyware 、Windows OneCare 、Windows Defender 卷土重来,一波波态势逼人。
而传闻中MS Anti-Spyware某次升级后会不小心删除Norton Antivirus,这是不是又预示一场不公平的竞争开始。
未来在那里,谁又能看的清呢,于是笔者killer只好寻根一下历史,企图借历史一双慧眼去先知一下未来。现在看来,有所惑有所不惑,把酒夜话,一切尽在不言中。
Creditz:F-Secure,提供部分图片。
PDF版:
http://killer.9i3g.cn/tmp/AVhistory&future_killer.pdf