另辟蹊径,撬开注册表紧锁之门

时间:2022-03-02 09:44:37

另辟蹊径,撬开注册表紧锁之门

本文的诞生颇有些曲折,作者所报的选题差点在选题会上就被腰斩。大家主要有这样的疑问:注册表是Windows的关键技术,却为什么要在非Windows环境下(如:DOS、WinPE等)编辑它呢?不过小编据理力争,最后还是抢救了这个选题,下面就跟大家分享一下这个争论的过程。

干掉在Windows下清除不了的病毒注册表项

质疑1:为什么要在非Windows环境下编辑注册表?

回应:因为有些病毒(甚至一些正常的程序)生成的注册表键值,在Windows下无法轻易删除。

分析:为何一些注册表项,在Windows下不能删,而在DOS等其他系统环境下却又能删了?这主要因为Windows本身有一些系统保留的注册表项目,被系统保护起来,不允许轻易编辑的;另外,有些流氓软件具有监测功能,当发现有其他软件试图删除它时,它就会锁定注册表以阻止删除操作;而且,Windows下具有等级分明的权限,文件如此,注册表项目也如此,没有相应权限也就无法对某些注册表项进行操作。正因为这些错综复杂的原因,就出现了在Windows下有时无法删除注册表项目的怪事。但是DOS就不同了,DOS下的应用程序有着几乎与系统一样高的权限,它对其他数据的操作也就没有了多少限制(这也正是DOS不安全的原因所在)。

实战:小王的电脑中了一个很奇怪的病毒,虽然还可以进入系统,但是病毒在注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Front]下的一个键值始终无法删除(包括进入安全模式),病毒正是通过这个键值加载的,加载后又导致病毒不能被删除,这就陷入了恶性循环。那么,在DOS下解决这个顽固键值吧。

第1步 首先到paullee.ru/download/regv.zip下载Registry Viewer 4.2,下载后直接解压到可引导电脑的闪存盘上。没有可启动闪存盘的朋友,可以把Registry Viewer解压到任一分区,再通过可引导光盘启动系统,然后再搜索执行Registry Viewer即可。

第2步 启动系统到DOS后,进入Registry Viewer所在的目录。Registry Viewer的命令格式是“regview.exe 具体注册表文件”,假如你的系统默认安装在“C:\Windows”的话,可在命令提示符后输入以下命令:

regview.exe c:\windows\system32\config\system

第3步 上面命令中的system是Windows的系统注册表文件,按回车键执行,屏幕提示加载注册表,成功加载后即可通过“+”和“-”(表示前进和后退)展开注册表,定位到“Front”键下,按箭头键选中右侧病毒所生成的项目,按下Del键删除(见图1)。其他作用的键还有:按回车键可以对选择中的键值进行修改,按Tab键可定位到子项等。

第4步 完成后按ESC键退出程序,然后重启系统再启动杀毒软件全面查杀即可。

扩展1:功能强大的启动工具盘

在国外网站上流行的一个经典的启动工具盘Hiren's BootCD(较新版本为9.1,网上有ISO镜像下载),其中就包括了上面我们所介绍的Registry Viewer 4.2。除此之外,Hiren's BootCD还包含了分区、克隆、杀毒、数据拯救、系统维护等Windows和DOS下常用的系统工具。

(1)

扩展2:GhRegEdt――诺顿强力的DOS版注册表编辑工具

Registry Viewer是DOS下的图形界面程序,即使是初学者使用起来也很方便。而如果你对命令行非常熟悉的话,还推荐你试用一下诺顿DOS下的注册表编辑器――GhRegEdt。

某网友安装P2P终结者后,注册表中留下了[HKEY_USERS\S-1-5-21-1346847712-1829140141-2094013067-500\Software\YourCompanyName]项,怎么也删不掉,安全模式下也无法删除,使用IceSword中的注册表编辑工具也不行。其实,这个问题通过GhRegEdt很容易解决。启动系统到DOS环境,假设你只装了一个Windows系统,只要执行下面一行命令就可以删除这个顽固的键值了:

GhRegEdt delkey HKEY_USERS\S-1-5-21-1346847712-1829140141-2094013067-500\Software\YourCompanyName

WinPE下修复反复重启的系统故障

质疑2:在非Windows环境下,你知道要修复哪个注册表项目?

回应:有些经典故障,通过现象就基本上可以判断出问题所在。比如系统进入欢迎界面,输入正确的密码,屏幕显示“正在读取个人设置”后又自动返回欢迎画面,反反复复总是如此,从这些现象可以判断,十有八九是注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]下的“Userinit”值被病毒(或者自己误操作)破坏了,只要修复这个值就可以解决问题。

分析:WinPE与Windows有着千丝万缕的联系,但它毕竟是一个独立的系统环境,所以也少有Windows的那些限制,在它下面编辑注册表也就自由了很多。

实战:本例还从另一个侧面证明了使用非Windows环境的重要性,因为如果你无法正常启动Windows,那就更别说什么在Windows下修复注册表了。

第1步 前面说过有很多的启动工具盘,国内网站上较流行的有基于WinPE核心的“深山红叶”光盘,可从网上搜索下载它的ISO镜像,然后刻录成光盘,并用这张光盘启动系统。

第2步 启动到深山红叶后,单击“开始系统附件高级注册表编辑器”,启动Regstry Workshop(以下简称为RW),单击“文件加载配置单元”菜单命令,加载“C:\WINDOWS\system32\config\SOFTWARE”注册表文件,屏幕弹出“加载配置单元”对话框,项名称输入任意,如输入“CFAN”,加载位置采用默认值(见图2)。

第3步 按提示展开[HKEY_ LOCAL_MACHINE\cfan\Microsoft\WindowsNT\CurrentVersion\Winlogon],在右侧窗格空白处右击选择“新建值”“字符串值”,新建一个名为“Userinit”值,并将其赋值为“C:\Windows\system32\userinit.exe,”(见图3)。

(2)

(3)

第4步 返回到[HKEY_LOCAL_ MACHINE\cfan],单击“文件卸载配置单元”。重新启动计算机,就可以正常进入操作系统了。

注册表是系统神经中枢,不过由于系统本身限制,有些键值无法在Windows进行修改。在遇到这种情况的时候,大家不妨试一试上面介绍方法。

小提示

Windows XP的注册表文件主要是C:\WINDOWS\system32\config文件夹下的Sam、System、Software、Default等几个无后缀的文件,它们对应注册表中不同的主键。其中Sam对应系统的安全数据库,不过在注册表编辑器中它是不可见的。

上一篇:噢噢Vista,可以更美更快 下一篇:为何迅雷会抢快车的下载权限