Answers:
REG_MULTI_SZ
.reg
文件中的数据必须以十六进制编码。如果内容永远不变,则可以在注册表中使用数据创建一个虚拟项目,将其导出,然后根据需要进行调整。
如果确实发生更改,则使用reg
Windows附带的程序添加它可能会容易得多。为此,请reg
以以下格式调用:
Reg Add <KEY> /v <NAME> /t REG_MULTI_SZ /d <DATA> /s <SEPERATOR>
分隔开关是可选的。如果不使用,应使用空字符(\0
)的转义序列分隔要写入的字符串。例如,要添加一个名为项Flair
,以HKLM\SOFTWARE\WhizBang\Excite-O-Rama
与字符串foo
,bar
以及baz
你可以运行:
Reg Add HKLM\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo\0bar\0baz
要用逗号分隔数据,请运行:
Reg Add HKLM\SOFTWARE\WhizBang\Excite-O-Rama /v Flair /t REG_MULTI_SZ /d foo,bar,baz /s ,
有关更多信息,请参阅Microsoft Docs中的Reg
命令。
dword:
= DWORD
hex(2):
=可扩展字符串hex(7):
=多字符串阿DWORD
是一个32位无符号整数(十进制范围:0
- 4294967295
),并且,在注册表中,一个DWORD
总是与开始0x
,并具有8位数字后面0x
。可以是十进制或十六进制格式。例如,1000
可以写为0x00001000
或0x000003e8
。
DWORDS
只能使用数字0
- 9
。任何类型的字符串始终使用ASCII,并且在ACSII 1000
中只能写为31,30,30,30
。对于String数据类型,甚至在您不知道的情况下ASCII都可以在后台运行,因为计算机只能识别1和0。
对于Expandable-String和Multi-String数据类型,这些将您的条目保存为十六进制格式的一系列ASCII代码,并用逗号和十六进制零分隔。这样的扩展字符串1000
会hex(2):31,00,30,00,30,00,30,00
让我们转换%PROGRAMFILES%
成Expandable-String:
%PROGRAMFILES%
在文本框中输入用户定义的输出定界符:%
,选择转换,它将为您提供:
%25%50%52%4F%47%52%41%4D%46%49%4C%45%53%25
%
到末尾,使用全部查找/替换%
,,00,
并在字符串的最后删除逗号。您应该得到:
25,00,50,00,52,00,4F,00,47,00,52,00,41,00,4D,00,46,00,49,00,4C,00,45,00,53,00,25,00
hex(2):25,00,50,00,52,00,4F,00,47,00,52,00,41,00,4D,00,46,00,49,00,4C,00,45,00,53,00,25,00
本课程包含对未加密的十六进制编码的注册表项进行反向工程所需的全部知识。
.bat
带reg
命令的文件而不是.reg
文件),但是当问题与REG_EXPAND_SZ有关时,为什么它谈到REG_MULTI_SZ?