萬盛學電腦網

 萬盛學電腦網 >> 病毒防治 >> 電腦病毒的起源

電腦病毒的起源

(節錄自牛頓雜志)

電腦病毒的歷史:磁蕊大戰

電腦病毒並非是最近才出現的新產物, 事實上, 早在一九四九年, 距離第一部商用(計算機愛好者,學習計算機基礎,電腦入門,請到本站http://.,我站同時提供計算機基礎知識教程,計算機基礎知識試題供大家學習和使用),電腦的出現仍有好幾年時, 電腦的先驅者約翰.范紐曼(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)發明了一種破壞軟體的方法.他們想用病毒,而不是蠕蟲,來使得蘋果二號電腦受感染.

些魯弟寫了一封信給杜特尼,信內說:[馬高想寫一個像[病毒]一樣的程式,可以從一部蘋果電腦傳染到另一部蘋果電腦,使其受到感染.可是我們沒法這樣做,直到我想到,這病毒要先使磁碟受到感染,而電腦只是媒介.這樣,病毒就可以從一片磁碟傳染到另一片磁碟了.]

PS: 有興趣的人可以到 140.111.1.10:/PC/garbo/educgames,有兩個corewar.zip和 corwp30.zip,就是有關磁蕊大戰 (Core War) 的軟體. 

電腦病毒的起源.

copyright © 萬盛學電腦網 all rights reserved