知者无畏--一个真实的簿世界-第5章
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
斜泶锵旅嬲飧鲂卸哪芰Γ骸跋劝鸭Φ胺旁谕肜铮缓笤侔蜒畏沤ァ保?蒲Ъ乙丫永砺凵现っ鳎恢钟镅灾灰写娲ⅰ⑴卸稀⑻燃父鲎罨镜墓δ埽涂梢员泶锍鏊邢钟械牡缒陨峡赡苡械幕饔镅运芄槐泶锏氖挛锖托形�
所以使用高级语言并不会使计算机的功能下降,唯一损失的可能就是速度和效率了,但是在计算机速度越来越快、资源越来越丰富的今天,和高级语言带来的可理解性和强大的表达能力相比,这点损失是微不足道的。
* 因特网语言、脚本语言
这些语言实际上都是属于高级语言,但是鉴于他们在因特网时代的重要地位,在这里单独对他们进行描述,所谓的因特网语言,包括JAVA Script,VBScript、ASP、PHP等,这些语言基本上都是脚本语言。
他们设计出来主要是供因特网应用程序使用的,可以对网页、浏览器、服务器的页面进行操作,语法比较简单,基本上是解释执行的,不需要编译成二进制代码。功能受到限制,但是开发简单方便。
程序、代码、可执行文件
当你接触到电脑世界的时候,除了碰到计算机(也就是电脑以外),另外一个最常见的名词肯定是程序、代码或者可执行文件之类。其实这些名词指的都是同一个东西,就是可以运行的一块代码,那么什么是代码?什么是可执行的代码呢?
看到这本书的时候,中国队已经进入了世界杯,我们就来凑一下热闹,以足球运动员为例吧。假设有一个天才的足球运动员,他有很多天才的技能,比如说向前带球、向左带球、传球、射门等等,但是唯一的缺点是,这个运动员没有大脑,不知道在球场上该做什么。这个运动员很像一台无所不能但是没有装入任何程序的电脑。现在我们告诉这个运动员一些简单的规则:
1。 拿到球直接向前带球。
2。 如果发现正面有一个人拦截,就过掉他。
3。 如果发现有两个人拦截,寻找左边的接应队员,如果找到传给左边。否则寻找右边的接应队员,找到后传给右边。如果都没找到,尝试过掉两个人。
4。 如果发现有三个人拦截,把球向后传。
5。 如果和球门之间的距离小于10米,并且和球门之间少于两个防守队员则射门。
6。 如果。。。
这些规则的全部就是一个踢球者程序,告诉一个忠实的执行者—天才足球运动员(计算机)在什么情况下该做什么。程序是由代码组成的,代码就是一条一条的指令,指令就是告诉运动员(计算机)做什么,什么情况下做什么。
在电脑上,程序总是表示成文件的形式,实际上,电脑上的任何东西都表示成一个文件。一个文件,如果本身是一个程序,我们就称它为可执行文件,意思就是这个文件包括了很多指令,可以告诉电脑应该做什么。可执行文件一般是二进制的机器代码,但是随着操作系统的进步,可执行文件的范围越来越宽,很多批处理、脚本和其他解释语言的指令集合也可以看成是可执行文件,比如VBS文件等。
双击的陷阱
大家都已经非常熟悉的视窗环境,引入了(对不起,如果我没有记错的话,应该是苹果机首先引入了了程序关联的概念,视窗操作系统“借鉴”了这样一个概念,实际上鼠标、图标桌面等等名词都是来自一个非常著名的实验室,施乐的PARC实验室,最早出现在个人电脑上的图形界面、鼠标和应用程序关联,应该是苹果公司的麦金塔上的操作系统)。
随着视窗环境的流行,可执行文件的意义也扩展了,我们认为“凡是能够双击打开的都可以认为是可执行文件”,这种可执行文件的观念,扩展到很多脚本语言的程序,比如说VBS等,更加严重的是,甚至以。txt为后缀名的文件也能起到可执行文件的作用,也就是说可以做到双击之后打开之后不是简单的文本,而是功能强大的脚本语言,可以执行任何危险的操作!
感谢媒体的大力宣传,现在任何用户在收到带有附件的电子邮件的时候,在打开可执行文件之前都会三思而后行。但是病毒或者恶意代码的制造者是专家而您不是,所以他们有无数的新把戏可玩。一个最简单的办法就是让您以为那些附件只不过是没有危险的文本文件或是图像文件等。由于目前大多数人使用的是windows操作系统,windows的默认设置是隐藏已知文件扩展名的,而当你去点击那个看上去很友善的文件,那些破坏性的东西就跳出来了。您可能说这我早就知道了,那么下面讲述的。txt文件的新欺骗方法及原理您知道吗?
假如您收到的邮件附件中有一个看起来是这样的文件:QQ靓号放送。txt,您是不是认为它肯定是纯文本文件?我要告诉您,不一定!它的实际文件名可以是QQ靓号放送。txt。{3050F4D8…98B5…11CF…BB82…00AA00BDCE0B}。
{3050F4D8…98B5…11CF…BB82…00AA00BDCE0B}在注册表里是HTML文件关联的意思。但是存成文件名的时候它并不会显现出来,您看到的就是个。txt文件,这个文件实际上等同于QQ靓号放送。txt。html。那么直接打开这个文件为什么有危险呢?
您可能以为它会调用记事本来运行,可是如果您双击它,结果它却调用了HTML来运行,并且自动在后台开始格式化d盘,同时显示〃Windows is configuring the system。Plase do not interrupt this process。〃这样一个对话框来欺骗您。您看随意打开附件中的。txt的危险够大了吧?
欺骗实现原理:当您双击这个伪装起来的。txt时候,由于真正文件扩展名是。{3050F4D8…98B5…11CF…BB82…00AA00BDCE0B},也就是。html文件,于是就会以html文件的形式运行,这是它能运行起来的先决条件。
文件内容中的第2和第3行是它能够产生破坏作用的关键所在。其中第3行是破坏行动的执行者,在其中可以加载带有破坏性质的命令。那么第2行又是干什么的呢?您可能已经注意到了第2行里的〃WSCript〃,对!就是它导演了全幕,它是实际行动总指挥。
WScript全称Windows Scripting Host,它是Win98新加进的功能; 是一种批次语言/自动执行工具它所对应的程序〃WScript。exe〃是一个脚本语言解释器,位于c:WINDOWS下,正是它使得脚本可以被执行,就象执行批处理一样。在Windows Scripting Host脚本环境里,预定义了一些对象,通过它自带的几个内置对象,可以实现获取环境变量、创建快捷方式、加载程序、读写注册表等功能。
下面我们通过一个小例子来说明Windows Scripting Host功能是如何的强大,使用又是怎样的简单,被有心人利用后的威胁有多大。例如有内容如下的*。vbs文件:
Set so=CreateObject( Scripting。FileSystemObject )
so。GetFile(c:windowswinipcfg。exe)py( e:winipcfg。exe )
就是这么两行就可以拷贝文件到指定地点。第一行是创建一个文件系统对象,第二行前面是打开这个脚本文件,c:windowswinipcfg。exe指明是这个程序本身,是一个完整的路径文件名。GetFile函数获得这个文件,Copy函数将这个文件复制到e盘根目录下。这也是大多数利用VBscript编写的病毒的一个特点。从这里可以看出,禁止了FileSystemObject这个对象就可以很有效的控制这种病毒的传播。用regsvr32 scrrun。dll /u这条命令就可以禁止文件系统对象。
欺骗识别及防范方法:这种带有欺骗性质的。txt文件显示出来的并不是文本文件的图标,它显示的是未定义文件类型的标志,这是区分它与正常。txt文件的最好方法。识别的另一个办法是在〃按WEB页方式〃查看时在〃我的电脑〃左面会显示出其文件名全称,此时可以看到它不是真正的txt文件。问题是很多初学者经验不够,老手也可能因为没留意而打开它,在这里再次提醒您,注意您收到的邮件中附件的文件名,不仅要看显示出来的扩展名,还要注意其实际显示的图标是什么。对于附件中别人发来的看起来是。txt的文件,可以将它下载后用鼠标右键选择〃用记事本打开〃,这样看会很安全。
好了,现在您知道。txt文件也不能轻易打开了吧?
第二节 电脑病毒的编年史
谁打开了潘多拉的魔盒
显然,在巴贝奇的差分机上不存在任何病毒,早期基于电子管的电子计算机,比如说埃利亚特,也不可能有电脑病毒存在。但是Univac 1108,一个很古老的公司,一种很古老的机器,以及IBM360/370机器上,已经有一些可以看成是病毒的程序存在,比如“流浪的野兽”(Pervading Animal) 和 “圣诞树”(Christmas tree),因此,可以认为最早的病毒出现在七十年代初甚至六十年代末,虽然那时候没有任何人称这些程序为病毒。
一般意义上的病毒(可以运行在IBM PC机及其兼容机上)一般认为是在1986年左右出现的。从那以后的十五年时间里,出现了大概6万余种病毒,病毒的数量不断增大,和病毒制作的技术也逐步提高,从某种意义上,病毒是所有软件中最先利用操作系统底层功能,以及最先采用了复杂的加密和反跟踪技术的软件之一,病毒技术发展的历史,就是软件技术发展的历史。
下面我们将尽可能详细的描述病毒发展历史上的重要事件,以及这些事件的背景。
萌芽时期,磁芯大战
五十年代末六十年代初,在著名的美国电话电报公司(AT&T)下设的贝尔实验室里,三个年轻的程序员:道格拉斯、维索斯基和罗伯特?莫里斯,在工作之余编制了一个叫“磁芯大战” (core war)的游戏。“磁芯大战”基本的玩法就是想办法通过复制自身来摆脱对方的控制并取得最终的胜利,这可谓病毒的第一个雏形。虽然由于这种自我复制是在一个特定的受控环境下进行的,所以不能认为是真正意义上的病毒,但是这些软件的基本行为和后来的电脑病毒已经非常类似了。
六十年代晚期到七十年代早期:
这个时候是大型电脑的时代,就是那种占据了几个房间的大家伙。在大型电脑时代,由于开发人员的错误或者是出于恶作剧的目的,一些程序员制作了被称为“兔子”的程序,他们在系统中分裂出替身,占用系统资源,影响正常的工作,但是这些“兔子”很少在系统之间相互拷贝。
这个时期,在一种型号的大型电脑—Univax 1108系统上,首次出现了和现代病毒本质上是一样的东西,一个叫做“流浪的野兽”(Pervading Animal)的程序可以将自己附着到其它程序的最后!
七十年代上半叶:
“爬行者”病毒,出现在一种叫做泰尼克斯(Tenex)的操作系统上,这个病毒可以通过网络进行传播(又一个伟大的进步,当然不是现在意义上的因特网,那个时代的网络就是一对一的,通过调制解调器—就是你上网用的“猫”,将一台电脑和另外一台相连接)。一种叫做“清除者”(Reeper)的程序也被开发出来专门对付“爬行者”,这可能就是病毒和反病毒的第一次战争。
八十年代早期
电脑已经在国外变得非常普遍了,出现了最早的独立程序员,他们在为公司工作的同时,出于兴趣的原因,写了很多游戏或者其他的小程序,这些程序可以通过电子公告板(BBS)自由的流传,窃取帐号和密�