`
秦巛骨
  • 浏览: 8026 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

【转】初谈制作注册表REG脚本文件(上)

阅读更多

 一、制作REG文件的相关知识

REG文件实际上是一种注册表脚本文件,通过约定的格式,可以利用REG文件直接对注册表进行任何修改操作。制作注册表REG脚本文件,不仅要了解注册表的相关知识,而且还要对注册表内容在REG文件中的表现形式有所了解。

1、注册表中的键值项、键值概述
       在注册表中,左栏是路径的主键、子键,右栏是键值项内容,我们只要单击左栏中的任一键,则在右栏中就显示这个键的键值项内容。键值项是由键值名、键值类型、键值三部分构成。键值名的这个键常称“键值键”。在注册表中双击或右击“键值键”,可对键值项进行修改编辑。
       键值名:键值名为“默认”的键值项,是在新建主键或子键时系统自动给出的。其它的键值项可自行新建,键值名可自定义。
       键值类型:键值类型有“字符串值、二进制值、DWORD值、多字符串值、可扩充字符串值”五类,常用的键值类型是前三类。
       键值:什么样的键值类型就定义了什么样的“键值”,常用的三类键值在注册表中的表现形式如下。
       ①字符串值:一般用来表示注册表中文件的描述、硬件标识等。通常由字母和数字组成,最大长度不能超过255个字符。
       ②二进制值:在注册表中二进制值是没有长度限制,可任意个字节长。在注册表编辑器中,二进制以十六进制的方式显示出来。
       ③dword值: 是一个32位(4个字节)长度的数值。在注册表编辑器中,你会发现系统会以十六进制的方式显示DWORD值。
                           在编辑dword值时,可以选择用十进制还是16进制的方式进行输入。

             

  
2、在REG文件中的键值项分析
打开注册表,在HKEY_CLASSES_ROOT\*\shell下新建一主键(有些也称子键),键名为“新键名”,这时系统在右栏上自动给出一个字符串键值项,输入键值:为空。再分别新建二进制值、dword值、多字符串值、可扩充字符串值四个键值项,键值都为空。


 

现将主键“新键名”导出,键值项的五种不同键值类型,在REG文件中的表现形式如下:
----------------------------------------------------------------------------------------------
----------------------------
字符串值           (REG_SZ)                 表现形式为:  @=""。
二进制值           (REG_BINARY)         表现形式为: "键值名1"=hex:
dword值            (REG_DWORD)         表现形式为: "键值名2"=dword:00000000
多字符串值        (REG_MULTI_SZ)      表现形式为: "键值名3"=hex(7):00,00 
可扩充字符串值 (REG_EXPAND_SZ)  表现形式为: "键值名4"=hex(2):00,00
--------------------------------------------------------------------------------------------------------------------------
以上,是键值项在REG文件中的表现形式,也就是键值项在REG文件中的写法。认真地分析一下表现形式中等号“=”的左边、右边的情形,就可以发现键值项在REG文件中的写法规律。

(1)从上例中等号“=”左边的键值名称分析。
不难看出,上例中键值项的左边可分两种:默认的、非默认的。在所有的键值项中,除了一个默认键值项外,其余都是非默认键值项。默认键的在注册表中的键值名是“默认”,在脚本文件中用@表示,@ 没有用半角双引号;而非默认的"键值名",用了半角双引号。可见,键值项左边的写法只有两种: @ 或 "键值名" 。

(2)从上例中等号“=”右边的表现形式分析。
在上例中,虽没有给每一个键值项输入键值,但仍可看出每一个键值项右边的表现形式,都由键值符、键值两个部分。由此看来,键值项在REG文件中的表现形式,也是由键值名、键值符、键值三个部分构成。其中“键值符”就是表示注册表中的“键值类型”。具体地说,REG文件中的键值符:“""、hex:、dword:、hex(7):、hex(2):”,分别表示注册表中的键值类型:“字符串值、二进制值、dword值、多字符串值、多字符串值”。因此,键值项在REG文件中的写法为:@或"键值名"=键值符 键值。

(3)从上例中等号“=”右边的键值设置分析。
在上例中,等号“=”右边的键值,因都没有输入键值,在注册表中键值表现都是为空。经反复测试,在注册表中都表现键值为空的,dword值的有效写法是:@或"键值名"=dword:00000000;其它的有效写法是:@或"键值名"=键值符。

(4)从上例中等号“=”右边的键值种类分析。
键值也可分字符串、dword数值、其它数值三种。"字符串"要用半角双引号。如字符串中包含路径分隔符,分隔符用双斜杠\\。dword数值和其它数值不需要用半角双引号。综合上述内容,键值项在REG文件中的写法:
其一,字符串数值:   @或"键值名"="字符串"
其二,dword数值:    @或"键值名"=dword: 数值
其三,其它数值:      @或"键值名"=键值符 数值
说明:①其它数值:指“hex:二进制值数值,hex(7):多字符串值数值,hex(2):多字符串值数值”。
          ②当键值dword的数值为00000000时和字符串、其它数值没有输入值时,表示键值为空。

3、键值项、键值REG文件的写法
为了便于记忆和操作,根据上面分析的结果,在脚本文件中编写键值项,还可归纳为以下两种写法。
(1)概括性的写法
    
@ 或"键值名"=键值符 键值
   说明:①@为默认的,"键值名"为非默认的。
             ②键值符 键值的写法:"字符串",dword:数值,hex:数值,hex(7):数值,hex(2):数值。
             ③当键值dword的数值为00000000时和字符串、其它数值没有输入值时,表示键值为空。
(2)具体性的写法
默认的
REG_SZ                 写法为:     @="字符串"
REG_BINARY         写法为:     @=hex:数值
REG_DWORD         写法为:     @=dword:数值
REG_MULTI_SZ      写法为:      @=hex(7):数值
REG_EXPAND_SZ   写法为:     @=hex(2):数值
非默认的
REG_SZ                 写法为:   "键值名"="字符串"
REG_BINARY         写法为:   "键值名"=hex:数值
REG_DWORD         写法为:  "键值名"=dword:数值
REG_MULTI_SZ       写法为:   "键值名"=hex(7):数值
REG_EXPAND_SZ   写法为:   "键值名"=hex(2):数值
说明:当键值dword的数值为00000000时和字符串、其它数值没有输入值时,表示键值为空

二、制作、运行REG文件的方法

       修改注册表的方法很多,最常见的有:一是手动直接修改:就是在注册表中,用手工直接修改注册表的内容。二是导入导出修改:是将要修改的内容导出后`进行修改,修改后保存再导入。三是制定脚本文件修改:即按照注册表脚本文件的格式和要求,制定REG文件再导入。本文介绍就是第三种方法。

1、建立脚本文件
①新建一个文本文档,将其扩展名.txt改为.reg;
②再用记事本打开.reg文件就可进行编辑了,编辑好后保存。
2、编辑脚本文件
(1)文件的基本格式
----------------------------------------------------------------------------------------------
注册表编辑器版本

[路径]
 @=键值符 键值
"键值名"=键值符 键值
----------------------------------------------------------------------------------------------
(2)脚本文件的范例
----------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\m3ile]
"FriendlyTypeName"="@C:\\WINDOWS\\inf\\unregmp2.exe,-9926"
"EditFlags"=hex:00,00,01,00
"PreferExecuteOnMismatch"=dword:00000001
@="M3U 文件"
----------------------------------------------------------------------------------------------
(3)编辑脚本的说明
①第一行是注册表编辑器版本,凡是XP用户必须输入“Windows Registry Editor Version 5.00”。
②第二行为空行。
③第三行是导入内容到注册中的路径、位置,如,[HKEY_CLASSES_ROOT\m3ile]。
④第四行及其以后的,均为键值项的内容,是编辑的重点、关键。
⑤在键值项的内容中,可分为默认的:如,@="M3U 文件"。剩下的为非默认的内容。
⑥在键值项为非默认的内容中有三种:
   一是字符串值:    如,"M3U 文件"、"@C:\\WINDOWS\\inf\\unregmp2.exe,-9926";
   二是二进制值:    如,hex:00,00,01,00;
   三是dword值:     如,dword:00000001。

3、运行脚本文件
双击REG脚本文件图标,不论注册表编辑器是否打开,REG脚本文件内容自动导入到注册表。

 

转至:http://xuhui-8491.blog.163.com/blog/static/8074589120101116940912/

 

  • 大小: 32 KB
  • 大小: 23.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics