2024年5月6日发(作者:)
windows .reg 文件格式详解
*.reg 文件格式实质是一个 ini 文件。就按照 ini 来读取就可以了。
这里不再讲述 ini 的格式了。
reg头:reg文件第一行必须是 reg 头。其实就是一行版本的描述文字。
Windows 95/98/ME/NT 4.0是“REGEDIT4”。
Windows 2000/XP/Vista是“Windows Registry Editor Version 5.00"。
换行符:
rn
n(空行)
[键值路径](例如HKEY_CLASSES_ROOTabc,整个路径上得键如果没有都会帮你创建)
@=“”(@代表默认值右边用双引号代表reg_sz类型,如果右边值有“”,必须用""转译)
1、删除项值
[HKEY_CLASSES_ROOTabc]
“a”=-
2、删除键值
[-HKEY_CLASSES_ROOTabc]
注册表里面的常用的键值:
类型
字符串
注册表表示
REG_SZ
在 ini 中的表示方法
"stringname"="abcdefg…"
若包含 会存成
包含 ” 会存成 ”
二进制数组 REG_BINARY "bin1"=hex:11,22,33,44,55,66,
66,55,44,33,22,11
可出现 作为连行符。
最大2k。
32位数值 REG_DWORD “v1”=dword:1a2b3c4d
代表实际数值为:0x1a2b3c4d
“v1”=hex(4):1a,2b,3c,4d
则代表实际数值为:0x4d3c2b1a
注意字节序
64位数值
多行文本
REG_QWORD ??
REG_MULTI_SZ
“v1”=hex(b):01,02,03,04,05,06,07,08
“text1”=hex(7):31,00,31,00,00,00,
32,00,32,00,00,00,
33,00,33,00,00,00
代表共3行, unicode编码:
11
22
33
扩展文本 REG_EXPAND_SZ 也是unicode编码:
“text2”=hex(2):61,00,73,00,64,00,66,00,00,00
跟字符串有什么区别?
其实任何一个数值都可以由二进制数值来表示:
类型
0 未定义的类型
1 单行文本
2 扩展字符串
3 二进制
4 32位数值,小端
5 32位数值,大端
6 链接
7 多行文本
8 注册表资源列表
9 完整资源描述
a 资源需求描述
b 64位数值
c,d,e,f 此4种暂未定义
注册表数据类型
0 reg_none
1 reg_sz
2 reg_expand_sz
3 reg_binary
4reg_dword, reg_dword_little_endian
5 reg_dword_big_endian
6 reg_link
7 reg_multi_sz
8 reg_resource_list
9 reg_full_resource_descriptor
a reg_resource_requirements_list
b reg_qword
在 ini 中的表示方法
hex(0):
hex(1): 或加双引号对“…”
hex(2):
hex(3): 或 hex:
hex(4): 或 dword:
hex(5):
hex(6):
hex(7):
hex(8):
hex(9):
hex(a):
hex(b):
发布评论