WindowsXP系统文件替换方法详解

2024-02-28 04:48

本文主要是介绍WindowsXP系统文件替换方法详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

替换系统文件的意义何在? 所谓的系统文件一般指的是与Windows有密切关系的,系统正常运作所离不开的文件。这些文件绝大多数位于System32目 录下 (X:/Windows/System32/) 以及系统文件备份目录DllCache下 (X:/Windows/System32/Dllcache/)(“X”是你的XP系统所在的分区)他们一般是以dll文件的 形式存在的,其次还有cpl(控制面版)等其他一些格式的文件。我们所看到的Windows外观的元素(图标、位图、对话框、文 字等)就储存在这些文件当中,例如资源管理器(Explorer)和IE的工具栏上面的前进、后退等按钮图案,就是以位图的形式 存在与shell32.dll文件中的,换句话说,只要把含有新的位图元素的shell32.dll文件替换掉原来的文件,我们 就能看见新的按钮图案。通过替换系统文件,我们就可以打造出一个个性化的Windows系统:)
      什么东西在阻挠我们替换系统文件? 如果你以为替换系统文件仅仅通过简单的覆盖原文件就可以完成的话,那你可就太天真了,微软可不愿意看到他“漂亮”的window s界面被弄成其他样子,所以从Win2000开始加入了WFP(Windows File Protection)这个东西,即系统文件保护。故名思义,就是保护系统文件不被用户随意修改或替换。它是如何实现文件保护的 呢?上文已经提到了Dllcache这个文件备份目录(或者叫文件缓存目录),Windows把它认为很重要的系统文件都事先备 份到这个目录中,一旦WFP检测到System32目录中的这些重要文件被更改或替换,它就会自动从备份中恢复被替换的文件,让 你徒劳无功。Windows的这个功能对于自我保护不被一些病毒等篡改系统文件起到很好的作用,但却让不少玩主题的人感到束手无 策,而且目前似乎还没有能让WFP彻底失效的办法。
      关于SP1。装了SP1(Service Pack 1)的xp系统的文件保护机制依然没变,所不同的是,系统文件的备份目录又多了一个。安装SP1的时候Windows把Syst em32目录里面被更新的文件又做了一个备份,放到了一个新建的目录下:X:/Windows/ServicePackFile s/i386 ,而原来的Dllcache目录中则保留未被更新的文件。这样一来,备份文件夹变成了两个:Dllcache和i386。
     上面说了这么多,目的是让大家明白替换系统文件之所以比较困难的原因,了解一下系统文件保护的机理,对理解下面介绍的替换系统文 件方法与步骤是很有好处的。好了,现在就让我们开始动手替换吧!
     不过在进行替换之前,先要做一点前期工作,就是把所有隐藏的、受保护的文件统统设成可见(Dllcache目录以及其他一些文件 在默认状态下是隐藏的),方法很简单,打开任意一个资源管理器窗口(如“我的电脑”),在菜单栏中选择“工具”->“文件 夹选项”->“查看”选项卡,把“隐藏受保护的操作系统文件”前面的勾去掉,并把“显示所有文件和文件夹”选上,点确定( 图1)。OK,现在系统里所有的文件都无所遁形了。
  1.gif  2005-11-21 15:23, 73.83 K

替换系统文件的方法。关于替换系统文件的方法有很多,在这里我根据自己的经验向大家介绍三种常用的方法,头两种方法不借助任何第 三方软件,第三种方法我会说说怎样用Replacer这个软件来替换系统文件。前期工作都准备好了吗?OK,let's go!
方法一:
这是最传统、最安全,但也是最复杂、对技术要求最高的一种方法。因为在xp下替换系统文件会受到文件保护的阻挠,但是WFP只有 在进入了xp系统后才开始起作用,于是我们可以考虑避其锋芒,到一个WFP不能起作用的环境下进行替换——纯DOS下。注意一定 要是纯DOS,而不是xp中的“命令提示符”程序。进入纯DOS需要一张启动盘(光盘软盘均可,一般的98/xp安装盘都带有此 功能),并需在BIOS设置中把CD-ROM设成第一启动项(如果用的是软盘则设Floppy为第一启动项),具体的设置方法我 就不多说了,不会的朋友可以参考一下这里关于BIOS设置的说明 点击查看成功进入DOS模式后,我们就可以进行系统文件的替换了,注意此方法要求你会一些基本的DOS命令。下面以替换shell32. dll文件为例,假设xp系统装在C盘,而你用作替换的shell32.dll文件放在 D:/New 目录下。
第一步:进入DLLcache目录(蓝色字为输入的部分)。
C:/>cd windows/system32/dllcache
第二步:把shell32.dll文件改名为shell32.bak(重命名命令可用rename或ren)。
C:/>WINDOWS/system32/dllcache>ren Shell32.dll Shell32.bak
第三步:把用作替换的新shell32.dll文件复制到Dllcache目录下。
C:/WINDOWS/system32/dllcache>copy D:/New/shell32.dll
第四步:重复上面几步的操作,把新shell32.dll文件复制到system32目录下。
C:/WINDOWS/system32/dllcache>cd..
C:/WINDOWS/system32>ren Shell32.dll Shell32.bak
C:/WINDOWS/system32>copy D:/New/shell32.dll
至此,替换工作就已经完成了,按Ctrl+Alt+Del重启电脑即可看到替换后的效果。我们把Dllcache和System 32目录下的shell32.dll文件替换的同时都作了备份(shell32.bak),这样方便我们随时把系统还原到原来的 样子。不过对于装了SP1的xp,此方法并不好,因为在进行替换前,我们必须先判断被替换的文件是处于Dllcache目录还是 i386目录中(两者必居其一)。当然你也可以手动把Dllcache和i386目录下的所有文件删掉,不过本人并不推荐这样做 。
方法二:
上面提到的方法需要用到启动盘,而且对于不熟悉DOS命令的人来说稍嫌复杂与繁琐,那么有没有一种方法可以不用进入DOS就能顺 利完成系统文件的替换呢?答案当然是肯定的。我们不妨这样设想:既然Windows是从Dllcache和i386这些特定的文 件夹里面获取文件来保护被替换的系统文件,那么如果我们通过移动或重命名让它找不到这些文件,情形又会怎样呢?结果是,Wind ows会要求我们插入WindowsXP(SP1)的安装光盘来恢复被替换的文件。当然,只要我们不按它说的去做就行了:)
第一步:把Dllcache文件夹改名为任意名字(如Backup)(如果装了SP1的话记得要把i386文件夹也重命名),然 后把他们移动到任意地方(如C盘根目录下)。
第二步:把你用作替换的文件直接放到System32目录下覆盖原文件。这时Windows会弹出系统文件被替换的警告并要求你 插入xp安装光盘(看到这个对话框就已经意味着替换成功了),选择“取消”,它又问你是否保留这些文件,选择“是”,大功告成( 图2)。赶快重启一下看看你的成果吧:)
  2.gif  2005-11-21 15:23, 37.51 K

此方法对于需要经常替换系统文件或者一次替换大量系统文件的人尤其适用。其特点在于替换过程迅速快捷,无需复杂繁琐的步骤。只要 你不要把xp安装光盘留在光驱里,同时对Windows弹出的任何警告信息不予理睬就OK了。不过这个方法有一个缺点就是,一些 正在使用的系统文件无法进行覆盖(如shell32.dll和explorer.exe),对于这些文件的替换只能用采用其他方法了。
方法三:
这种方法用的是一个外国人开发的叫Replacer的小工具来替换系统文件。文件只有十几K大小,但是在我用过几次后,发现这个 小东东真的很实用,替换系统文件的本领绝对不可小觑。它的优点在于使用简单,可以直接在xp下进行系统文件的替换,而不管它是被 保护文件还是正在使用的文件,并且无需对Dllcache目录进行改名或移动!Replacer 下载页面:点击进入,最新测试版是2.50,稳定版为2.37.

下面还是以替换shell32.dll文件为例:
第一步:把下载的文件解压后会得到一个文件夹,双击里面的Replacer.cmd文件即自动在命令行模式中打开,Replacer目录里自动生成一个临时文件夹.ReplacerTemp(图3)
  3.gif  2005-11-21 15:23, 57.73 K

第二步:根据提示,把你要替换掉的系统文件拖进刚才打开的窗口中(只能拖一个)(图4) ,回车
  4.gif  2005-11-21 15:23, 53.84 K

第三步:接着,把你用作替换的相应文件也拖进窗口中(图5)
  5.gif  2005-11-21 15:23, 57.81 K

第四步:回车,出现图6所示的信息,询问你是否要进行替换,输入Y(是),回车。
  6.gif  2005-11-21 15:23, 23.29 K

第五步:下列过程将被自动完成:备份系统文件(文件后缀为.backup,如shell32.dll文件的备份为shell32 .backup,放在与原文件相同的目录下),删除原系统文件,把新的系统文件复制到原系统文件所在目录以及包含有该文件的备份 的其他目录下。在这个过程中,会用到临时文件夹中的文件。替换成功后,它会提示你重启。同时Windows的系统保护对话框也随 后杀至,按照上面的方法应付它就行了(图7)。
  7.gif  2005-11-21 15:25, 43.95 K

重启后,立即就能看到替换后的效果(图8),怎么样,简单吧?
  8.gif  2005-11-21 15:25, 57.22 K

如果觉得这样逐个逐个的换还是不够爽的话,那么你可以通过写一个脚本文件来进行多个文件的替换,这个“脚本”实际上就是一个文本 文件,而且很好写,并不需要用到什么知识。具体例子请看图9
  9.gif  2005-11-21 15:25, 21.03 K

打开记事本。其中第一行是必需的,照着写即可。后面空的几行只是为了段落分明,不空也可以。然后就是主要内容了,每一行的格式都 是“被替换的文件 + 逗号 + 用作替换的文件”,根据你要替换的文件来写,在单个分号后面可以添加注释。写完后保存文件,名字可以任取(我取名为replac e.txt)。将要用到的替换文件放到Replacer目录下,然后把脚本文件拖到Replacer.cmd上执行(图10), 它会提示你将有多少文件被替换(replaced),有多少文件被略过(skipped)。被略过的原因可能是你没有把替换文件 放到Replacer目录下,也可能是你写的脚本有误,如文件名拼写错误。如果看到被略过的文件数目为0的话,就可以按任意键开 始进行替换了,过程跟上面的替换单个文件是一样的。你只需写好一个脚本,剩下的就可以交给Replacer完成了,这样用不了两 分钟,就能把近百个系统文件一次替换完成,怎一个爽字了得!
  10.gif  2005-11-21 15:25, 62.7 K

只要是用Replacer来替换的文件,同样的,只需要写一个脚本,就可以把它还原。格式为“要还原的文件 + 逗号 + restore”(图11),保存后把它拖到Replacer.cmd上执行即可。
  11.gif  2005-11-21 15:25, 21.14 K
 

这篇关于WindowsXP系统文件替换方法详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754440

相关文章

详解MySQL中DISTINCT去重的核心注意事项

《详解MySQL中DISTINCT去重的核心注意事项》为了实现查询不重复的数据,MySQL提供了DISTINCT关键字,它的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据... 目录DISTINCT 六大注意事项1. 作用范围:所有 SELECT 字段2. NULL 值的特殊处

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Conda虚拟环境的复制和迁移的四种方法实现

《Conda虚拟环境的复制和迁移的四种方法实现》本文主要介绍了Conda虚拟环境的复制和迁移的四种方法实现,包括requirements.txt,environment.yml,conda-pack,... 目录在本机复制Conda虚拟环境相同操作系统之间复制环境方法一:requirements.txt方法

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

MySQL 打开binlog日志的方法及注意事项

《MySQL打开binlog日志的方法及注意事项》本文给大家介绍MySQL打开binlog日志的方法及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、默认状态二、如何检查 binlog 状态三、如何开启 binlog3.1 临时开启(重启后失效)

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

CSS place-items: center解析与用法详解

《CSSplace-items:center解析与用法详解》place-items:center;是一个强大的CSS简写属性,用于同时控制网格(Grid)和弹性盒(Flexbox)... place-items: center; 是一个强大的 css 简写属性,用于同时控制 网格(Grid) 和 弹性盒(F

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求