2024年3月1日发(作者:)

Windows XP如何下载补丁程序

/news/show/

每当重新安装完操作系统以后,我们首先要做的事一般都是升级系统,不过微软的升级网站通常都比较繁忙,如果我们能用多线程下载软件来下载升级补丁的话,自然就能加快系统升级速度。我们以Windows XP为例,来看看如何下载补丁程序。

方法1

如果你是局域网用户,且局域网中的某台电脑已经更新到最新状态,那么可以在这台电脑的“%systemroot%Windows” 下找到“Windows ” 文件(“%systemroot%”为系统安装的盘符,一般为“C:”),用记事本打开该文件 ,可以看到里面包含了所有更新过的程序记录,其中格式形如“//??.exe”的链接就是补丁程序的下载地址。新建一个文本文件,命名为“”,再将日志中记录的下载地址按照每行一个地址的格式复制到该文本文件中,启动FlashGet下载工具,点击“文件→导入列表”命令,选择“”即可。当任务全部下载完成后,按照日志中记录的顺序(通常是从上往下)逐个双击并安装补丁即可。

方法2

如果是单机用户,先点击“开始→Windows Update”命令,然后在打开的页面左边列表中点击“扫描以寻找更新”,再点击“复查并安装更新”查看需要更新那些补丁。接下来再点击“立即安装”按钮,当出现开始下载补丁的对话框后,选择“取消”,接下来就可以在资源管理器中找到“%systemroot%Windows”目录下的“Windows ”文件了!再按照以上所说的方法将补丁程序下载并安装即可。

其实,当系统自动更新完毕后,那些补丁程序已经下载到本地磁盘的临时文件夹中了,具体的位置在“Windows ”日志文件中也有记录,如果没有删除这些文件,就可以根据所记录的临时文件夹找到这些补丁程序。

补充一个官方的方法:使用下载篮子保存和再次安装已经下载的补丁

很多人用调制解调器上网,每次重装系统后Update都要花不少的时间和精力,于是就有人在考虑怎样把从Windows Update下载的文件保存起来以便以后新装了系统可以直接运行。不过遗憾的是,通过Windows Update下载的所有补丁程序在安装成功后都会被自动删除。好在微软已经为我们提供了一个很好的方法。

运行浏览器,并打开/ ,在左侧的Windows Update面板中点击“个性化Windows Update”,选中右侧的“在相关主题下显示到Windows Update目录的链接”,然后保存设置。

现在再看看左侧的面板,你可以看见,在相关主题列表下增加了一个“Windows Update目录”的链接,点击进入。

之后点击右侧的“查找Microsoft Windows操作系统的更新”并选择你要查找的操作系统和语种。这里包括了所有主流的微软操作系统以及各种不同的语种,选择好之后点击“搜索”,所有可下载的更新就全部找到了。这些更新不用你亲自一个一个地下载,只要分别点击,加入到下载篮子,就可以一次全部下载回来。

下载了怎么安装?作者没有说明,如果执行一次补丁都重新启动一次太麻烦,如果全部执行后再重新启动,毫无疑问要导致旧文件覆盖新文件的问题,打不到修补目的

看看官方的办法:下载回来的补丁全部是可执行文件(假设他们分别为, „„),按照常规的方法,你可能就直接一个一个地开始安装,其实这样是很麻烦的,不仅要依次运行多个安装程序,并且每个补丁安装完成后都要求重新启动。这样的安装简直就是一场恶梦。你可能会想,只要分别安装每个补丁,最后统一重启动一下就行了,不过这样是很不可取的。

安装Hotfix时,如果要替换的文件被系统占用,那么新文件将被另外存放并被记录在注册表的未决文件重命名队列(Pending File Rename queue)键值中,等下一次重新启动计算机后再执行替换操作。根据这个特点,如果一次安装多个Hotfix补丁而不在每个安装后重新启动计算机,就会存在一定的问题。以下例子就可以说明:

假设我们要安装Hotfix 1 和Hotfix 2 ,每次安装后不重新启动计算机。

两个Hotfix中都包含文件X,Hotfix 1的文件X版本为3.0,Hotfix 2的文件X版本为2.0,计算机中的文件X当前版本为1.0。

首先安装Hotfix 1,由于计算机中的文件X被占用,Hotfix 1的文件X被记录在注册表的未决文件重命名队列键值中。

然后安装Hotfix 2,结果是Hotfix 2的文件X被记录在注册表的未决文件重命名队列键值中。

最后重新启动计算机,因为Hotfix 2最后安装,它的文件X版本2最终替换替换了计算机中的文件X版本1。显然,这不是我们所期望的结果。

好在微软考虑的是很周到的,他为我们提供了一个免费的小工具:。这个工具可以在这里下载到。利用它,我们可以一次安装多个补丁程序,并且也不会在每个安装完成之后都要求重启动。

你可以直接按照常规方法先运行每个Hotfix程序,不过为了避免安装后的重启动,可以在命令行下运行“ -z”,其中“-z”这个参数可以在安装结束后避免重启动计算机。除了“-z”,你还可以试试“-q”,用这个参数可以不出现详细的安装过程,做到全

自动。在所有的Hotfix补丁都安装完成后,再次从命令行模式下执行,它将检查注册表的未决文件重命名队列键值,对Hotfix 1和Hotfix 2等的安装文件进行合适的链接、取舍等操作,最终保证被修改文件是最新版本。

如果你嫌这样的操作太麻烦,还可以试试用脚本,使得全部的安装更加自动化。脚本的使用方法是这样的,把下列文字:

@echo off

setlocal

set PATHTOFIXES=c:update

%PATHTOFIXES% -z -q

%PATHTOFIXES% -z -q

%PATHTOFIXES% -z -q

%PATHTOFIXES%

输入到记事本中(c:update为本例中保存所有Hotfix文件和的位置,你需要按照你自己的情况更改),然后保存成一个bat文件,双击后就可以自动执行,而你只需要在全部的补丁都安装完成后重启动电脑就可以了。而对于每个补丁所支持的安装参数,你可以通过运行 /?获得

用虽然很方便,不过可能会在有些情况下发生一些问题,就是, 对于Windows NT和Windows 2000 SP3以前的版本,一旦补丁程序中包含HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerKnownDLLs

这个键值所示的二进制文件时就会发生错误,因为这里的文件都是在启动时被装载到内存的,所以遇到这种情况,你就只能老老实实地运行安装程序,然后重启动了。 但是对于Windows 2000 SP3及以上版本,Windows XP还有Windows Server 2003来说,这个问题已经解决了。具体的信息你可以看这里:KB296861

再说说补丁的事

使用最普及的操作系统无疑就是微软的Windows,Windows 98、Windows 2000、Windows

XP,可以毫不夸张地说,只要有电脑的地方,就能见到Windows的身影。虽然Windows操作系统被广泛采用,不过这并不表示它的稳定性和可靠性最好。相反,早期的Windows是相当不可靠的,大家广泛采用它只是因为它的易用性和兼容性。不过现在好多了,随着Windows

2000和Windows XP的广泛应用,Windows产品的稳定性和可靠性已经不再是那么突出的问题。相反,现在人们关注最多的,则是Windows的安全性!

既然是全世界应用最广泛的软件产品,研究它的人自然不会少。进而Windows系统上被

发现的漏洞和缺陷似乎也特别的多,并且还有不少的人以制造Windows上传播的病毒和木马为乐。我们经常能够看到提醒大家Windows产品新发现某个漏洞之类的文章。所以在发现漏洞后的第一时间给我们的系统打补丁已经成为了Windows用户的一个必修课。

这里首先说说Windows操作系统的补丁,我们主要以Windows 2000/XP的补丁加以了解。一般需要安装的补丁有两种,Hotfix和Service Pack,Hotfix是针对某一具体问题而发布的专门解决这个问题的小程序(也可以叫做修复程序)。微软一般会把在自己的软件产品中发现的重大问题以安全公告(Security bulletin)的形式通知给大家,这些公告都有一个唯一的编号,即MS**-***。例如MS02-063,表示微软公司在2002年发布的第63个安全公告。这些公告所涉及的问题还有另外一个编号:Q******。MS02-063安全公告的编号就是Q329834,这个号码表明了该问题在微软知识库(Knowledge Base)中的编号,只要记住这个编号,随时都可以查找到相应的文章和解决方案。因此,每个安全公告所发布的补丁也就有了相应的编号,例如Q329834针对Windows XP系统的补丁名称就是Q329834_WXP_SP2_x86_ ,这表示这个补丁解决的问题在知识库文章Q329834中讨论过,适用于Windows XP,即将被集成到Windows XP SP2中,并且是英文版。

上面我们说到了SP2,SP的全称是Service Pack,即补丁包。由于微软频繁地发布各种Hotfix补丁,对于一般的系统管理员,要察看自己的电脑是否安装了某个Hotfix补丁就成了一件很麻烦的事情。并且,依次安装各种Hotfix补丁在操作上也非常烦琐和辛苦。微软为了解决这个问题就开始发布Service Pack补丁。这种补丁一般在操作系统正式上市一段时间后发布,包含了自发布之日全部的Hotfix补丁。只要安装了Service Pack,在这个Service Pack发布之前的所有Hotfix补丁就都不用再安装了。只有Windows NT/2000/XP才有Service Pack,Windows NT的Service Pack最新版本是SP6a,适用于Windows NT的各种版本;Windows 2000的是SP3,适用于Windows 2000 Professional/Server/Advanced

Server;Windows XP的是SP1,适用于Windows XP Professional/Home Edition。Service

Pack补丁是累加的,也就是说,你对于一个新安装的操作系统,你不必依次安装SP1,SP2,SP3,只要装了最新的Service Pack就可以了。

补丁和病毒

1 前言

几年前的时候,补丁管理仅仅是专业安全人士考虑的问题,一般的电脑使用者从来不会想到要打补丁。那时网上的系统基本上也都千疮百孔,因此一个攻击者要攻击一个系统是轻而易举的事情。随着病毒和漏洞的结合,CodeRed、Nimda、SQLSlammer、Blaster等蠕虫对全球的网络甚至经济都造成了严重的影响。之所以这些蠕虫造成这么大的危害,是因为利用了操作系统或者应用程序的漏洞,而消除漏洞的根本办法就是安装补丁。每一次大规模蠕虫

的爆发,都在提醒人们要居安思危,打好补丁,做好防范工作。人们也逐渐认识到,补丁管理越来越成为安全的一个重要环节。

很多人都可能会说打补丁是一件很容易的工作:只要从软件厂商的网站下载相应的补丁文件,然后安装说明进行安装就可以了。但是如果是在一个大中型企业内部,终端数目众多,软件应用复杂,打补丁就不是一件容易的事情了。如何有效地打补丁,打好补丁就是我这篇文章的主题。

2 补丁管理的特性

2.1 及时性

随着安全技术的不断发展,安全人员整体技术水平快速提高,从业人员人数也有极大增加。从一个漏洞发现到攻击代码实现,到蠕虫病毒产生,几年前可能是几个月甚至半年多,而现在几周甚至一天就可以完成。特别是近期,在微软发布MS04-011公告时,NGS的David在看到公告的8分钟后写出了攻击代码,Xfocus成员也在6小时内写出了通用的攻击代码。因此补丁管理也就需要有很强的及时性,如果补丁管理工作晚于攻击程序,那么企业就有可能被攻击,造成机密信息泄漏,比如去年9月份发生的Half Life2源代码泄漏事件就是由于企业内部的客户端没有及时打补丁,而导致被IE漏洞攻击,造成重大损失。

下表是曾经发生过重要影响的漏洞(vulnerability)、攻击程序(exploit)、补丁(patch)、蠕虫(worm)之间的时间顺序:

蠕虫名称 利用的漏洞 微软公告 补丁发布时间 攻击代码发现时间 蠕虫出现时间 可以弥补时间

CodeRed IIS Index Server MS01-033 2001.6.18 2001.6.21 2001.7.13

3天/25天

Nimda Unicode漏洞 ms01-020 2000.10.20 2001.03.29

2000.10.20

MIME漏洞 ms00-078 2001.9.18 0天/140天

SQLSlammer SQLServer 2000 Resolution 漏洞 MS02-039 2002.6.24

2002.6.26 2003.01.25 2天/210天

Blaster Windows RPC 漏洞 MS03-026 2003.7.16 2003.7.24 2003.8.13

8天/27天

目前还没有出现 LSASS漏洞 MS04-011 2004.04.13 2004.04.13 不会超过2004.05.5 0天/20天

表一:漏洞、攻击程序、补丁和蠕虫的时间关系

从上面我们可以看出,由于黑客技术的不断积累和发展,留给管理员的时间将会越来越

少,在最短的时间内安装补丁将会极大地保护企业地机密,同时也可以使企业免受蠕虫地侵袭。

2.2 严密性

由于补丁是厂商为了修补第3方发现的漏洞而进行的程序更改,迫于用户的压力,厂商一般会尽快发布补丁。比如这次EEYE发布了ASN.1的漏洞,微软6个月之后才发布了补丁就引起了业界的一片哗然。而为了尽早的发布补丁,补丁的测试就会减少,因此补丁的兼容性很容易出问题。特别是针对系统底层的一些补丁,很容易导致应用不能正常运行,甚至系统不能正常启动。日前,微软就承认其发布的MS04-011的补丁存在瑕疵,可引起某些Windows2000系统锁死或者不能启动。还可能出现的情况是,由于测试不够充分,补丁修补了原来的漏洞,但是引入了新的漏洞,又需要发布一个补丁的补丁。因此企业内部如果需要大规模推广补丁之前,一定要针对内部的系统和应用环境做一个严密的测试,否则有可能导致内部的重要系统无法运作,导致了业务的巨大损失。

除了补丁测试需要严密性以外,补丁的推广同样也需要严密的计划,哪些系统需要安装补丁,什么时候开始安装,安装补丁之前需要备份哪些数据,如何制订应急方案都需要一个严密的计划。

2.3 持续性

补丁管理工作不是一蹴而就的,而是一个长期的,持续性的工作。因为随着漏洞的不断被发现,补丁也就会持续不断地发布。因此要求企业的安全管理人员要时刻跟踪厂商的补丁公告和安全公司的安全公告。

确定补丁的严重等级

不同的产商对补丁的定义也都有区别,微软目前是做如下定义的:

术语 定义

安全修补程序Security patch 为特定产品广泛发布的修补程序,针对的是某一个安全漏洞。安全修补程序通常描述为有一定的严重度,实际上就是此安全修补程序针对的漏洞的 MSRC 严重程度等级。

重要更新Critical update 为特定问题广泛发布的修补程序,针对的是重要的、与安全无关的缺陷。

更新Update

为特定问题广泛发布的修补程序,针对的是不重要的、与安全无关的缺陷。

修补程序Hotfix 由一个或多个文件组成的单个程序包,用来解决产品中的问题。修补程序针对的是特定的客户环境,仅通过与 Microsoft 的支持关系才可用。如果没有

Microsoft 的书面合法许可,就不能在客户组织外部分发。在过去,术语 QFE(快速修补工

程更新)、补丁和更新都用作修补程序的同义词。

更新汇总 Update Rollup 安全修补程序、重要更新、更新和修补程序的集合,可以作为累积更新进行发布,或定位于单个产品组件,如 Microsoft Internet Information

Services (IIS) 或 Microsoft Internet Explorer。这是为了更容易地部署多个软件更新。

Service Pack 从产品发布至今,累积的一系列修补程序、安全修补程序、重要更新和更新,包括许多已经解决,但还没有通过任何其他软件更新使之可用的问题。Service Pack

也可能包含少量客户需求的设计更改或功能。Microsoft 在分发和测试 Service Pack 时比任何其他软件更新更广泛。

集成的 Service Pack Integrated service pack 产品与 Service Pack 组合在一个程序包中。

功能包 Feature pack 产品发布的新功能,可以用来添加功能。通常在下一次发布时集成到产品中。

表八:微软定义的补丁定义

除了上面列出的定义外,微软还会使用安全更新(security update)这样的术语,按照我的理解,安全更新应该定义为:为特定产品广泛发布的修补程序,针对的是多个安全漏洞。安全修补程序通常描述为有一定的严重度,实际上就是此安全修补程序针对的最危险漏洞的 MSRC 严重程度等级。由于目前微软规定每个月发布一次公告,因此以后经常会出现一个补丁修复多个漏洞的情况,也就是说经常会出现安全更新包。

而Sun公司分为Patch和Recommended,其中Patch修补单个的安全漏洞,Recommended则是多个patch的集合,而且测试比较稳定,是SUN的推荐包。

通过上面的定义我们可以看到,针对Microsoft的软件系统,从安全角度考虑,我们重点要关注安全修补程序、安全更新、更新汇总、Service Pack。其中安全修补程序是针对特定的某一个安全漏洞的补丁,因此可以参照其对应的漏洞严重等级进行补丁安装;安全更新是针对多个安全漏洞的补丁,因此可以参照其对应的最严重漏洞的严重等级进行补丁安装;更新汇总是安全修补程序、重要更新、更新和修补程序的集合,因此比较适合重新安装系统或者阶段性安装。Service Pack包含了从产品发布至今,累积的一系列修补程序、安全修补程序、重要更新和更新,因此比较适合重新安装系统或者阶段性安装,但是从我的经验上来看,由于Service Pack对系统底层文件改变比较大,经常会和一些涉及底层功能的软件冲突,导致系统兰屏或者不能正常启动,典型的比如Windows 2000的Service Pack 4和Softice、Xilinx 等软件就存在冲突。因此在涉及底层研发的部门推行Service Pack的时候就要考虑这个特殊问题。

我们总结微软公司安全更新如下:

补丁类别 安装时间

安全修补程序 参照对应漏洞的严重等级

安全更新 参照最严重漏洞的严重等级

更新汇总 系统重新安装后或者阶段性安装

Service Pack 系统重新安装后或者阶段性安装

针对Sun的软件系统,我们也总结如下:

补丁类别 安装时间

Patch 参照对应漏洞的严重等级

Recommended 系统重新安装后或者阶段性安装

根据前面的总结,我们就可以根据产商的安全公告和安全补丁信息,确定符合企业自己的补丁严重等级,制定出补丁的修补计划,包括修补时间、修补方式等。