病毒的起源
(本文節錄自牛頓雜誌)

   電腦病毒的老祖宗--磁蕊大戰

    電腦病毒並非是最近才出現的新產物 ,事實上 ,早在一九四九年 ,距離第一部商用電腦的出現仍有好幾年時 ,電腦的先驅者約翰.范紐曼(John Von Neumann)在他所提出的一篇論文「複雜自動裝置的理論及組織的進行」?,即已把病毒程式的藍圖勾勒出來 ,當時 ,絕大部份的電腦專家都無法想像這種會自我繁植的程式是可能的 ,可是少數幾個科學家默默的研究范紐曼的所提出的概念 ,直到十年之後 ,在美國電話電報公司(AT&T) 的貝爾(Bell)實驗室中 ,這些概念在一種很奇怪的電子遊戲中成形了 ,這種電子遊戲叫做「磁蕊大戰」 (core war)。

   磁蕊大戰是當時貝爾實驗室中三個年輕程式人員在工作之餘想出來的 ,他們是道格拉斯.麥耀萊(H.Douglas McIlroy) ,維特.維索斯基(Victor Vysottsky)以及羅伯.莫里斯(Robert T. Morris) ,當時三人年紀都只有二十多歲。

   磁蕊大戰的玩法如下:兩方各寫一套程式 ,輸入同一部電腦中 ,這兩套程式在電腦的記憶系統內互相追殺,有時它們會放下一些關卡 ,有時會停下來修理(重新寫)被對方破壞的幾行指令 ;當它被困時 ,也可以把自己複製一次 ,逃離險境 ,因為它們都在電腦的記憶磁蕊中遊走 ,因此得到了磁蕊大戰之名。

   這個遊戲的特點 ,在於雙方的程式進入電腦之後 ,玩遊戲的人只能看著螢幕上顯示的戰況 ,而不能做任何更改 ,一直到某一方的程式被另一方的程式完全「吃掉」 為止。磁蕊大戰是個籠統的名稱 ,事實上還可細分成好幾種:麥耀萊所寫的程式叫「達爾文」,這包含了「物競天擇 ,適者生存」 的意思 。 它的遊戲規則跟以上所描述的最接近,雙方以組合語言(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)發明了一種破壞軟體的方法。他們想用病毒,而不是蠕蟲,來使得蘋果二號電腦受感染。些魯弟寫了一封信給杜特尼,信內說:「馬高想寫一個像『病毒』一樣的程式,可以從一部蘋果電腦傳染到另一部蘋果電腦 ,使其受到感染。可是我們沒法這樣做,直到我想到 ,這病毒要先使磁碟受到感染 ,而電腦只是媒介。這樣,病毒就可以從一片磁碟傳染到另一片磁碟了。」

   至此,「電腦病毒」便正式成為一個專有名詞;一個令眾 多電腦玩家揮之不去的夢魘。
 
 

 
回上一頁  回首頁