轻轻松松搞定注册表
一、初识知识表
作为 Windows 的核心之一,注册表(Registry)尤如整个系统的大脑,控制着计算机的各种硬件设备和软件配置,其重要性是不言而喻的。而有关注册表的修改也一直是个十分热门的话题,许多朋友都不满足于微软强加给我们的安排,很想当个Win Hacker。因此,在各大电脑报刊上,注册表修改文章屡见不鲜。不过,对于一般的用户来说,尤其是广大的电脑初学者们,对注册表的理解还是很肤浅的,有的甚至还认为是很神秘,高深莫测。所以在这儿,我想拿出平生之所学,简单地给大家作一个注册表普及教育,也算是要消除注册表“文盲”吧。如果说本文能把你领进注册表这扇神秘的大门的话,那我这个老师也算是没有白当。(咚咚…….只见几个臭鸡蛋飞过来。什么水平!还想当老师……)
好!(从鸡蛋堆里爬出来后,整一整衣冠)废话少说,开始本文正题。
早在Dos和Win3.x的时代,大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。但ini文件有大小64k的限制,而许多程序都喜欢向win.ini文件中加入各自的配置,时间一长,系统难免不受到影响。再者,太多的ini文件也不便于集中管理。所以Windows 95从 NT中引入了注册表的概念,利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施、软件配置等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么Windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来实现的。
要了解注册表的结构,我们首先需要借助于一款能够查看修改注册表的工具,而这种工具我们也不必急着四处去找。其实,微软早已为我们准备好了,Windows目录下的名为regedit.exe的文件便是“注册表编辑器”。也许微软认为修改注册表对一般的用户来说太具风险性,所以并未在开始菜单中提供它的快捷方式,因此为了以后的修改方便,我们有必要自己动手为它在桌面上建一个快捷方式,要不,你每次要打开“注册表编辑器”(以后简称为regedit)时,都需要先打开开始菜单,然后打开运行再输入regedit,回车后才能启动regedit。这岂不很麻烦?
在具体讲解注册表结构之前,我们还要先掌握几个基本名词,这在以后的使用中是经常要提到的。
主键:(在NT下又称为项)你可以认为这是整个注册表结构中的一层,有点儿类似于资源管理器中的目录树结构。所以它的图标与文件夹的图标有点儿想像。
字符串值:顾名思义,一串ASCII码字符。
DWORD值:从字面上理解应该是Double Word ,双字节值。由1~8个十六进制数据组成,我们可用以十六进制或十进制的方式来编辑。
二进制值:这没啥多说的,0101呗!
搞清这几个概念后,我们开始下面的研究。
打开regedit后,我们会看到主窗口一分为二,左边为主键的目录树结构,右边显示键名和键值。主键的名称前会有一“+”或“-”号,表示可以折叠或展开。这种显示方式十分接近于资源管理器的风格,所以相当直观,也很容易让初学者上手。
在“我的电脑”下,我们会看到六大主键(这儿也可称为根键),这六大主键分别为:
HKEY_CLASSES_ROOT:这儿记录着各种文件的关联信息(即打开方式),还有一些类标识和OLE、DDE之类的信息(这些我也是半瓶醋,那就不多说了)。举个例子,文本文件的扩展名为txt,在用“详细资料”方式查看时,文件类型显示为“文本文件”,图标为一张纸的图案。双击一个文本文件时,系统会自动调用“记事本”来打开。这些信息都是从该键下反映出来的,同理,其它类型的文件也都是注册在这里。
HKEY_CURRENT_USER:在这下面保存着当前登录用户的各种个性化配置,如桌面、墙纸等。许多应用程序都会在这儿保存一些用户使用界面设置,如窗口的大小、工具栏的位置、最近打开过的文档等。Windows的多用户设置就是在这里实现的。
HLEY_LOCAL_MACHINE:这里是整个注册表的核心部分,各种硬件软件的配置都存放在了这里,其下还可以具体分为:
Config 配置,Driver 驱动程序,Enum 即插即用,Hardware 硬件,Network 网络,Security 安全,Software 软件,System 系统这八个部分,每部分还可再分为更细的内容。
HLEY_USERS: 显示当前登录用户和默认用户的配置。
HKEY_CURREN_CONFIG: 为当前硬件配置信息。这是因为Windows可以不同的配件配置情况启动。因此使用不用配置时这里的内容也会不同,不过,对于大多数用户来说,这儿的作用不大,很少有人的电脑有两种以上的配置。
HKEY_DYN_DATA:这里的内容是由系统启动时随机生成的,主要包括那些Windows用来操作各种硬件的动态信息,每次启动时的内容都会不同。一般来说,这儿我们也很少动。
以上只是简单介绍了一下六大主键,其实下面还有更多更细的分枝,限于篇幅,我不可能每点都介绍到(要真是如此,恐怕要写成一本书了)。需注意一点的是,虽然我们看到的是六大主键,但实际上有几项是重复的,如HKEY_CLASSES_ROOT和 HKEY_LOCAL_MACHINE\Software\CLASSES下的内容完全相同,这里注册表提供了双重入口,虽然看起来地址不太一样,但实际都指向同一位置。这也许是为了修改方便吧。所以真正常用到修改的地方只是HKEY_CLASSES_ROOT、 HKEY_CURRENT_USER和 HKEY_LOACAL_MACHINE 这三处。
二、小试牛刀
这一次我们将通过几个修改实例来学习注册表的一些小技巧。
在修改之前,我们先要学会注册表的备份。这点很重要,尤其是在我们不小心改错的时候,利用备份可以尽可能地还原到修改前的状况。
说了这么长时间的注册表,注册表到底放在哪儿呢?其实注册表可分为两个文件,分别为 system.dat 和user.dat。注册表中的大部分内容是以二进制的形式放在了system.dat文件里,该文件在Windows目录下;而 HKEY_CURRENT_USER下的信息保存在user.dat文件里,该文件一般在Windows\profiles\用户名\下,所以谈到注册表的备份实际上就是对这两个文件的备份。
具体的备份方法可分为自动和手工两种,而自动的方法又有两种。一种是在系统成功地启动后,Windows会自动把这两个文件分别改名为system.dao,user.dao。所以当Windows因为造访注册表出错而无法正常启动时,我们可以退到安全模式下,删去system.dat和user.dat文件,然后把system.da0改名system.dat、user.da0为改为user.dat,重启之后便可修复好注册表的错误了;另一种方法就是Windows98引入了的注册表扫描工具ScanReg,在启动时,它会自动对注册表进行扫描,并对系统文件及时备份(当然包括这两下文件)。在Windows\sysbacup 目录下你会发现诸如rb000.cab和rb001.cab之类的压缩文件,这几个就是最近的五个系统备份,当系统出错后,我们可以用WinZip或 WinRAR从中提出这两个文件,按照前面的方法,还原注册表。手工的方法应该说是实用的了,利用注册表编辑器的导入导出功能,我们可以对注册表的全部或是某一主键下的内容进行备份(以扩展名为reg的文件保存,实质上是个带特定格式的文本文件)。这也样,在修改某一键值或删除某一主健时,我们可以先将此处内容导出到一个安全的地方,然后再进行修改。万一改错了,也不必害怕,再把这个文件导回来就可以恢复了。这种方法虽然对修改多处时有点儿麻烦,但绝对安全可靠。
学会了注册表的备份与恢复后,我们就开始动手改注册表吧。动手之前你可别忘了备份噢!
例一,给“回收站”改名。
桌面上的大部分图标都可以直接重命名,而“回收站”就是不行,所以我只有动用“注册表”了。打开Regedit, 展开HKEY_CLASSES_ROOT,再展开CLSID,找到名为{645FF040-5081-101B-9F08-00AA002F954E}的主键,其右窗口中的默认值便是回收站的名称。双击其图标,在弹出的编辑框里将其改名为“垃圾筒”。切换回桌面,按F5刷新一下。看看它的名字是不是变成了 “垃圾筒”了?大功告成!其实我们也不必这么麻烦非要记住那长长的一串字符,一点一点去找。利用 regedi t查找功能就可以帮我们快速定位了。按下F3,在查找目标一栏里填上“回收站”,回车。Regedit 便会自动帮你找到并定位到这个位置了。
例二,美化你的“开始”。
1.加快菜单的弹出速度。
在开始菜单中,下级菜单的弹出总是有点儿延迟,鼠标放上去后总是要等那一会儿才肯找开下一级的菜单。不过我们可以修改注册表来加快这个弹出的速度。打开 Regedit,定位到HKEY_CURRENT_USER\Control Panel\desktop下,在右边新建一个名为MenuShowDelay 的DWORD值,将其值设为1(1为弹出速度最快)。重启之后,你便会发现开始菜单的弹出速度比以前快多了。
2.去除“收藏夹”
在Windows98 下的开始菜单中会有一个“收藏夹”的菜单,不过对于许多未上网的朋友来说,很少用到,放在这儿又占地方,所以我们可以动手删掉它, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 下,新建一名为NoFavoritesMenu的二进制值,并设为1。重启之后,收藏便从此在开始菜单中消失啦!当然如果你又想找回“收藏夹”的话,把值改为0就行了。同理我们还可以去掉开始菜单中的“文档”(NoRecentDocs),“查找” (nofind),“注销”(NoLogOff)和“关闭”(NoShutDown)等。
例三,给IE标题改名
你见过别人的IE标题栏上的“ XX专用浏览器”吗?其实这不难,你也能做到。在HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main下,找到一个名为 Window Title 的字符串,这儿就是IE标题所显示的字样,将其改名为“ XX专用浏览器”。重启 IE之后,你便能看到自己的大作了。
同理OutLook Express 的标题也可以修改,地址是在HKEY_CURRENT_USERIdentities\{4C44D002-7BCF-11D3-9957-AB53DA238B0C}\Software\Microsoft\Outlook Express\5.0下的一个名为windowtitle的字符串值(注:{}中的字符不一定完全相同)。
做了这几个小实验后,你是不是已体验到了修改注册表的一种成就感呢?改注册表其实就这么简单,关键的还是需要事先知道这些秘密,要不你随便改了半天,也不见得会有什么效果。
三、傻瓜工具
俗话说,“工欲善其事,必先利其器”。要修改注册表,准备一些好的工具还是很必要的。所以,我将分两次给大家介绍一些有关注册表的工具。本文嘛先给大家送上几个“傻瓜”。
说是“傻瓜”,但你我都不傻。这类工具的最大特点就是无须你要知道多少有关注册表的知识(当然知道一点那更好),所以说“傻瓜”也可以完成有关注册表的许多繁杂的修改,要做的也只是打打勾、填填字而已。
第一位出场的乃是当今红遍国内江山的一只小兔子——“超级兔仔魔法设置器”。这款由国人蔡旋朋友编写的系统修改工具。凭借了极其友好的界面,方便直观的修改,丰富的修改内容曾在国内各大软件下载排行榜上居高不下,而且赢得了近500人的注册(注册费用为10元)(好大的一笔收入啊,惹得我等小辈眼红)。的确,这个小东东确实很好使,我们只用填几个字,打几个勾就可以完成有关注册表中高深的修改,让我们体验了一下Win Hacker的感觉吧。
同类产品还有“侠客系统修改”,“豪侠99”及国外的WinHacker 95等。由于功能相近,使用也很简单,这儿就不多废口舌了。
第二位露面的也是近期排行榜上排名前几位的一只“小猫咪”—“快猫加鞭”。对于大多数拨号上网的朋友来说,如何让自己的小猫跑快一点儿,一直是很关心,也很着急的。虽然我们可以通过修改注册表中的MTU值来优化转输速率,但对于大多数人来说还是有点儿高深复杂。所以左轻候朋友的“快猫加鞭”的推出,吸收了一大批“傻瓜”。一个按纽便将整个优化全部搞定(唉呀!我都要变“傻”了)。
同类的工具还有MTUSpeed、NetSonic等,它们都提供了对注册表中的某一方面的优化。
第三位见面的其实应该说是注册表工具的老前辈了,经典工具了—Regclean。由注册表“娘家”微软推出的东东我们还有什么可怀疑的,一个按钮便可完成对注册表的清理工作,你想干点活儿它都不让。不过它的BUG似乎也不少,而且也已经好久没升级了。
怎么样,用过了以上几个傻瓜工具后你是不是也变“傻”了一点儿?“兄弟”提醒你一句,这类工具你还是少用一点,要不时间一长,你什么都不想,那不真的要变傻了吗?(当头一棒)所以下次我将给你介绍几款高级工具,从而更加体现出你老鸟级的水平。
四、老鸟必备
上回介绍的几款傻瓜工具不知大家用后感觉如何?如果你是一只老鸟的话,那它们肯定满足不了你的需求,如果你还是想做一些更深一层次的研究,那请跟我来吧(回头一看,怎么没人跟上来???……)
第一位兄弟乃是名气响当当的RegMon—注册表监视器(什么?你没听过?我倒……)。想玩好注册表,这个工具你可一定要玩通了。利用其强大的监视功能,我们可以对一些程序进行跟踪,看看程序都在注册表里干了些什么(怎么像是在解密?)。无论是读操作,还是写改操作都逃不过它那双慧眼,统统记录在案,想逃都逃不掉。也许你会问“监视这些到底有啥用呀?”“喂,兄弟!你可别搞错了,怎可能没用呢?”要知道,注册表中可藏有好多秘密啊!注册表中有许多内容就像有些WINAPI函数一样,是未公开过的。既然微软不肯告诉我们,那我们只有自己动手去找了呗。而且……(小声地说)而且我们还可以借此机会当一回儿 Cracker了(详情请听下回分解)!
由于其使用起来有点复杂,限于篇幅,这儿就只作一些简单的功能上的介绍,具体的使用大家可参阅我的网站。同类的工具还有RegSnap—注册表快照,它可比较出软件安装前后注册表中的变化,也挺实用的。
第二位而是在注册表工具市场中突然冒出的一颗灿烂的新星—Resplendent Registrar。Resplendent Regsitrar以其强大的功能,可以说是有史以来最好的一款注册表工具,当然体积也有点儿大(1.3MB)。首先得感谢Resplendent Sp公司为我们带来了这么好的佳品。它最大的一个特点就是其风格上十分接近于资源管理器。在regedit中,右窗口只能显示键名和键值,而 Resplendent Retgistrar(以下简称为RR)可以在右窗口同时显示该级下的主键,这样使用起来就像是资源管理器了。主界面上还有工具栏,地址栏和描述栏。在地址栏中你甚至可以像输入网址一样地输入注册表中的地址。回车后,RR 会自动帮你定位到这。描述栏里也对一些常用的地址给了一个简要的描述,更加方便了初学者,只可惜是英文的。除此之外还有功能极强的书签,历史记录和查找功能。利用书签,我们可以尽情地在注册表的数据库海洋里尽情遨游了;而历史记录的功能更是方便了用户,无论你是老鸟还是菜鸟,改错注册表是在所难免的,而在 regedit中连个最基本的撤消功能都没有(哪怕只能恢复一步也行啊!)。在RR中就不存在这问题,你甚至可以恢复24小时之内的每一次操作,而且只要你愿意,设为10000天都可以(不过估计你的Windows连100天都撑不了)。我的天啊!这下我们可放心大胆地改注册表了,当然这一切前提是在你是使用RR改注册表的。
怎么样?光这几个功能就足以让你心动,更何况它在其它各个细节的精心设计。内置了一个专门编辑注册表文件的编辑器(它可比记事本来编辑强多了),安装后会自动加入到开始菜单中的查找中去等等,所以我敢说它是目前最好的注册表工具,regedit,你就让它到一边稍息去吧。
同类的工具还有Regview,也是一个挺有创意的编辑工具,我们可以以“大图标”,“小图标”,“列表”和“详细资料”四种不同的方向来查看注册表,是不是也很像资源管理器。要是RR能把这功能也加进来那就更好了。同时RegView还有一个相当不错的功能,具体是什么,你自己试试看就知道了,你绝不会失望的。
如果你还舍不得放弃regedit,那就请个Registry Studio吧。喝咖啡时我们常常会加点儿咖啡伴侣,所以用regedit时,你一定要试试Registry Studio(以下简称RS)。启动 RS 时,它会先调出regedit,然后把自己内嵌进去,这样原先的regedit的界面上就有了很大的改观。菜单栏下多了一条工具栏,很是方便。而最有特色的一项功能便是右窗口上下一分为二,在增加出来的下窗口里显示一些“书签”。利用这书签,你就可以快速地在注册表里定位了,双击其中一只,它便会自动帮你展开到这位置,而且展开的速度还特别快。
同类的工具还有RegEditX,它可以为regedit增加一个地址栏,也是挺有创意的。不过它和RS不能同时使用,否则会出现一些不正常现象。
上面所介绍的只是注册表工具类的一部分,其它种类的还很多,我不能一一概尽,所以只挑选了其中几款我认为是不错的拿出来重点向大家介绍。想知道更多更详细的内容,欢迎大家访问我的站点。同时我也提供了上述工具的本地下载,大家不必四处去找了。
下一回我们将谈一谈(声音变小)如何当一回Cracker。
五、当一回Cracker
现在大部分的共享软件都会有个使用时间的限制,一般为30天试用期,试用期满之后,它便拒绝为你服务了。为此,不少朋友想尽了各种办法来对付这时间问题。比如常用的一种方法就是调整系统的日期。不过我认为这种修改时间的方法并不太好,最多也只是个下策。如果今天为了使用这个软件,把时间调一下,明天又是为了那个软件再把时间调一下,几次下来,岂不太混乱了?(噢!这儿犯了错误,对这台机子来说已经没有今天,明天的概念,鬼才知道它具体是哪一天呢!)所以我推荐你另一种方法,不需要改系统时间,所做的只是改几个字节就可以延长软件的使用时间了。
首先,我先介绍一下工作原理。
一般来说,许多软件在第一次运行时,会自动地将当前的时间记录在注册表中。以后的每一次运行,都会先从注册表中读出这个时间,然后再和当前的时间作比较,一旦发现超过试用期限,那就……嘿嘿……Game Over。所以我们修改的方法有两种,一种就是前面所述的改系统时间,另一种则是改注册表中的这个时间。两种方法孰好孰坏,想必不用我多说,大家心知肚明。
下面我就以最新版的Paint Shop Pro 6.0 (Evalution版而不是Beta之类的版本)为例,介绍一下具体修改过程。
修改之前你先要作好以下几个准备工作,第一,准备好RegMon(上次介绍的注册表监视器);第二,安装好Paint Shop Pro ;第三,(可选)挑几个好一点儿的注册表编辑工具。准备好这些后,那我们开始出发。打开RegMon,在过滤设置中填上psp(Paint Shop Pro 的执行文件名),表示只对PSP文件进行监视。设好过滤之后,开始监视。打开PSP,在出现启动画面和显示已使用时间的时候停止监视。想想在这一段时间里,PSP会从注册表中读取哪些信息呢?然后仔细分析一下监视到的结果(重点在后一部分,想一想这是为什么?)。由于软件把这个时间是以加密的形式存放在注册表中,所以RegMon监视到的数据中有一串很奇怪的字符便是这时间了。虽然我们并不知道它具体的加密算法,但最简单的一个删除不就解决问题了吗?双击监视到的这个数据,直接让步RegMon打开RegEdit,定位到HKEY_CLASSES_ROOT\CLSID\{ADBB2D80-5DFD- 11D2-A00C-00104B65AAF5}\MS,将右窗口中的iPID60u值删掉。重启PSP,这时你便会发现它又从第一天开始计时了。修改起来就是这么简单。
怎么样,你是不是找到了一种Cracker的感觉?不过在这里提醒你一句,对于修改软件的使用时间你最好只是个人研究,切记不可用作商业用途。毕竟这是违反软件的版权保护的,我们不花钱一直免费试用,心中也不安心啊!