电脑病毒的起源(节录自牛顿杂志)
电脑病毒的历史:磁蕊大战
电脑病毒并非是最近才出现的新产物, 事实上, 早在一九四九年, 距离第一部商用电脑的出现仍有好几年时, 电脑的先驱者约翰.范纽曼(John Von Neumann)在他所提出的一篇论文 [复杂自动装置的理论及组织的进行] , 即已把病毒程式的蓝图勾勒出来, 当时, 绝大部份的电脑专家都无法想像这种会自我繁植的程式是可能的, 可是少数几个科学家默默的研究范纽曼的所提出的概念, 直到十年之后, 在美国电话电报公司(AT&T) 的贝尔(Bell)实验室中, 这些概念在一种很奇怪的电子游戏中成形了, 这种电子游戏叫做 [磁蕊大战] (core war)。
磁蕊大战是当时贝尔实验室中三个年轻程式人员在工馀想出来的, 他们是道格拉斯麦耀莱(H.Douglas McIlroy), 维特.维索斯基(Victor Vysottsky)以及罗伯.莫里斯(Robert T. Morris), 当时三人年纪都只有二十多岁.
附注: Robert T. Morris 就是后来写了一个 Worm, 把 Internet 搞的天翻地覆的那个 Robert T. Morris Jr. 的爸爸, 当时大 Morris 刚好是负责 Arpanet网路安全 .
电脑病毒的老祖宗:
磁蕊大战的玩法如下:两方各写一套程式, 输入同一部电脑中, 这两套程式在电脑?记忆系统内互相追杀,有时它们会放下一些关卡,有时会停下来修理(重新写)被对方破坏的几行指令 当它被困时,也可以把自己复制一次,逃离险境,因为它们都在电脑的记忆磁蕊中游走,因此得到了磁蕊大战之名.
这个游戏的特点,在於双方的程式进入电脑之后,玩游戏的人只能看著萤幕上显示的战况,而不能做任何更改,一直到某一方的程式被另一方的程式完全 [吃掉] 为止.
磁蕊大战是个笼统的名称,事实上还可细分成好几种,麦耀莱所写的程式叫 [达尔文]这包含了 [物竞天择,适者生存] 的意思 . 它的游戏规则跟以上所描述的最接近,双方以组合语言(Assembly Language)各写一套程式,叫有机体(organism),这两个有机体在电脑里争斗不休,直到一方把另一方杀掉而取代之,便算分出胜负. 在比赛时 Morris 经常匠心独具,击败对手.
另外有个叫爬行者程式(Creeper)的,每一次把它读出时,它便自己复制一个副本.此外,它也会从一部电脑[爬]到另一部有连线的电脑.很快地电脑中原有资料便被这些爬行者挤掉了.爬行者的微一生存目地是繁殖.为了对付[爬行者],有人便写出了[收割者](Reaper).它的唯一生存目的便是找到爬行者,把它们毁灭掉.当所有爬行者都被收割掉之后,收割者便执行程式中最后一项指令:毁灭自己,从电脑中消失.[侏儒](Dwarf)并没有达尔文等程式聪明.却可是个极端危险人物.它在记忆系统中迈进,每到第五个[地址](address)便把那里所储存的东西变为零,这会使的原本的程式停摆.
最奇特的就是一个叫[印普](Imp)的战争程式了,它只有一行指令,那就是
MOV 01
MOV是[MOVE]的代表,即移动的意思 .它把身处的地址中所载的[0]写(移)到下一个地址中,当印普展开行动之后,电脑中原有的每一行指令都被改为[MOV 01].换句话说,萤光幕上留下一大堆[MOV 01].[双子星](Germini)也是个有趣的家伙.它的作用只有一个:把自己复制,送到下一百个地址后,便抛弃掉[正本].从双子星衍生出一系列的程式.[牺牲者](Juggeraut)把自己复制后送到下十个地址之后而[大雪人](Bigfoot)则把正本和复制品之间的地址定为某一个大质数.想抓到大雪人可是非常困难的.此外,还有全录(Xerox)柏路阿图研究中心的约翰.索殊(John F.Shoch)所写的[蠕虫](Worm),它的目的是要控制侵入的电脑.
电脑病毒的出现
在那些日子里,电脑都没有连线,而是互相独立的,因此并不会出现小莫礼士所引起的病毒瘟疫.如果有某部电脑受到[感染],失去控制,工作人员只需把它关掉便可.但是当电脑连线逐渐成为社会结构的一部份之后,一个或自我复制的病毒程式便很可能带来?穷的祸害了.因此长久一来,懂的玩[磁蕊大战]游戏的电脑工作者都严守一项不成文的规定: 不对普罗大众公开这些战争程式的内容.
一九八三年,这项规定被打破了.科恩.汤普逊(Ken Thompson)是当年一项杰出电脑讲得奖人.在颁奖典礼上,他作了一个演讲,不但公开地证实了电脑病毒的存在,而且还告诉所有听众怎样去写自己的病毒程式.他的同行全都吓坏了,然而这个秘密已经流传出去了.一九八四年,情况愈复杂了.这一年,[科学美国人]月刊(Scientific American)的专栏作家杜特尼(A. K. Dewdney)在五月号写了第一篇讨论[磁蕊大战]的文章,并且只要寄上两块美金,任何读者都可以收到它所写得有关写程式的纲领,在自己家中的电脑中开辟战场.
[病毒]一词的正式出现
在一九八五年三月份的[科学美国人]里,杜特尼再次讨论[磁蕊大战]-----和病毒.在文章的开头他便说:[当去年五月有关[磁蕊大战]的文章印出来时,我并没有想过我所谈论的是那么严重的题目]文中并第一次提到[病毒]这个名称.他提到说,义大利的罗勃吐.些鲁帝(Roberto Cerruti)和马高.么鲁顾帝(Marco Morocutti)发明了一种破坏软体的方法.他们想用病毒,而不是蠕虫,来使得苹果二号电脑受感染.
些鲁弟写了一封信给杜特尼,信内说:[马高想写一个像[病毒]一样的程式,可以从一部苹果电脑传染到另一部苹果电脑,使其受到感染.可是我们没法这样做,直到我想到,这病毒要先使磁碟受到感染,而电脑只是媒介.这样,病毒就可以从一片磁碟传染到另一片磁碟了.]
病毒历史事例:
1975 年,美国科普作家约翰·布鲁勒尔 (John Brunner) 写了一本名为《震荡波骑士》(Shock Wave Rider) 的书,该书第一次描写了在信息社会中,计 算机作为正义和邪恶双方斗争的工具的故事,成为当年最佳畅销书之一。
1977 年夏天,托马斯·捷·瑞安 (Thomas.J.Ryan) 的科幻小说《P-1的春 天》(The Adolescence of P-1) 成为美国的畅销书,作者在这本书中描写了一 种可以在计算机中互相传染的病毒,病毒最后控制了 7,000 台计算机,造成了 一场灾难。
1983 年 11 月 3 日,弗雷德·科恩 (Fred Cohen) 博士研制出一种在运行过程中可以复制自身的破坏性程序,伦·艾德勒曼 (Len Adleman) 将它命名为计算机病毒 (computer viruses),并在每周一次的计算机安全讨论会上正式提出,8 小时后专家们在 VAX11/750 计算机系统上运行,第一个病毒实验成功,一周后又获准进行 5个实验的演示,从而在实验上验证了计算机病毒的存在。
1986 年初,在巴基斯坦的拉合尔 (Lahore),巴锡特 (Basit) 和阿姆杰德(Amjad) 两兄弟经营着一家 IBM-PC 机及其兼容机的小商店。他们编写了Pakistan 病毒,即 Brain。在一年内流传到了世界各地。
1988 年 3 月 2 日,一种苹果机的病毒发作,这天受感染的苹果机停止工作,只显示“向所有苹果电脑的使用者宣布和平的信息”。以庆祝苹果机生日。
1988 年 11 月 2 日,美国六千多台计算机被病毒感染,造成 Internet 不能正常运行。这是一次非常典型的计算机病毒入侵计算机网络的事件,迫使美国政府立即作出反应,国防部成立了计算机应急行动小组。这次事件中遭受攻击的包括 5 个计算机中心和 12 个地区结点,连接着政府、大学、研究所和拥有政府合同的50,000 台计算机。这次病毒事件,计算机系统直接经济损失达 9600 万美元。这个病毒程序设计者是罗伯特·莫里斯 (Robert T.Morris),当年 23 岁,是在康乃尔 (Cornell) 大学攻读学位的研究生。
罗伯特·莫里斯设计的病毒程序利用了系统存在的弱点。由于罗伯特·莫里斯成了入侵 ARPANET 网的最大的电子入侵者,而获准参加康乃尔大学的毕业设计,并获得哈佛大学 Aiken 中心超级用户的特权。他也因此被判3 年缓刑,罚款1 万美元,他还被命令进行 400 小时的新区服务。
注:在此文中,把蠕虫、我们常提的病毒定为病毒不同种类。
1988 年底,在我国的国家统计部门发现小球病毒。
--------------------------------------------------------------------------------
在病毒的发展史上,病毒的出现是有规律的,一般情况下一种新的病毒技术出现后,病毒迅速发展,接着反病毒技术的发展会抑制其流传。操作系统进行升级时,病毒也会调整为新的方式,产生新的病毒技术。它可划分为:
DOS引导阶段
1987年,计算机病毒主要是引导型病毒,具有代表性的是“小球”和“石头”病毒。
当时得计算机硬件较少,功能简单,一般需要通过软盘启动后使用。引导型病毒利用软盘得启动原理工作,它们修改系统启动扇区,在计算机启动时首先取得控制权,减少系统内存,修改磁盘读写中断,影响系统工作效率,在系统存取磁盘时进行传播。1989年,引导型病毒发展为可以感染硬盘,典型的代表有”石头2”。
DOS可执行阶段
1989年,可执行文件型病毒出现,它们利用DOS系统加载执行文件的机制工作,代表为”耶路撒冷”,”星期天”病毒,病毒代码在系统执行文件时取得控制权,修改DOS中断,在系统调用时进行传染,并将自己附加在可执行文件中,使文件长度增加。1990年,发展为复合型病毒,可感染COM和EXE文件。
伴随,批次型阶段
1992年,伴随型病毒出现,它们利用DOS加载文件的优先顺序进行工作。具有代表性的是”金蝉”病毒,它感染EXE文件时生成一个和EXE同名的扩展名为COM伴随体它感染COM文件时,改为原来的COM文件为同名的EXE文件,在产生一个原名的伴随体,文件扩展名为COM。这样,在DOS加载文件时,病毒就取得控制权。这类病毒的特点是不改变原来的文件内容,日期及属性,解除病毒时只要将其伴随体删除即可。在非DOS操作系统中,一些伴随型病毒利用操作系统的描述语言进行工作,具有典型代表的是”海盗旗”病毒,它在得到执行时,询问用户名称和口令,然后返回一个出错信息,将自身删除。批次型病毒是工作在DOS下的和”海盗旗”病毒类似的一类病毒。
幽灵,多形阶段
1994年,随着汇编语言的发展,实现同一功能可以用不同的方式进行完成,这些方式的组合使一段看似随机的代码产生相同的运算结果。幽灵病毒就是利用这个特点,每感染一次就产生不同的代码。例如”一半”病毒就是产生一段有上亿种可能的解码运算程序,病毒体被隐藏在解码前的数据中,查解这类病毒就必须能对这段数据进行解码,加大了查毒的难度。多形型病毒是一种综合性病毒,它既能感染引导区又能感染程序区,多数具有解码算法,一种病毒往往要两段以上的子程序方能解除。
生成器,变体机阶段
1995年,在汇编语言中,一些数据的运算放在不同的通用寄存器中,可运算出同样的结果,随机的插入一些空操作和无关指令,也不影响运算的结果,这样,一段解码算法就可以由生成器生成。当生成的是病毒时,这种复杂的称之为病毒生成器和变体机就产生了。具有典型代表的是”病毒制造机”VCL,它可以在瞬间制造出成千上万种不同的病毒,查解时就不能使用传统的特征识别法,需要在宏观上分析指令,解码后查解病毒。变体机就是增加解码复杂程度的指令生成机制。
网络,蠕虫阶段 第一篇 第二篇
1995年,随着网络的普及,病毒开始利用网络进行传播,它们只是以上几代病毒的改进。在非DOS操作系统中,”蠕虫”是典型的代表,它不占用除内存以外的任何资源,不修改磁盘文件,利用网络功能搜索网络地址,将自身向下一地址进行传播,有时也在网络服务器和启动文件中存在。
视窗阶段
1996年,随着Windows和Windows95的日益普及,利用Windows进行工作的病毒开始发展,它们修改(NE,PE)文件,典型的代表是DS。3873,这类病毒的急智更为复杂,它们利用保护模式和API调用接口工作,解除方法也比较复杂。
宏病毒阶段
1996年,随着Windows Word功能的增强,使用Word宏语言也可以编制病毒,这种病毒使用类Basic语言,编写容易,感染Word文档文件。在Excel和AmiPro出现的相同工作机制的病毒也归为此类。由于Word文档格式没有公开,这类病毒查解比较困难。
互连网阶段
1997年,随着因特网的发展,各种病毒也开始利用因特网进行传播,一些携带病毒的数据包和邮件越来越多,如果不小心打开了这些邮件,机器就有可能中毒。
爪哇,邮件炸弹阶段
1997年,随着万维网上Java的普及,利用Java语言进行传播和资料获取的病毒开始出现,典型的代表是JavaSnake病毒。还有一些利用邮件服务器进行传播和破坏的病毒,例如Mail-Bomb病毒,它就严重影响因特网的效率。
浏览器目录·发展历史
·协定和标准
·内核
·万维网和网页浏览器的功能
·常用的浏览器
·浏览器大全
·建议
网页浏览器是个显示网页服务器或档案系统内的文件,并让用户与此些文件互动的一种软件。它用来显示在万维网或局部局域网络等内的文字、影像及其他资讯。这些文字或影像,可以是连接其他网址的超连结,用户可迅速及轻易地浏览各种资讯。网页一般是HTML的格式。有些网页是需使用特定的浏览器才能正确显示。个人电脑上常见的网页浏览器包括微软的Internet Explorer、Opera、Mozilla的Firefox、Maxthon和Safari。浏览器是最经常使用到的客户端程序。万维网是全球最大的连结文件网络文库。 全球网(WEB,WWW)是一种把所有 Internet的信息(包括你愿意加进去的本地信息)组织成超文本文件形式文件的企图。 尽管这个梦也许有点不太现实, 但是全球网确实让你能访问 Internet的所有资源,只需用浏览器"读"适当的文件就行。 浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL指定,文件格式通常为HTML,并由MIME在HTTP协议中指明。一个网页中可以包括多个文档,每个文档都是分别从服务器获取的。大部分的浏览器本身支持除了HTML之外的广泛的格式,例如JPEG、PNG、GIF等图像格式,并且能够扩展支持众多的插件(plug-ins)。另外,许多浏览器还支持其他的URL类型及其相应的协议,如FTP、Gopher、HTTPS(HTTP协议的加密版本)。HTTP内容类型和URL协议规范允许网页设计者在网页中嵌入图像、动画、视频、声音、流媒体等。
发展历史
蒂姆·伯纳斯-李(Tim Berners-Lee)是第一个使用超文本来分享资讯的人。他于1990年发明了首个网页浏览器WorldWideWeb。在1991年3月,他把这发明介绍给了给他在CERN工作的朋友。从那时起,浏览器的发展就和网络的发展联系在了一起。当时,网页浏览器被视为能够处理CERN宠大电话簿的实用工具。在与用户互动的前题下,网页浏览器根据gopher和telnet协议,允许所有用户能轻易地浏览别人所编写的网站。可是,其后加插图像进浏览器的举动使之成为了互联网的“杀手级应用”。NCSA Mosaic使互联网得以迅速发展。它最初是一个只在Unix运行的图像浏览器;很快便发展到在Apple Macintosh和Microsoft Windows亦能运行。1993年9月发表了1.0版本。NCSA中Mosaic项目的负责人Marc Andreesen辞职并建立了网景通讯公司。网景公司在1994年10月发布了他们的旗舰产品网景导航者。但第二年Netscape的优势就被削弱了。错失了互联网浪潮的微软在这个时候匆促的购入了Spyglass公司的技术,改成Internet Explorer,掀起了软件巨头微软和网景之间的浏览器大战。这同时加快了万维网发展。这场战争把网络带到了千百万普罗电脑用户面前,但同时显露了互联网商业化如何妨碍统一标准的制定。微软和网景都在他们的产品中加入了许多互不兼容的HTML扩展代码,试图以这些特点来取胜。1998年,网景公司承认其市场占有率已无法挽回,这场战争便随之而结束。微软能取胜的其中一个因素是它把浏览器与其操作系统一并出售(OEM,原始设备制造);这亦使它面对反垄断诉讼。网景公司以开放源代码迎战,创造了Mozilla,但此举未能挽回Netscape的市场占有率。在1998年底美国在线收购了网景公司。在发展初期,Mozilla计划为著吸引开发者而挣扎;但至2002年,它已发展成一个稳定而强大的互联网套件。Mozilla 1.0的出现被视为其里程碑。同年,衍生出Phoenix(后改名Firebird,最后又改为Firefox)。Firefox 1.0于2004年发表。及至2005年,Mozilla及其衍生产品约占10%网络交通量。Opera是一个灵巧的浏览器。它发布于1996年。目前它在手持电脑上十分流行。它在个人电脑网络浏览器市场上的占有率则稍微较小。Lynx浏览器仍然是Linux市场上十分流行的浏览器。它是全文字模式的浏览器,视觉上并不讨好。还有一些有着进阶功能的同类型浏览器,例如Links和它的分支ELinks。Konqueror是一个由KDE开发的浏览器,KDE开发人员在开发KDE2时意识到一个良好的桌面环境必须搭配一个良好的网络浏览器及档案管理员,便投入不少力量开发了Konqueror,这个浏览器使用了自家开发的排版引擎KHTML,由于Konqueror是属于KDE的一员,并只常见于Unix-like下的KDE桌面环境,所以Konqueror并未普及。纵然Macintosh的浏览器市场现在亦同样被Internet Explorer和Firefox占据,但未来有可能会是苹果电脑自行推出的Safari的世界。Safari是基于Konqueror这个开放源代码浏览器的KHTML排版引擎而制成的。Safari是Mac OS X的缺省浏览器。2003年,微软宣布不会再推出的独立的Internet Explorer,但会变成视窗平台的一部份;同时也不会再推出任何Macintosh版本的Internet Explorer。不过,于2005年初,微软却改变了计划,并宣布将会为Windows XP、Windows Server 2003和快将发表的Windows Vista操作系统推出Internet Explorer 7。
协定和标准
网页浏览器主要通过HTTP协议连接网页服务器而取得网页,HTTP容许网页浏览器送交资料到网页服务器并且获取网页。目前最常用的HTTP是HTTP/1.1,这个协议在RFC2616中被完整定义。HTTP/1.1 有其一套Internet Explorer并不完全支援的标准,然而许多其他当代的网页浏览器则完全支援这些标准。网页的位置以URL(统一资源定位符)指示,此乃网页的地址;以http:开首的便是通过HTTP协议登陆。很多浏览器同时支援其他类型的URL及协议,例如ftp:是FTP(档案传送协议)、gopher:是Gopher及https:是HTTPS(以SSL加密的HTTP)。网页通常使用HTML(超文本连结标记语言)文件格式,并在HTTP协议内以MIME内容形式来定义。大部分浏览器均支援许多HTML以外的文件格式,例如JPEG、PNG和GIF图像格式,还可以利用插件来支援更多文件类型。在HTTP内容类型和URL协议结合下,网页设计者便可以把图像、动画、视频、声音和流媒体包含在网页中,或让人们透过网页而取得它们。早期的网页浏览器只支援简易版本的HTML。专属软件的浏览器的迅速发展导致非标准的HTML代码的产生。这导致了浏览器的兼容性的问题。现代的浏览器(Mozilla、Opera和Safari)支援标准的HTML和XHTML(从HTML 4.01版本开始)。他们显示出来的网页效果都一样。Internet Explorer仍未完全支援HTML 4.01及XHTML 1.x。现在许多网站都是使用所见即所得的HTML编辑软件来建构的,这些软件包括Macromedia Dreamweaver和Microsoft Frontpage等。他们通常缺省产生非标准HTML;这阻碍了W3C制定统一标准,尤其是XHTML和CSS(层叠样式表,设计网页时用)。有一些浏览器还加载了一些附加组件来Usenet新闻组、IRC(因特网中继聊天)和电子邮件。支援的协议包括NNTP(网络新闻传输协议)、SMTP(简单邮件传输协议)、IMAP(交互邮件访问协议)和POP(邮局协议)。
内核
Trident:Internet Explorer所使用 Gecko:Netscape6以后版本以及firefox所使用 KHTML:KDE开发团队所开发,主要由Konqueror所使用。 Presto:Opera7开始采用 WebCore:苹果电脑修改KHTML而来,主要由Safari所使用。
万维网和网页浏览器的功能
不同的浏览器有不同的功能,现时浏览器和网页会有很多功能和技术是以往没有的。如之前提到的,因为浏览器战的出现,浏览器和万维网得以迅速但混乱地扩展。以下是较为人熟悉的功能列表:支持标准HTTP(超文本传输协议)和HTTPS HTML(超文本连结标记语言),XHTML(可扩展的超文本标记语言)及XML(可扩展标记语言) 图形档案格式如GIF、PNG、JPEG、SVG CSS(层叠样式表) JavaScript(动态网页DHTML) Cookie 让网站可以追踪浏览者 电子证书 Macromedia Flash Java applet Favicons 基本功能书签管理 下载管理 网页内容快取 透过第三方插件(plugins)支援多媒体 附加功能网址和表单资料自动完成 分页浏览 禁止弹出式广告 广告过滤
常用的浏览器
GisoonBrowser(极速浏览器 共软网络)
AvantBrowser
Internet Explorer
Mozilla Firefox
Tencent Traveler(腾讯TT)
Maxthon
浏览器大全
图形界面
同时基于Gecko和Trident两种排版引擎
GisoonBrowser(极速浏览器 共软网络)
Maxthon(原名MyIE2,使用Gecko/Trident双引擎)
Netscape Browser(版号8)
Sleipnir(使用Gecko/Trident双引擎)
基于Gecko排版引擎
GisoonBrowser(极速浏览器 共软网络)
Mozilla Firefox
Mozilla Suite
Camino
3B
Aphrodite
BackArrow
Beonex Communicator
CompuServe
Epiphany
Flock
Galeon
Kazehakase
Madfox
Netscape(版号6和7)
Netscape Navigator 9
Salamander
Seamonkey
Skipstone
基于Trident排版引擎
Internet Explorer
GisoonBrowser(极速浏览器 共软网络)
Avant Browser
Crazy Browser
GOSURF
GreenBrowser
iRider
KKman
MSN Explorer
MyIE
mxie
NeoPlanet
NetCaptor
PCMan Combo
TheWorld Browser
Deepnet Explorer
Windows Explorer
Tencent Traveler(腾讯公司)
PCMan Combo(PTT HZYSoft开发/BBS和由浏览器结合)
基于KHTML排版引擎
Konqueror
Safari
ABrowse
OmniWeb
Shiira
SkyKruzer
SunriseBrowser
其它网页浏览器
Opera
Amaya
AWeb
Arachne
Dillo
Emacs/W3
Enigma Browser
HotJava
IBrowse
iCab
Jazilla
Netscape Navigator(版号1~4)
NetPositive
Off By One
Oregano
VoyagerVoyager
手机浏览器
MP手机浏览器
opera
UC
文字界面
ELinks
Links
Lynx
Netrik
w3m
早期的
WorldWideWeb
Mosaic
Act
AMosaic
Arena
Cello
CyberDog
Grail
IBM Web Explorer
MacWeb
MidasWWW
NetShark
SlipKnot
ViolaWWW
WebRouser