作者像
原书封面
说明:《 病毒小黑书》(The Little Black Book of Computer Viruses)是美国作家Mark A. Ludwig 的计算机病毒丛书三卷本之一。其它两本分别是《计算机病毒大黑书》(The Giant Black Book of Computer Viruses)和《计算机病毒、人工智能及其进展》(Computer Viruses,Artificial Life and Evolution)。这是一套很另类的从书,内容精彩,语言张扬、诙谐,其中的新颖观点引人回味和思索。
此外要说明一点,这套丛书出版于上世纪90年代(出版商为美国Eagle公司,American Eagle Publications, Inc.),其中介绍的计算机病毒技术和知识已经过时,不会对今天的计算机系统造成危害;而其中的人工智能方面的内容,则对今天的诸多方面仍有较大启发和参考价值。
目 录
------------------------------------------------------------
导 言
绪 论
计算机病毒基础
简单的COM文件病毒
复杂的可执行病毒
简单的引导扇区病毒
复杂的引导扇区病毒
附录A:TIMAD病毒源码
附录B:INTRUDER病毒源码
附录C:引导扇区病毒
附录D:KILROY病毒源码
附录E:STEALTH病毒源码
附录F:16进制文件的装载
附录G:BIOS和DOS中断调用功能
附录H:参考读物
----------------------------------------------------
导 言
这是有关计算机病毒系列著作三卷本中的头一本。在这本书中,我要让你用一种全新的思维方式来看待计算机病毒,并澄清对计算机病毒的一些错误概念和认识,然后再以客观的态度来讨论当今世界上的计算机病毒问题。这套书不是对一个“受迫害者”的采访,也不是教你如何保护计算机免遭病毒攻击的手册。恰恰相反,这套书能教你如何设计病毒,怎样传播它们,以及怎样使它们效能更好。所有三本书里都充满了病毒的源代码,包括已知的著名病毒和新病毒。
很显然,这样的书肯定会使一些人感到不愉快。事实上,这也是我的愿望。因为他们正需要一些不愉快。我深信计算机病毒并不是邪恶之源,计算机程序员们有权利创作它们、发布它们,和用它们进行试验。不论我如何表述,这一立场肯定会冒犯很多人。因为即便是纯粹从技术的角度来简单探讨一下如何写作病毒和提供一些例子,都会惹怒那些官僚们。但是只要一想到网络上活跃着的无数黑客,便足以驱散官僚主义者们的狂怒在我心中留下的阴霾。这套书不仅超出了对病毒进行技术分析的范畴,还为那些诸如“病毒也有有益的一面”、“病毒是有趣的”、“病毒也是一种玩笑”等论点进行了辩护,这就更易遭人厌恶了。但是,真理就是真理,真理就需要表述,哪怕它遭人怨恨。道德规范不能仅仅由多数人的投票说了算,就象它不能由枪炮或大嗓门说了算一样。强权并不等于真理。
如果你恰好属于一位被我冒犯的读者,而且还是我的观点的强烈反对者,请你记住我的一位运动员朋友对我说过的话:“没有痛苦,就不会有收获。”这本是竞技场上的一句流行语,但道理相通,它同样也适合于我和你。如果一个人只听得进与自己观点一致的意见,那么他永远也不可能成长进步,因为他的智力始终超越不了他身边那个唯唯诺诺好好先生们的小圈子。另一方面,一个甘愿冒点受人攻击风险、听听不同意见的人,至少能想想自己是否也会犯错误,从而有所获益。所以,如果你认为这本书中的某些内容冒犯了你,不妨带着评判的眼光来对待它,既对这本书同时也对你自己。不要人云亦云,由别人来告诉你应该如何去思考。
从一开始,我要强调我绝不提倡任何人使用恶性病毒去感染无辜者的计算机系统、破坏有价值的数据或造成计算机系统瘫痪。那不仅仅只是错误,而是违法行为。如果有人这么干,那他得准备去蹲监狱,或面临数百万元的赔偿起诉。不过,这并不意味着创作一个计算机病毒和用它来进行试验就是违犯的行为,虽然我知道有些人就希望这么下定义。而如果你真创作了一个病毒,试验时你可千万要小心,你必须掌握它运行时的所有细节问题,否则你的系统也可能被它捣毁。尤其是,你应确保你不会马虎大意地把它散布出去,否则你就有可能陷入法律纠纷......哪怕它只是由一场意外所造成。那些因此而失去了整整一年辛劳工作成果的人大概不会把这只当做是一场简单的事故。也许不久的将来,传播没有任何危害性的良性病毒(即使是对你自己的计算机系统)也会被视做是违法行为。这里的关键词是:责任,负责任。如果你做了什么破坏,你就要准备承担责任。包含在本书中的程序代码如果被不恰当地使用,将会是有危险的。你应该象在使用致命性武器时那样,来审慎地使用和操作它们。
作为三卷本的第一册,本书介绍了计算机病毒创作的基本技术和方法。内容包括:什么是计算机病毒?计算机病毒是如何工作的?病毒的关键组成部分及其功能,等等。一步一步,由浅入深。书中以几个不同类型病毒的开发为例子,向读者详细介绍了创作病毒的实用技能。这也是深入理解和分析日常工作中可能遇到的任何一种计算机病毒代码的先决条件。许多人把计算机病毒视为一种魔法,本书能够把他们带离这个误区,让他们认清事实的真相。用技术术语来说:计算机病毒,实际上就是一种计算机程序。
丛书的第二卷讨论了计算机病毒的科学应用。在当代科学中,有一个被称作“人工生命(Artificial Life,简称AL)”的全新研究领域,专门负责研究病毒以及相关组织的人工合成与制造问题。由于计算机病毒在机能上与生命有机体有着许多类似之处,因此,从生物学的角度来研究计算机病毒,可以使我们对计算机病毒的行为规范、如何使它们更加完善等问题,有更深入和全面的了解;相反,在研究生命有机体时,计算机病毒也有很大的潜在利用参考价值。例如,可以以目前对生命有机体还无法做到的某种方式来生产和控制计算机病毒,以此帮助我们了解生命有机体在类似方式下的生长变异情况,对生命的本质特征提供抽象意义上的了解。更进一步,它甚至能够帮助我们重新反思生命的起源和后来的进化演变过程这样的重大问题。
丛书的第三卷讨论了计算机病毒的军事应用。众所周知,计算机病毒可以具有极大的攻击破坏性,而在部署它们时又可以具有极小的风险。各国的军方部门都清楚这一点,并认为病毒进攻既是一种非常真实的威胁,也是一种极为有效的攻击选择手段。很多国家的高层官员相信,在本国计算机系统受到的攻击中,不乏由于政治因素的案例。本卷要讨论计算机病毒的军事战略和具体攻击实施问题,并对病毒武器的发展研制、防御等问题做深入的探讨。
你可能会怀疑自己是否有必要花时间来阅读这样的书籍。毕竟,计算机病毒看上去除了它的军事用途而外,似乎没有其它任何商业价值。学会怎样编写计算机病毒也许并不会给你带来更多的从业机会,或教会你一种新的技能。所以,除非你的工作就是向对手播种混乱,否则值得为它们浪费时间吗?让我试着来回答这个问题:打从1940年代计算机被发明时起,就有一批志同道合的人,投身到了对这一神奇机器无限能力的开发探求之中,这些人中既有数学家和科学家,也有数以千计不知名的爱好者。他们深深痴迷于对电脑能力的无穷挖掘,做梦也想要制造出能够思考和具有自主行为的神奇机器,而不只是满足于它会按照人们事先编好的程序来一步一步的完成交给它的任务。在许多年里,这一愿望不过是纯粹的科学幻想。然而,对信念的执着不疑驱使着人们想方设法要把幻想变为现实。“人工智能(artificial intelligence,简称AI)”这门新兴学科,就是由此而诞生的。除此而外,人工智能应用的研究还因常常受到来自商业利益方面的驱使,而变得多姿多彩,例如具有广泛应用前景的各种知识库和专家系统等。这些都大大拓展了AI的研究领域,而非仅仅限于狭窄的对机器本身的探索。在向制造出“有生命的机器”迈进的路途中,计算机病毒技术也许能够成为一种根本的解决方案,与那些试图从复制最简单的生命体开始,最终设计出一种机器能够拙劣地模仿复杂高等生物(如人类)的某些行为的方案相比,它的优越性要大得多。简单的单细胞生物干不了什么事,最原始的生命只能从海水中的无机化合物里吸取养分,从阳光中获取能量。它们唯一的目的显然就是活着与繁殖。它们并不很聪明,去谈论它们的所谓“心灵感应”的玄奥东西实在是一件很无聊的事。它们不过是照着安排好的程序去做,而且非常有效率。如果我们试图制造一个机器来模仿这样的生物——一种只会游来荡去收集原料来复制后代的小机器人——那将会困难重重。另一方面,让我们来思考一个全新的世界——它不是由生物构成的,而是一个电子的,就存在于一台计算机中,那是一个病毒的世界。在这里,病毒以与原始生命差别不大的方式“生活”于其中。它们与原始的生命有着同样的生存目的——活着并且繁殖。它们也要克服周围环境的危害,以免被“杀死”或失去活力。而当它们摆脱危险时,看上去似乎也有自己的意识。它们在电子世界里游荡,按已安排好了的程序去做事。从这一点上看,它们确实是在很真实地活着。
在地球的发展演化过程中,生命的诞生毫无疑问是一件具有里程碑意义的大事。但若是从无机物的观点来看待生命,那么你很难想象生命跟一种有害物又会相差多少。通常,我们都假定生命是有价值的,值得去保护它们。可是我们不能倒退回原始的过去,去看看生命到底是如何有助于那个无生命的世界的。考量一下眼前这个由原子组成的世界,想想温度在华氏70度时与二千万度时会有什么区别?要是我们的地球表面布满了放射性物质,那又会怎么样?很简单,什么生命都不会有。当我们谈到环境和生态时,我们总是假定生命是有价值的,需要生息和保护。可几乎所有的生命都在消耗无生命的物质世界,但却甚少关心后者。从最简单的只知道尽可能地搜集所需营养物并且污染生活水源的单细胞生物,一直到碾碎岩石从中提炼金属建造一切用品的人类,无不如此。生物就是以这样随自己意愿的方式来对待物质世界的。这是一种全然的(受尊重生命观念所激发的)自私行为。即使有人指责说采矿业破坏了自然美景,这种指责也是从生物的角度出发的,即“美景”之所以被破坏是因为它已“不再适宜于人类居住”。如果一个人真的能够不仅仅从生物的角度来看问题,那么他在考虑取缔采矿业时,也许会想到应让大自然恢复到生命起源以前的状态!
我说以上这些话,并不是要对生态学家们说三道四,我不过是想把这个道理应用到计算机病毒上。如果人们总是从赢利的狭隘角度来评估一个计算机程序的价值,计算机病毒就永远摆不到一个正确的位置上:它们除了毁坏有价值的程序和数据还干过什么?它们粗暴地获取不应有的权限,觊觎和掳取计算机系统中的资源,并且手段越狠,成功的可能性也越大。但是且慢,如果你把它们与上文中提到的生物学意义上的生命相比较,你能说出二者的差别在哪儿?如果一丛苔藓能够通过侵蚀岩石获取阳光与生长之必需,它必将毫不留情地这样做。我们也会对此加以由衷地赞美。那么一个计算机病毒为了生存把自己附着在一个程序上与这又有什么不同呢?如果人们对计算机世界的关心只是保护那些死气沉沉没有“生命”的东西(这里指的是那些通常意义上的程序),那么理所当然就不会有病毒的位置。
但是这里也许真的有些值得深究的道理在内,尽管这全取决于你看问题的态度。现代文明似乎已退化到了这样的境地,绝大多数人已不再有崇高的目标,他们眼里只剩下财富与个人的安宁,奢望能够不经任何挑战和艰险就得到自己想要的一切。卡尔·马克思通过对人类的长期观察,得出结论说:隐藏在每一个人身后的原动力均来自于他的经济学意义上的需求。其结果——他说——就是所有的人类历史都可以用“阶级斗争”四个字来概括。人们相互争斗,以获得经济控制权。尽管政府中有许多人攻击马克思是共产主义之父,可他们掠夺和压榨起别人来却毫不手软。(以下略)