📄
字号:
电脑病毒的起源
(节录自牛顿杂志)
电脑病毒的历史:磁蕊大战
电脑病毒并非是最近才出现的新产物 ,事实上 ,早在一九四九年 ,距离第一部
商用电脑的出现仍有好几年时 ,电脑的先驱者约翰.范纽曼(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) 的软体。
********* 认识电脑病毒的基本概念 ***黄明仁*****
PC所用的操作系统叫做 MSDOS 或叫 PCDOS,其必须于打开电源后,由磁碟A
或硬碟C载入到记忆装置(即所谓的RAM) 里,此过程叫开机,其程序用以下图表表示:
1 2 3
┌──┐ ┌─────────┐软碟 ┌─────────────┐
│开机├───┤BIOS开始动作 ├───┤ 载入启动程式BOOT执行.│
└──┘ │RAM开始自我测试│ ┌┤ 即磁片第0轨第1磁区程式 │
└───┬─────┘ │└───────┬─────┘
│ 硬碟 │ │
┌──┴────────┴──┐ │
│硬碟会读入分割管理表,即 │ │
│partion table │ │
└──────────────┘ 4 │
6 5 ┌─────┴────┐
┌───────────┐┌───────────┐│启动DOS主程式,即 │
│启动执行半常驻程式 ├┤ 启动外部装置,即 ├┤IO SYS │
│COMMAND COM││ CONFIG SYS││MSDOS SYS │
└───────────┘└───────────┘└──────────┘
开机完成 出现A>或C> 这是正常的开机程序
《系统性病毒》-在开机的过程布下陷阱,初期让你觉得正常仍可执行,其间作
暗传染的工作,时间一到才发作,继而吓唬嘲弄或破坏.
『系统性病毒』
如(c)Brain、DISK KILLER、STONE,AIRCOP, COPYLOCK,AZUSA,STONE1-3,
JOSHI,OHIO,MUSICBUG等皆为系统性病毒.亦称开机型病毒.
[系统性病毒]是
藉由磁碟机的开机(BOOT)来感染的,也就是说病毒将磁片
上的BOOT SECTOR 改变,在开机时先将病毒自己的
程式由磁碟中读进记忆体中,改变了磁碟的中断向
量后,再交由正常的BOOT程式执行正确的BOOT的动
作,也就是说在DOS主程式尚未载入时,病毒就已
经读进记忆体中了,所以凡有磁碟机的动作(BOOT)就产生
传染硬碟的分割磁区,而一执行到DIR、TYPE、...等
DOS 指令就会感染到磁片来的原因。
『系统性病毒』是很难让你发现到它的存在,
它不算是常驻, 因为在系统尚未LOADING 进来之前
它就已经将系统中的MEMORY SIZE 自行缩小,而所
缩小的部份就是存放病毒程式的地方,所以您很难
发现它的存在,但是若您注意的话您会发现似乎一
个很小的程式也会读得很久,因此您若发现如此情
形,不妨检查一下磁片上的 BOOT SECTOR ,虽然系
统性病毒很毒,但是它的传染方式较档案性病毒不
易暗传染。
《档案性病毒》
各位都知道,开机完成以后,在A>或C>的状况下我们只能下达
1.内在命令:一种系统天生就知道的命令,如DIR,TYPE 等
2.外在命令:存在磁碟的档案,其型态必是 .EXE 或 .COM
它可当作命令来执行,即所谓的执行档.当你执行它的时候,
它就载入到记忆体去做事.
《档案性病毒》就是将原执行档程式的程序,暂且中断,而去执行布陷阱的
工作,再回头继续原始的程序,使电脑使用者初期觉得正常
可执行,期间它就作暗传染的工作,时辰一到才发作或破坏.
如 JERUSALEN,HAPPY SUNAY,TWO TIGER,LOCKUP,1181/1184,
1701-4,RED-9,等
《档案性病毒》可分一般档案性病毒,爆炸性病毒,破坏性病毒,和特洛依式
病毒.其传染的原理如下表:
1 执行 2 6
┌───────┐ ┌────────────┐
│含有病毒的程式├───┤ 原程式+病毒 进入记忆体├───等时机发病
└───┬───┘ └─────┬──┬───┘
退回后程式│ 程式退出时,病毒赖在│ │
大小膨涨 │ 记忆体中不出来,叫作│ ┌┴───────┐
4 │ 常驻(TSR) │ │其他无毒程式进入│
└─────────────┘ │记忆体,将 被传染│
3 └────────┘
5
『档案性病毒』似乎比系统性病毒传染机会来得多,而且种类不只一种,传染的方式也不
同,在系统性病毒中我们谈过系统性病毒是感染在BOOT SECTOR 中,而档案性病毒则是附
著在档案之中,随著档案的执行而常驻在MEMORY中,而直接感染其余的档案,
我们就先来讨论一下[一般档案性病毒]
一般档案性病毒
例如黑色星期五、HAPPY SUNDAY、两只老虎、其实这些都是黑色星期五的变种
病毒,若您执行了这种病毒的档案后,病毒会藉著执行动作修改DOS 的中断向量
并常驻在MEMORY之中,并再藉著TIMER 使系统产生病发,在未病发这段时间称
为电脑病毒的潜伏期.在潜伏期间内,只要执行任一可执行档,这些执行档
就成为被传染的对象,直到病发为止。
爆炸性病毒
爆炸性病毒是当执行一个已经感染了的爆炸性病毒时,在未执行真正的程式前,
病毒就在这个时后先去感染别的程式,当然在未执行之前会先
有条件性的判断是否该病发了,若"时机未到"就执行传染的命令,之后再执
行真正的程式,因此爆炸性病毒不需要常驻也不需要修改任一中断向量,所以
预防程式要在事前拦截到。因此各位最好留意自己档案的长度。
特洛伊式病毒
这一类型的病毒与上一种的爆炸性病毒是最难防止的,因为特洛伊式病
毒有可能是一个从BBS(电子公告栏)中DOWNLOAD下传来的一个PD(公用软体),
在当时,病毒就可能正在干一些见不得人的事,可是您却万万想不到居
然是您天天用的程式(这不是不可能,虽然台湾尚未有此案例),而此一类型
的病毒通常并不带有传染性,只是含在程式之中,而这一种病毒的由来原是惩
治一些非法使用的盗版软体。
混合型病毒
混合型病毒是结合系统性及档案性两种病毒,而互为感染的病毒,是目前病毒之
王,极为利害,不容易消除.其原理如下:
1 执行 2 7
┌───────┐ ┌────────────┐
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -