注册表修复的一些知识
2000/XP注册表文件按功能来分,也是由系统注册表文件和用户注册表文件两类组成的。
注册表文件存放系统的所有设置信息:
系统设置和缺省用户配置数据存放在系统/系统文件夹/SYSTEM32/CONFIG文件夹下的6个文件,DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中。
而用户的配置信息存放在系统所在磁盘的/Documents and Setting/文件夹,包括ntuser.dat ntuser.ini ntuser.dat.log。
与注册表有关的术语
1、HKEY :“根键”或“主键”,它的图标与资源管理器中文件夹的图标有点儿相像。Windows98将注册表分为六个部分,并称之为 HKEY_name,它意味着某一键的句柄。
2、key(键):它包含了附加的文件夹和一个或多个值。
3、subkey(子键):在某一个键(父键)下面出现的键(子键)。
4、branch(分支):代表一个特定的子键及其所包含的一切。一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其所有内容。
5、value entry(值项):带有一个名称和一个值的有序值。每个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数据类型,数据。
6、 字符串(REG_SZ):顾名思义,一串ASCII码字符。如“Hello World”,是一串文字或词组。在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。注册表总是在引号内显示字符串。
7、二进制(REG_BINARY):如 F03D990000BC ,是没有长度限制的二进制数值,在注册表编辑器中,二进制数据以十六进制的方式显示出来。
8、双 字(REG_DWORD):从字面上理解应该是Double Word ,双字节值。由1-8个十六进制数据组成,我们可用以十六进制或十进制的方式来编辑。如 D1234567 。
9、 Default(缺省值):每一个键至少包括一个值项,称为缺省值(Default),它总是一个字串。
Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE/Microsoft/Windows/CurrentVersion/下的子键中被执行。
Run : 程序在启动时运行
RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。
阻止通过网页形式启动
不少计算机系统感染了网络病毒后,可能会在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices等注册表分支下面的键值中,出现有类似有.html或.htm这样的内容,事实上这类启动键值主要作用就是等计算机系统启动成功后,自动访问包含网络病毒的特定网站,如果我们不把这些启动键值及时删除掉的话,很容易会导致网络病毒重新发作。
为此,我们在使用杀毒程序清除了计算机系统中的病毒后,还需要及时打开系统注册表编辑窗口,并在该窗口中逐一查看上面的几个注册表分支选项,看看这些分支下面的启动键值中是否包含有.html或.htm这样的后缀,一旦发现的话我们必须选中该键值,然后依次单击“编辑”/“删除”命令,将选中的目标键值删除掉,最后按F5功能键刷新一下系统注册表就可以了。
病毒经常修改的注册表键值
1)IE起始页的修改
HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main 右半部分窗口中的Start Page 就是IE主页地址了
(2)Internet选项按钮灰化&失效
HKEY_CURRENT_USER/Software/Policies/Microsoft/Internet Explorer/Control Panel 下的DWORD值 “Setting”=dword:1 “Links”=dword:1 “SecAddSites”dword:1 全部改为0之后 再将HKEY_USERS/DEFAULT/Software/Policies/Microsoft/Internet Explorer/Control Panel 下的DWORD值“homepage”键值改为0 则无法使用“Internet选项”修改IE设置
(3)“源文件”项不可用
HKEY_CURRENT_USER/Software/Policies/Microsoft/Internet Explorer/Restrictions 的“NoViewSource”被设置为1了,改为0就可恢复正常
(4)“运行”按钮被取消&失效
HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Policies/Explorer 的“NoRun”键值被改为1了,改为0就可恢复
(5)“关机”按钮被取消&失效
HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Policies/Explorer 的“NoClose”键值被改为1了,改为0就可恢复
(6)“注销”按钮被取消&失效
HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Policies/Explorer 的“NoLogOff”键值被改为1了,改为0就可恢复
(7)磁盘驱动器被隐藏
HKEY_CURRENT_USER/Software/Microsoft/Windows/Current Version/Policies/Explorer 的“NoDrives”键值被改为1了,改为0就可恢复
1.IE默认连接首页被修改
IE浏览器上方的标题栏被改成“欢迎访问……网站”的样式,这是最常见的篡改手段,受害者众多。
受到更改的注册表项目为:
HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Internet Explorer//Main//Start Page
HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Main//Start Page
通过修改“Start Page”的键值,来达到修改浏览者IE默认连接首页的目的
办法:
①在Windows启动后,点击“开始”→“运行”菜单项,在“打开”栏中键入regedit,然后按“确定”键;
②展开注册表到
HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Internet Explorer//Main
下,在右半部分窗口中找到串值“Start Page”双击 ,将Start Page的键值改为“about:blank”即可;
③同理,展开注册表到
HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Main
在右半部分窗口中找到串值“Start Page”,然后按②中所述方法处理。
④退出注册表编辑器,重新启动计算机,一切OK了!
特殊例子:当IE的起始页变成了某些网址后,就算你通过选项设置修改好了,重启以后又会变成他们的网址啦,十分的难缠。其实他们是在你机器里加了一个自运行程序,它会在系统启动时将你的IE起始页设成他们的网站。
解决办法:运行注册表编辑器regedit.exe,然后依次展开
HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//Current Version//Run
主键,然后将其下的registry.exe子键删除,然后删除自运行程序c://Program Files//registry.exe,最后从IE选项中重新设置起始页就好了。
2.篡改IE的默认页
有些IE被改了起始页后,即使设置了“使用默认页”仍然无效,这是因为IE起始页的默认页也被篡改啦。具体说来就是以下注册表项被修改:
HKEY_LOCAL_MACHINE//Software//Microsoft//Internet Explorer//
Main//Default_Page_URL
“Default_Page_URL”这个子键的键值即起始页的默认页。
解决办法:
运行注册表编辑器,然后展开上述子键,将“Default_Page_UR”子键的键值中的那些篡改网站的网址改掉就好了,或者设置为IE的默认值。
3.修改IE浏览器缺省主页,并且锁定设置项,禁止用户更改回来。
主要是修改了注册表中IE设置的下面这些键值(DWORD值为1时为不可选):
[HKEY_CURRENT_USER//Software//Policies//Microsoft//Internet Explorer//Control Panel] "Settings"=dword:1
[HKEY_CURRENT_USER//Software//Policies//Microsoft//Internet Explorer//Control Panel] "Links"=dword:1
[HKEY_CURRENT_USER//Software//Policies//Microsoft//Internet Explorer//Control Panel] "SecAddSites"=dword:1
解决办法:
将上面这些DWORD值改为“0”即可恢复功能。
4、IE的默认首页灰色按扭不可选
这是由于注册表
HKEY_USERS//.DEFAULT//Software//Policies//Microsoft//Internet Explorer//Control Panel
下的DWORD值“homepage”的键值被修改的缘故。原来的键值为“0”,被修改为“1”(即为灰色不可选状态)。
解决办法:
将“homepage”的键值改为“0”即可。
5、IE标题栏被修改
在系统默认状态下,是由应用程序本身来提供标题栏的信息,但也允许用户自行在上述注册表项目中填加信息,而一些恶意的网站正是利用了这一点来得逞的:它们将串值Window Title下的键值改为其网站名或更多的广告信息,从而达到改变浏览者IE标题栏的目的。
具体说来受到更改的注册表项目为:
HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Internet Explorer//Main//Window Title
HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Main//Window Title
解决办法:
①在Windows启动后,点击“开始”→“运行”菜单项,在“打开”栏中键入regedit,然后按“确定”键;
②展开注册表到
HKEY_LOCAL_MACHINE//SOFTWARE//Microsoft//Internet Explorer//Main
下,在右半部分窗口中找到串值“Window Title” ,将该串值删除即可,或将Window Title的键值改为“IE浏览器”等你喜欢的名字;
③同理,展开注册表到
HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//Main
然后按②中所述方法处理。
④退出注册表编辑器,重新启动计算机,运行IE,你会发现困扰你的问题解决了!
6、IE右键菜单被修改
受到修改的注册表项目为:
HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//MenuExt
下被新建了网页的广告信息,并由此在IE右键菜单中出现!
解决办法:
打开注册标编辑器,找到
HKEY_CURRENT_USER//Software//Microsoft//Internet Explorer//MenuExt
删除相关的广告条文即可,注意不要把下载软件FlashGet和Netants也删除掉啊,这两个可是“正常”的呀,除非你不想在IE的右键菜单中见到它们。
7、IE默认搜索引擎被修改
在IE浏览器的工具栏中有一个搜索引擎的工具按钮,可以实现网络搜索,被篡改后只要点击那个搜索工具按钮就会链接到那个篡改网站。出现这种现象的原因是以下注册表被修改:
HKEY_LOCAL_MACHINE//Software//Microsoft//Internet Explorer//Search//CustomizeSearch
HKEY_LOCAL_MACHINE//Software//Microsoft//Internet Explorer//Search//SearchAssistant
解决办法:
运行注册表编辑器,依次展开上述子键,将“CustomizeSearch”和“SearchAssistant”的键值改为某个搜索引擎的网址即可。
8、系统启动时弹出对话框
受到更改的注册表项目为:
HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//Winlogon
在其下被建立了字符串“LegalNoticeCaption”和“LegalNoticeText”,其中“LegalNoticeCaption”是提示框的标题,“LegalNoticeText”是提示框的文本内容。由于它们的存在,就使得我们每次登陆到Windwos桌面前都出现一个提示窗口,显示那些网页的广告信息!你瞧,多讨厌啊!
解决办法:
打开注册表编辑器,找到
HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//Winlogon
这一个主键,然后在右边窗口中找到“LegalNoticeCaption”和“LegalNoticeText”这两个字符串,删除这两个字符串就可以解决在登陆时出现提示框的现象了。
9、浏览网页注册表被禁用
这是由于注册表
HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Policies//System
下的DWORD值“DisableRegistryTools”被修改为“1”的缘故,将其键值恢复为“0”即可恢复注册表的使用。
解决办法
用记事本程序建立以REG为后缀名的文件,将下面这些内容复制在其中就可以了:
REGEDIT4
[HKEY_CURRENT_USER//Software//Microsoft//Windows//CurrentVersion//Policies//System]
“DisableRegistryTools”=dword:00000000
10、浏览网页开始菜单被修改
这是最“狠”的一种,让浏览者有生不如死的感觉。浏览后不仅有类似上面所说的那些症状,还会有以下更悲惨的遭遇:
1)禁止“关闭系统”
2)禁止“运行”
3)禁止“注销”
4)隐藏C盘——你的C盘找不到了!
5)禁止使用注册表编辑器regedit
6)禁止使用DOS程序
7)使系统无法进入“实模式”
8)禁止运行任何程序
以上是比较常见的修改浏览者注册表的现象,今天在浏览网页时,无意中来到某个个人网站,又遇到了以前没有碰到过的问题:
11、IE中鼠标右键失效
浏览网页后在IE中鼠标右键失效,点击右键没有任何反应!
12、查看““源文件”菜单被禁用
在IE窗口中点击“查看”→“源文件”,发现“源文件”菜单已经被禁用,
我在浏览网页时并没有注意到上面这两个问题,因为当时正好朋友叫我有事,于是我就退出电脑了,晚上吃完饭开启电脑连线上网,就发现IE中鼠标右键失效,“查看”菜单中的“源文件”被禁用。不能查看源文件也就罢了,但是无法使用鼠标右键真是太不方便了。得想个办法!
找出最新版的超级兔子魔法设置试试吧,呀!不能解决!看来是个新问题,不过自己好歹也是“老革命”了,这点问题应该难不住我。于是到注册表中一番搜寻,经过一番查找终于弄明白了问题的所在。
原来,恶意网页修改了我的注册表,具体的位置为:
在注册表
HKEY_CURRENT_USER//Software//Policies//Microsoft//Internet Explorer
下建立子键“Restrictions”,然后在“Restrictions”下面建立两个DWORD值:“NoViewSource”和“NoBrowserContextMenu”,并为这两个DWORD值赋值为“1”,
在注册表
HKEY_USERS//.DEFAULT//Software//Policies//Microsoft//Internet Explorer//Restrictions
下,将两个DWORD值:“NoViewSource”和“NoBrowserContextMenu”的键值都改为了“1”。
通过上面这些键值的修改就达到了在IE中使鼠标右键失效,使“查看”菜单中的“源文件”被禁用的目的。要向你说明的是第2点中提到的注册表其实相当于第1点中提到的注册表的分支,修改第1点中所说的注册表键值,第2点中注册表键值随之改变。
解决办法:
明白了道理,问题解决起来就容易多了,具体解决办法为:将以下内容另存为后缀名为reg的注册表文件,比方说unlock.reg,双击unlock.reg导入注册表,不用重启电脑,重新运行IE就会发现IE的功能恢复正常了。
REGEDIT4
[HKEY_CURRENT_USER//Software//Policies//Microsoft//
Internet Explorer//Restrictions]
“NoViewSource”=dword:00000000
"NoBrowserContextMenu"=dword:00000000
[HKEY_USERS//.DEFAULT//Software//Policies//Microsoft//Internet Explorer//Restrictions]
“NoViewSource”=dword:00000000
“NoBrowserContextMenu”=dword:00000000
要特别注意的是,在你编制的注册表文件unlock.reg中,“REGEDIT4”一定要大写,并且它的后面一定要空一行,还有,“REGEDIT4”中的“4”和“T”之间一定不能有空格,否则将前功尽弃!许多朋友写注册表文件之所以不成功,就是因为没有注意到上面所说的内容,这回该注意点喽。请注意如果你是Win2000或WinXP用户,请将“REGEDIT4”改为Windows Registry Editor Version 5.00。
备份注册表
两个重要的分支 :
1.用户个人数据[HKEY_CURRENT_USER]
该分支中存放的是当前登录用户的个人喜好设置、所用的软件的设置等个人数据。无论来宾、受限用户、高级用户还是管理员,都可以修改属于自己个人的注册表数据。用户个人的注册表数据就是“注册表编辑器”左侧窗格[HKEY_CURRENT_USER]所包含的项、子项和值项。
2.系统的核心数据[HKEY_LOCAL_MACHINE]
只有管理员权限的用户可以访问系统注册表数据,其中存放了系统中各项重要的核心设置数据。系统的注册表数据就是“注册表编辑器”左侧窗格显示的[HKEY_LOCAL_MACHINE]所包含的项、子项和值项。
注册表打不开的解决办法:
1、使用工具软件(适用于所有WINDOWS)
如优化大师、超级兔子等,都有个注册表锁定与解锁的设置,对于已经安装了这些软件的用户,这的方法是比较方便的。
2、导入.reg文件(适用于WINDOWS 9X/2000)
对于WIN9X,将以下文本内容保存为.reg文件,双击导入注册表:
REGEDIT4
[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System]
"DisableRegistryTools"=
对于WIN2000,同样是创建一个.reg文件,与上面基本相同,仅把第一行“REGEDIT4”替换为“Windows Registry Editor Version 5.00”。
特别说明:此方法对于WINXP无效。
3、reg命令(适用于WINDOWS XP)
单击[开始]-[运行],在对话框中输入“reg delete hkcu/software/microsoft/windows/currentversion/policies/system /v disableregistrytools /f”(引号中的全部内容,不要引号),单击[确定]。
4、使用.inf文件(适用于所有WINDOWS)
创建一个文本文件,更改文件扩展名为.inf,在其中输入以下内容:
[Version]
Signature="$CHICAGO$"
[DefaultInstall]
Delreg=Del
[Del]
HKCU,SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System,DisableRegistryTools
然后右键单击该文件,再单击[安装]。
5、组策略(适用于WINDOWS 2000/XP_PRO)
单击[开始]-[运行],在对话框中输入“gpedit.msc”,单击[确定]打开组策略,定位到[用户配置]-[管理模板]-[系统],双击“禁用注册表编辑工具”一行,选择[未配置]或[禁用],单击[确定]。
6、使用其它注册表编辑工具(适用于所有WINDOWS)
禁用编辑注册表其实只能禁用WINDOWS自己的注册表编辑器Regedit,而对其它的注册表编辑工具则没有限制,比较实用的注册表编辑工具有Registry Workshop、Resplendent Registrar、Reg Organizer等。使用这些工具打开注册表,找到HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System,删除值“DisableRegistryTools”即可。
INI文件简单介绍:
概述:在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置、大小、一些用户设置的数据等等,在Dos下编程的时候,我们一般自己产生一个文件,由自己把这些数据写到文件中,然后下一此执行的时候再读出来使用。在win32编程中当然你可以这样干,但Windows已经为我们提供了两种方便的办法,那就是使用注册表或着ini文件(Profile)来保存少量的数据。
ini 文件是文本文件,中间的数据格式一般为:
[Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName1=value1
KeyName2=value2