64位WindowsXP应用详解

系统专区

Windows XP Professional x64 Edition(以下简称64位Windows XP)早已在众人的期盼中推出了,它的性能究竟如何?兼容性有多强?我们是否需要马上升级?本文将详解64位Windows XP应用,替你解开重重迷惑。

一、操作系统从32位到64位

在计算机技术的发展史上,中央处理器寻址空间(也就是我们常说的“位”)的演变是牵动整个计算机发展的要害。从1971年的4位计算到如今的64位计算时代,这中间经历了8位、16位、32位等漫长的演变过程。与此相对应,操作系统从DOS演变为Windows。其中Windows 95到Windows 98/ ME都是混合16/32位计算的操作系统。2000年,微软推出了Windows 2000,开辟了个人桌面32位计算与应用的新时代。

与以前8位向16位跃进、16位向32位跃进耗费十几年的情况不同, 64位CPU推出没几年,就出现了64位Windows XP和64位的Windows Server 2003、还有64位的Windows Vista。本文要讨论的仅限于64位Windows XP。

1.技术需求催熟64位

商业、学术、工程和科学组织不断扩展的数据和性能需求,促使人们不断突破现有信息技术平台的限制和功能。目前,全球数百万用户需要实时访问GB级甚至TB(1TB=1000GB)级的数据,因此需要有新的技术来满足这一需求。

另一方面,电脑多媒体功能的渗入和硬件价格的日趋平民化,使越来越多的人加入到计算机应用的行列,造就了一大批进行家庭多媒体创作的非专业人士,很多人不再满足于用电脑打字作表格、上网去聊天等简单应用。随着人们对电脑要求的越来越高,32位系统的捉襟见肘已越来越明显。需要就是动力,需要就有市场,在这个真理的催化下,64位CPU和64位操作系统先后双双出笼。在操作系统方面,经过充分的准备后,微软终于在2005年4月25日放出了具有重要意义的64位Windows XP和64位Windows Server 2003,还有64位的Windows Vista。

2.64位系统特性突出

(1)特大的内存支持

64位Windows XP与32位Windows XP的一个重要区别就在于前者能支持多达 128 GB 的内存和 16 TB 的虚拟内存,从而使应用程序在处理大型数据集时运行速度更快。

64 位体系结构和 32 位体系结构在内存支持上的不同如下表所示:

001.jpg

(2)很好的兼容性

64位Windows XP提供了一个多功能平台,可以利用该平台在 Windows 64 (WOW64) x86 仿真层上将新的 64 位应用程序和当前的 32 位应用程序集成在一起。WOW64 子系统将 32 位应用程序与 64 位应用程序隔离,以防止文件和注册表冲突。支持控制台应用程序和图形用户界面应用程序,还支持服务应用程序。该系统为剪切、粘贴以及 COM 之类的场景提供跨 32 位应用程序和 64 位应用程序间边界的互操作性,这样,就同时在 32 位和 64 位领域为用户提供了巨大的灵活性。但要注意的是,32 位进程无法加载 64 位动态链接库 (DLL),而 64 位进程也无法加载 32 位动态链接库。

兼容性的另一个方面还体现在熟悉的环境上。64位Windows XP可以使用与 32 位 Windows 系统相同的工具进行管理。客户将发现他们的 32 位 Windows 知识可以完全应用于 64 位 Windows 环境。安装、配置和管理在本质上是相同的。

3.美好前景令人向往

64位Windows XP的设计初衷是:满足机械设计和分析、数字内容创作及科学计算、高性能计算应用程序等领域需要大量内存和浮点性能的技术工作站用户的最苛刻业务需求。将受益于 64位Windows XP的特定业务部门包括:

(1)工程技术 (CAD/CAM)

在诸如汽车或航天设计等领域,工程师在满足严格设计安全要求的同时,比其竞争对手更快地进行概念设计的能力,对于其成功来说至关重要。使用计算机辅助设计和工程应用程序的设计人员和工程师会发现64位Windows XP的大内存支持、快速的内存吞吐能力和改进的浮点速度方面的优点。

(2)数字内容创作

二维 (2D) 和三维 (3D) 动画制作及呈现、视频编辑和游戏开发是数字内容创作(DCC) 部门中受益于 64位Windows XP附加内存、提高的内存 I/O 速度和改进的浮点性能的三个主要领域。

附加的计算能力允许游戏开发人员和动画制作人员可以节省呈现模型或场景的时间,它还允许他们使用完全呈现的三维模型,而不是更小的表示模型的线框。由于能够在开发过程中查看完全渲染的模型,因此动画制作人员和开发人员能够自由发挥其最高水平的创造性。

(3)三维游戏制作

由于内存中数据的访问速度大约是它在磁盘驱动器上访问速度的 10000 倍,因此 64 位本机游戏有可能大大加速图形呈现,产生真实图片般身临其境的感觉和急速播放,而没有令人讨厌的延迟。这些改进与 64 位体系结构的其他优点一起可以实现海量级三维游戏的人工智能和播放。

(4)视频编辑

专业及业余摄影师、网站设计者和家用 PC 爱好者越来越多地使用 PC 进行复杂的视频编辑和照片处理。通过 64位Windows XP和各种专业品质的视频编辑应用程序,业余爱好者将能够比以前任何时候都更快地修改、增强和呈现捕捉到的视频,而在创作过程中不会发生硬盘驱动器和内存间交互数据的延迟。

64位Windows XP提供了充足的备用内存空间以加载和处理非常大的视频文件,而不必将一个作品分解成多个更小的片段。随着64 位版本视频编辑应用程序的推出,家庭作品将达到专业水准。

二、全新安装64位Windows XP

格式化原来的系统盘进行全新的安装比较适合64位系统的狂热追求者,且实现起来非常简单,与安装32位Windows XP完全相同。但一定得注意以下几点,如果以下几个问题你都回答“是”,那就没有任何问题,否则,还是选择后面要介绍的多系统安装为佳。

①所有硬件配置都是最新的吗?非主流的硬件还没有64位驱动程序,特别是独立的老式显卡、声卡、摄像头、DV、DC等。

②用电脑的主要目的是玩玩吗?因为现阶段,32位软硬件平台已非常成熟,很多现行程序都只能在64位系统下兼容运行,主要工作还是以32位系统为主打。

③备份做好了吗?备份包括重要的用户文件,软件序列号、帐号、密码,硬件驱动程序等。但要注意的是,一台电脑涉及到的驱动程序很多,不可能也没必要全部备份出来,但以下两种是必须备份的:RAID/SCSI/STAT硬盘和网卡驱动程序。

正确驱动RAID/SCSI/STAT等设备是安装系统的前提,比如:现行的主板一般都提供了至少两个STAT接口,用它可构建RAID0或RAID1阵列,在其上安装系统时,刚插入安装光盘,安装向导就会提示按F6以从软盘加载与RAID0或RAID1阵列相关的驱动程序,没有它系统根本无法安装。只要能安装系统,我们就能通过网络进行其他驱动程序的查询和下载,为此,网卡驱动程序也显得非常重要。

64位Windows XP整个安装过程与32位Windows XP差不多,只是所有界面都是英文的,但界面样式、图标等没变,就算英文基础不是很好也能猜出它们的含义,不会给用户带来操作上的困难。

三、32位Windows XP与64位Windows XP共存安装

1.单硬盘菜单多系统安装

现行的64位Windows XP还只有英文版,加之对新系统的不熟悉和新系统的兼容问题,应付日常工作还是以原来的32位为主。可能很多朋友首先想到的是多系统吧,即保留原32位Windows XP,再用光盘启动安装64位系统。安装完成后会生成菜单,通过菜单可选择进入不同的系统。

可能十有八九的朋友会采用这种安装法,为与后面要重点讲解的“独立多系统”相区别,特称这种方法为“菜单多系统”。

提示:安装时,系统会提示安装到另一分区还是原系统分区的另一目录下。一定要选择前者,不然会存在严重的兼容问题!

安装完成后,会生成一个32位系统没有的文件夹:Program Files (x86),与原32位系统的Program Files 一起配合使用。不管是随系统一起安装的还是用户自行安装的程序,只要是32位的,都会默认要安装到Program Files (x86)下以保证它能在64位系统中兼容运行,而64位的都会安装到Program Files目录下。

xp1.jpg
文件使用情况

在32位Windows XP下安装64位系统时,如果将其安装到原系统分区的另一目录(原32位Windows XP的系统目录是Windows,64位系统的目录可手动输入,比如Windows64等),就得共用程序目录Program Files。而且后安装到这一目录的是64位程序,它会替换原32位系统的同名程序。当我们启动到64位系统下时,这里的程序能理所当然地正常运行,可启动到32位系统后,就不能运行了。报错提示为“64位程序不能在32位系统下运行”。

采用以上方法安装时,受影响的主要集中在随系统一起安装的程序上,如:IE、OE、“写字板”等,其中的IE和OE恰好又是我们用得很多的。

另外,64位Windows XP只能从光盘启动进行安装,不支持其他系统窗口下的安装,为此,刻录光盘是必需的。

2.单硬盘独立多系统安装

前面我们讲过了菜单式多系统,它的实现方法很简单。可这种多系统有一个致命的弱点:当第一套系统出错时,比如不能启动、Boot.ini文件出错等,后面的系统也就瘫痪了,很难维护。再者,还可能出现非常严重的兼容问题。

有没有办法让各系统独立出来呢?有!这也是我们推荐大家采用的方法。

下面以安装包含32位Windows XP和64位Windows XP的独立多系统为例进行说明。

(1)磁盘分区的规划

要求硬盘上有两个主分区,逻辑分区任意。为方便后面的叙述,设两主分区的卷标分别为“P1”、“P2”,都采用NTFS文件系统。硬盘上的主分区可以有多个,但活动分区始终只有一个,另一个默认地处于隐藏状态。从分区魔术师主界面上可以看出: “Status”字段值为“Active”分区处于活动状态;为“Hidden”的分区处于隐藏状态。逻辑分区可用FAT32文件系统。

(2)安装独立的多系统

用DOS版的分区魔术师将第一主分区(卷标是“P1”)设置为活动分区,此时,第二个主分区(卷标是“P2”)会自动处于隐藏状态,请保持这一状态,在第一个主分区上安装32位Windows XP。

等32位系统安装完成后,将第二个主分区设置为活动分区,此时的第1个主分区又会自动隐藏,在第二个主分区上安装64位Windows XP。

其实,不管你先安装哪一套系统都行,最后都不会生成启动菜单,两系统完全独立。就像是在两块硬盘上分别安装32位和64位系统一样。

(3)系统切换

以上安装出来的多系统在启动时不会生成启动菜单,怎样转换呢?这得借用分区魔术师下的几个工具,而且不会比菜单式多系统麻烦。

在任一系统下安装分区魔术师(完全版)Norton PartitionMagic 8.0,在安装目录,将以下文件拷贝到D盘一个新建的目录(为方便后面叙述,设目录名为“PQBOOT”)下: Pqboot.exe 、Pqboot32.exe、pqbw.exe、pqbw.rtc、pqpe.rtc、PQVXD.vxd。

用PQBW来转换:

运行PQBW,它能将系统中的主分区找出来且在“Status:”字段下标明分区的状态:“Active”表示该分区处于活动状态,正在工作的就是这一分区下的系统;“Hidden”表示处于隐藏状态。此时,选中卷标为“P2”的分区和“Restare Now(马上重新启动)”,再单击“OK”即可关闭当前系统并启动另一系统。

xp2.jpg
用PQBoot转换到不同的系统

一键转换:

PQBoot32运行于Windows的命令提示符窗口,它也可实现独立多系统的转换,在“Enter ID”后输入1或2即可。

不仅如此,PQboot32还可带参数运行,因此,我们还可设计出“一键转换”。在32位系统下,右击桌面空白处,选择“New(新建)→Shortcut(快捷方式)”,在弹出的对话框中输入“d:\pqboot\pqboot32 /v:P2”,然后一路单击“Next(下一步)”按钮,一个快捷方式就会摆在桌面上,双击即可切换到64位Windows XP下。当然,也可为这一快捷方式指定一个快捷键,就能实现“一键转换”了。

同理,可在64位系统的桌面上建立转换到32位系统的快捷方式,但要注意输入的命令应改为“d:\pqboot\pqboot32 /v:P1”。

3.双硬盘多系统安装

前面讲了在单硬盘上构建包括32和64位Windows XP的独立的多系统。相信大家已体会到了独立多系统的魅力。现在很多朋友在配置64位硬件平台时已纳入了STAT硬盘,但不管硬件怎样升级,原来的IDE硬盘总是可用的。为此,同时拥有这两块硬盘的朋友已为数不少,下面就在这两块硬盘上构建包括32和64位Windows XP的独立多系统。

它能拥有单硬盘多系统的所有优点,同时,独立性更加彻底,就算其中一块损坏了,另一块还可独立地工作,这是单硬盘多系统无法比拟的。

从实现方法上说,有很大的不同,主要体现在安装载体的选择上。

(1)设置STAT硬盘为IDE模式

一般地,与64位CPU配套的主板至少提供一对STAT硬盘接口,接上两块STAT硬盘后可实现磁盘阵列功能。过去,阵列一般只能用于服务器,现在个人用户也能享受这一成果了,这也是现行硬件结构发生的一个变化之一。

对单块STAT硬盘而言,我们一般将其设为IDE模式。

提示:关于怎样设置STAT硬盘,主要由主板决定,以下是在硕泰克SL-K8AV2-R1L主板上的设置方法。各位朋友在试用这一功时请务必参考自己的主板说明书!

选择IDE模式:

打开PC电源,按“DEL”键进入CMOS,在主界面上选择“Integrated peripherals(整合周边设定)”。将“OnChip STAT ”项设置为“Enabled”。将“STAT Mode”项设置为“IDE”。

选择活动的硬盘:

在CMOS主界面下选择第2项,即“Advanced BIOS Features”,再选择“Hard DISK Boot Priority”可观察到启动顺序。在这里可选择在哪一硬盘上安装系统或从那一硬盘启动。为方便叙述,我们暂时将选中的硬盘称为活动硬盘。

在“Advanced BIOS Features”下选择“First Boot Device”,可设置光盘、硬盘、U盘等的启动优先顺序。也就是说,这里选择的硬盘包括了前面提到的两种硬盘,具体从哪里启动,还得看“Hard DISK Boot Priority”下设置具体的一个硬盘。这与只有IED硬盘时的设置不同,特此说明。

(2)系统的安装与转换

通过前面的操作,我们已经能选择活动的硬盘了。其实,不管是否为当前的活动硬盘,都能用DOS版的分区魔术师对其进行分区操作,当然包括设置分区和设置活动分区,安装系统时,也能安装到当前活动硬盘之外的硬盘分区中(引导文件只能在当前活动硬盘上)。但是,要引导电脑到Windows下,只有靠当前的活动硬盘的活动分区。

有了以上的基础,独立多系统安装就易如反掌了。

①在CMOS中将任一硬盘设置为活动硬盘,在该硬盘的活动主分区上安装任一系统。

②将另一硬盘设为活动硬盘,在该硬盘的活动主分区上安装另一系统。

由于我们的任务是构建独立的多系统,所以,安装任何一套系统时都只能安装到当前活动的硬盘上,安装完成后,能从Windows下访问另一硬盘,这就为我们设置用户文件和应用程序的共享提供了可能。与单硬盘上的独立多系统相比,它有以下几点不同。

①在一块硬盘上安装系统时,不隐藏另一硬盘也不会生成启动菜单。

②在任一系统下都能访问另一硬盘,两硬盘完全透明,读写另一硬盘的数据非常方便。

③要从一个系统转换到另一系统就相对比较麻烦了,必须在CMOS下按前面提供的方法进行设置,这就是这种方法的唯一缺点。

比较以上几种安装法,有以下两点需注意的地方:

①独立多系统是首选,如果非要采用菜单式多系统,请务必将其安装到32位系统所在分区之外的其他分区。

②不管采用何种安装法,都不会出现相应的卸载方式。对独立多系统而言,直接格式化64位系统所在的分区即可将其彻底“卸载”。对安装到32位系统分区之外的菜单式多系统,也可直接格式化64系统所在的分区,但启动菜单依然存在,只是与64位系统相关的选项不起任何作用。如果还嫌它碍眼,可修改一下Boot.ini文件,鉴于此,构建菜单式多系统前最好是备份一下Boot.ini,以备还原之需要。

四、64位Windows XP应用体验

64位Windows XP如果不是英文版,也许根本感觉不到它与32位Windows XP的区别,安装了简体中文包后更是如此。不管是默认的桌面图片还是“开始”菜单,甚至其上的图标位置和样式都与32位Windows XP简体中文版惊人的相似。但仔细观察也能发现很多不同之处,只是这些变化丝毫不会影响终端用户的轻松上手。

xp3.jpg
界面与32位Windows XP惊人地相似

1.安装简体中文补丁包

网上下载到的简体中文语言包文件名为“0804.msi”,双击即可安装,安装后必须重启动电脑,而且还得进行一些简单的设置,才能使64位Windows XP更好地以简体中文的形式来工作。

单击“开始→设置→控制面板”,在控制面板窗口中左上角单击“切换到经典视图”,就能观察到“区域和语言”选项了,双击之即可进行设置。请将其下的所有选项都设置为“中国”或“简体中文”,重启电脑后生效。

提示:一定要将上述操作全部完成后再安装其他应用软件,不然有的程序可能显示为乱码!比如QQ等。

2.直观体验,轻松上手

(1)桌面风采

仔细观察“开始”菜单的左边和屏幕右下角,能明显地看到版本标识是:Windows XP Professional X64 Edition。在任一窗口比如“My Computer(我的电脑)”下单击“Help(帮助)→About Windows(关于这份Windows)”,也能看到版本号。

(2)“x86”中的秘密

打开系统分区(默认为C盘),可看到一个32位Windows XP没有的文件夹:“Program Files (x86)”。这是微软在设计64位Windows XP时,专门安排的文件夹,不管是随系统一起安装的还是用户自行安装的应用程序,只要是32位的,都将安装到这一文件夹下。与此相对应的文件夹是我们在32位系统下就已非常熟悉的“Program Files ”,只不过在64位系统下它专门用于安装64位程序。

“Program Files (x86)”和“Program Files”下分别安装了不同的程序,请注意打了“■”的地方。由此可以看出:

①大部分程序还是安装到“Program Files (x86)”下的,这些程序都是原来的32位程序。

②在两个文件夹下有的程序是重复的,比如“Internet Explorer”、“Outlook Express”、“Windows NT”下的程序(比如Windows 自带的写字板)等。

xp4.jpg
两个特殊文件夹中的程序

特别值得一提的是Internet Explorer,从64位系统的“开始”菜单下能看到两个快捷方式,一个是“Internet Explorer (32-bit)”,另一个是“Internet Explorer (64-bit)”。右击前者,选择“Properties(属性)”,可观察到它的安装位置是“C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE”。同理可查得后者的安装位置是“C:\Program Files\Internet Explorer\IEXPLORE.EXE”。

从“开始”菜单下分别单击这两个快捷方式,都能打开Internet Explorer浏览器,在打开的浏览器窗口下依次单击“Help(帮助)→About Internet Explorer(关于Internet Explorer)”,可查看到浏览器的属性。

在64位Internet Explorer下,用户安装的插件(包括从网上自动安装的插件)无法显示出来,从一定程度上讲,这大大地增强了浏览网页时的安全性,因为有些插件是恶意的,微软在设计时也充分考虑了这一点。

(3)多“*”级进程管理器

在进程管理器下能显示出当前用户正在运行的程序、后台运行的程序和服务,按“Ctrl+Alt+Del”键可打开进程管理器。可以看到,部分程序后打上了“*32”标志,表示它是32位的。64位金山毒霸2005,它的默认安装位置是C:\KAV2005,“Program Files (x86)”和“Program Files ”文件夹都不进,但从进程管理器下却能看到与其相关的程序都是32位的。如:KATMain、KAV32、KAVDX、KAVStart、KSACall、KSAMain等。

3.32位程序在64位Windows XP上性能平平

64位Windows XP的设计初衷是:满足机械设计和分析、数字内容创作以及科学计算和高性能计算应用程序等领域需要大量内存和浮点性能的技术工作站用户的最苛刻业务需求。听起来确实不错,它的性能究竟如何呢?现在来测试一下。

测试目的:比较64位Windows XP和32位Windows XP SP2的性能

条件控制:为了保证除安装的系统不同之外的其他条件完全相同。在同一硬盘上独立安装包括上述两系统的多系统,这就保证了承载两操作系统的硬件平台完全相同。

与其他的32位Windows XP相比, SP2与64位Windows XP最接近。它们都内置了DEP功能、DirectX 9.0c等。

(1)大文件拷贝测试

任务:在两套系统下将一张DVD光盘上的所有文件(约4GB)拷贝到硬盘一新建目录中,为保证测试有效,特别注意两个方面的条件控制:光盘上既有GB级的Ghost文件,也有一些小文件和诸多子目录;关闭其他所有应用程序。

结果:两套系统下的CPU占用率均为5%以下,最多不超过10%。在32位系统下历时740秒,64位系统下历时687秒,相差不到10%,没明显的差别。

(2)系统启动时间

条件控制:全新安装操作系统,不安装其他任何应用软件,不对系统进行任何优化。登录方式都为全自动,即不输入用户名、密码等。而且CMOS的设置必须完全相同,因为,启动时是否对内存、软驱进行检测、各驱动器的启动优先等会影响启动时间。

任务:测试从加电到桌面出现的时间。

结果:32位Windows XP下历时42秒,64位Windows XP下历时39秒。

(3)大文件压缩时间测试

条件控制:软硬件环境完全相同。

任务:用WinRAR将一张DVD光盘中的全部内容(4.3GB)压缩到硬盘上,保存为一个文件。

结果:32位Windows XP下历时46分,64位Windows XP下历时45分。

(4)Photoshop下大图片的处理时间测试

条件控制:软硬件环境安全相同。

任务:将一张1208×1024像素的图片宽高都放大为原来的10倍。原图片很容易获取,将桌面的分辨率调为该值再截下来就行了。

结果如下表所示:

002.jpg

由于这项测试历时较短,稍有不慎就会产生很大的误差。为保证数据的准确性,测了几次,上表中的值是平均值。为排除内存碎片对下一次测试的影响,没有采用内存整理的办法,而是用的最原始的方法——重启电脑。

从以上的测试结果看,64位系统与32位系统实在是分不清上下。当然,这与软件环境有关,以上运行的都是32位程序,门不当,户不对。如果要真的进行生死较量,得在64位系统下运行64位程序,32位下运行相同的32位程序,那才有真正的比头。

另外,以上测试也有违微软的64位Windows XP设计初衷,进行的是常规操作。

还有,64位XP能支持最多128GB内存,可是,我们普通用户用的可能就512MB,有的甚至还在128MB线上苦苦挣扎。

4.软件兼容性

为保证32位到64位的平稳过渡,微软在设计64位Windows XP时,重点考虑了32位程序在64位系统下的兼容运行问题,但与任何新软件都存在兼容问题一样,仍有部分软件不能安装、不能运行、或者存在或多或少的问题。

由于64位Windows XP已内置了DEP(Date Execution Prevention,数据执行保护)且将默认处于开启状态。为此,32位程序在64位Windows XP下的不兼容可能是由两个原因所致:其一是与64位系统不兼容,其二是与DEP不兼容。只有知道了引起不兼容的原因才能找到相应的解决办法。

如果报错的提示与“Date Execution Prevention”或“Physical Address Extension”有关,那就是与DEP不兼容。32位程序与64位系统不兼容时,报错提示非常明显,一般都类似于“32位程序不能在64位系统下运行”。

五、安全设置64位Windows XP

随着网络在日常生活中的逐渐深入,它的双刃剑作用也越来越明显。当人们感叹网络无安全、网络无隐私时,DEP和EVP现身了。

1.防患未然,软硬合作封杀

CPU制造商和微软相互配合,联手推出了针对缓冲区溢出攻击的防范措施,这就是DEP和EVP。两者联手后,就能将这类攻击阻止在尚未发生之时,这与软件防毒有着本质的区别,打个比方说,如果将软件杀毒看成对症下药,那么DEP和EVP的结合就相当于一个人有强健的躯体和免疫力——没有病自然就用不着吃药!

简单地说,EVP(Enhanced Virus Protection,增强型病毒防护)是AMD Althlon 64处理器中采用的一种全新的防毒技术。另外, Intel(r) Corporation 也已定义并推出了针对数据执行保护的 Windows-compatible(兼容)架构。

DEP(Date Execution Prevention,数据执行保护)是64位Windows XP操作系统中采用的一种数据执行保护技术,除此之外,Windows XP SP2和64位Windows Server 2003中也采用了这种技术。

当DEP工作在具有EVP功能的64位CPU硬件平台上时, DEP 将一个进程中所有内存位置均标记为非可执行——除非该位置明确包含可执行代码。攻击程序企图在非可执行的内存位置中插入代码并执行代码时,DEP将通过截取这些代码并产生一个异常来阻止它的运行。

只要在64位硬件平台安装了64位Windows XP或Windows XP SP2,DEP就默认地处于开启状态。右击 “My Computer(我的电脑)”,选择“Properties(属性)→Advanced(高级)→ Settings(设置)→ Data Execution Prevention(数据执行保护)”,就可看到它。它的默认选项是“Turn on DEP for essential programs and services(为基本Windows程序和服务启用DEP)”。

xp6.jpg
DEP功能默认处于开启状态

在缓冲区溢出攻击前,DEP能做到防患于未然,但对电脑中已存在的缓冲区溢出病毒却无法清除——它不是杀毒软件。另外,DEP也只对缓冲区溢出类攻击有效,对其他恶意程序的攻击无效。为此,我们也千万不能掉以轻心,尽管用上了64位系统,还是得安装一款杀毒软件。

2.解决DEP和EVP内部矛盾

在DEP和EVP的双面夹攻下,部分用户程序也会被阻止,比如:虚拟电脑软件Virtual PC 2004、 Vinyl Deck(一款模拟5.1音效输出的软件)等。这就是所谓的兼容问题。但一定要注意的是,在64位Windows XP下,程序的不兼容可能由于两个因素引起,其一是32位程序与64位系统不兼容,另一类是与DEP不兼容。

怎样让DEP为这些程序开开绿灯呢?

(1)在DEP界面上修改

下面以Vinyl Deck为例进行说明。在DEP主界面上选择“Turn on DEP for all programs and services except those I select(为除下列选定程序之外的所有程序和服务启用DEP)”,单击“Add(添加)”,弹出“Open(打开)”窗口,再定位到程序的安装目录,选中其可执行程序(即:ADeck.exe)并单击当前窗口上的“Open(打开)”,即可将其添加到允许运行的列表框中。这样,这一程序就能运行了。

修改DEP的工作状态(包括后面的修改Boot.ini文件)后,必须重启电脑才能生效。

提示:右击程序在桌面或开始菜单下的快捷方式图标,选择“Properties(属性)”,在弹出的窗口中切换到“Shortcut(快捷方式)”选项卡,可观察到程序的安装目录及可执行程序。

(2)修改Boot.ini文件

当DEP的选项改变时,系统分区根目录下的Boot.ini文件也将发生变化。在记事本下打开这一文件,可以看到它多出了一个参数,即“NoExecute”,它的取值可以是以下四个之一:AlwaysOn、AlwaysOff、OptIn 、OptOut。可在记事本下直接修改,再保存一下即可。

NoExecute= OptIn

当在DEP界面中选择“Turn on DEP for essential programs and services(为基本Windows程序和服务启用DEP)”时,“NoExecute= OptIn”。

NoExecute= OptOu

当在DEP界面中选择“Turn on DEP for all programs and services except those I select(为除下列选定程序之外的所有程序和服务启用DEP)”时,“NoExecute= OptOut”。

在DEP界面上修改时,只有两种状态供选择,也就是说,“NoExecute”只能为“OptOut”或“OptIn”,要使其取得另外的两个值,就只有直接修改“Boot.ini”文件了。

NoExecute= AlwaysOf

当“NoExecute= AlwaysOff”时,不会将系统的任何部分置于 DEP 保护范围以内。这相当于关闭了DEP和EVP功能。

如果已将程序添加到DEP的允许运行列表中,还被DEP阻止时,可采用这种方法,但一定要注意网络安全。在这种状态下,几乎被DEP阻止的程序都可正常运行。

NoExecute= AlwaysOn

当“NoExecute= AlwaysOn”时,将整个系统置于 DEP 保护范围以内。所有的进程将始终在应用 DEP 的情况下运行。即使将程序置于允许列表中也不例外。在这种状态下,很多程序都不能运行,甚至包括与系统嫡亲的Internet Explorer。要注意的是,在64位Windows XP下,有两个Internet Explorer 程序,它们分别是32位和64位的,被DEP阻止的是前者。

xp7.jpg
DEP阻止32位IE运行

当NoExecute= AlwaysOff或AlwaysOff时,DEP界面中的选项处于灰色状态,不能对其进行设置。

提示:被DEP阻止的程序经过以上修改后,不一定能全部运行。但修改DEP中的选项或Boot.ini文件却为我们解决问题提供了一种方法,遇上后不妨一试。