首先有一点是必须声明的,写这篇教程的目的并不是鼓励大家都去动手替换系统文件,因为系统文件是直接影响到系统的正常运作的,处 理不当的话,轻则会造成系统不稳定,重则会导致系统崩溃。所以,除非你已经看懂了以下内容,明确你所做的每一步的意义及其可能会带来的后果,否则请不要轻易尝试。
由于本人接触这方面的时间不长,经验比较欠缺,所以在叙述的过程中难免会有纰漏与错误之处,还请大虾们及时提出指正。 [:blush:]
为了便于下面内容的理解,必须先让大家了解一些概念,知道一些事实。
替换系统文件的意义何在? 所谓的系统文件一般指的是与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
替换系统文件的方法。关于替换系统文件的方法有很多,在这里我根据自己的经验向大家介绍三种常用的方法,头两种方法不借助任何第 三方软件,第三种方法我会说说怎样用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
此方法对于需要经常替换系统文件或者一次替换大量系统文件的人尤其适用。其特点在于替换过程迅速快捷,无需复杂繁琐的步骤。只要 你不要把xp安装光盘留在光驱里,同时对Windows弹出的任何警告信息不予理睬就OK了。不过这个方法有一个缺点就是,一些 正在使用的系统文件无法进行覆盖(如shell32.dll和explorer.exe),对于这些文件的替换只能用采用其他方法了。
方法三:
这种方法用的是一个外国人开发的叫Replacer的小工具来替换系统文件。文件只有十几K大小,但是在我用过几次后,发现这个 小东东真的很实用,替换系统文件的本领绝对不可小觑。它的优点在于使用简单,可以直接在xp下进行系统文件的替换,而不管它是被 保护文件还是正在使用的文件,并且无需对Dllcache目录进行改名或移动!Replacer 下载页面:点击进入,最新测试版是2.50,稳定版为2.37.
下面还是以替换shell32.dll文件为例:
第一步:把下载的文件解压后会得到一个文件夹,双击里面的Replacer.cmd文件即自动在命令行模式中打开,Replacer目录里自动生成一个临时文件夹.ReplacerTemp(图3)
图3
第二步:根据提示,把你要替换掉的系统文件拖进刚才打开的窗口中(只能拖一个)(图4) ,回车
图4
第三步:接着,把你用作替换的相应文件也拖进窗口中(图5)
图5
第四步:回车,出现图6所示的信息,询问你是否要进行替换,输入Y(是),回车。
图6
第五步:下列过程将被自动完成:备份系统文件(文件后缀为.backup,如shell32.dll文件的备份为shell32 .backup,放在与原文件相同的目录下),删除原系统文件,把新的系统文件复制到原系统文件所在目录以及包含有该文件的备份 的其他目录下。在这个过程中,会用到临时文件夹中的文件。替换成功后,它会提示你重启。同时Windows的系统保护对话框也随 后杀至,按照上面的方法应付它就行了(图7)。
图7
重启后,立即就能看到替换后的效果(图8),怎么样,简单吧?:)
图8
如果觉得这样逐个逐个的换还是不够爽的话,那么你可以通过写一个脚本文件来进行多个文件的替换,这个“脚本”实际上就是一个文本 文件,而且很好写,并不需要用到什么知识。具体例子请看图9
图9
打开记事本。其中第一行是必需的,照着写即可。后面空的几行只是为了段落分明,不空也可以。然后就是主要内容了,每一行的格式都 是“被替换的文件 + 逗号 + 用作替换的文件”,根据你要替换的文件来写,在单个分号后面可以添加注释。写完后保存文件,名字可以任取(我取名为replac e.txt)。将要用到的替换文件放到Replacer目录下,然后把脚本文件拖到Replacer.cmd上执行(图10), 它会提示你将有多少文件被替换(replaced),有多少文件被略过(skipped)。被略过的原因可能是你没有把替换文件 放到Replacer目录下,也可能是你写的脚本有误,如文件名拼写错误。如果看到被略过的文件数目为0的话,就可以按任意键开 始进行替换了,过程跟上面的替换单个文件是一样的。你只需写好一个脚本,剩下的就可以交给Replacer完成了,这样用不了两 分钟,就能把近百个系统文件一次替换完成,怎一个爽字了得!:)
图10
只要是用Replacer来替换的文件,同样的,只需要写一个脚本,就可以把它还原。格式为“要还原的文件 + 逗号 + restore”(图11),保存后把它拖到Replacer.cmd上执行即可。
图11
花了这么多时间写这篇教程,目的是让大家都能对系统文件的替换方法和原理有所了解,因为我懂的也不多,只能把我所知道的拿出来与 大家分享了,希望大侠们看了不要见笑,大家有什么更好的方法欢迎提出来一起讨论。希望我写的这篇教程能对大家有一点帮助,谢谢大家!