这是命令 hivexregedit,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
hivexregedit - 从 regedit 格式文件合并和导出注册表更改。
概要
hivexregedit --merge [--prefix 前缀] [--encoding enc] \
hivefile [注册文件]
hivexregedit --export [--prefix prefix] hivefile key > regfile
商品描述
请注意 hivexregedit 是一个用于直接操作 hive 文件的低级工具。 到
将注册表更改合并或导出到 Windows 虚拟机最好使用
虚拟双赢注册(1)。
给定一个本地二进制(“hive”)文件,有两种模式。 “--merge”导入(合并)
从 regedit 格式文件更改为 hive。 它类似于使用“/s”开关
在 Windows regedit.exe 中。
“--export”将注册表项(递归地)导出为 regedit 格式。
编码
"hivexregedit" 期望 regedit 文件已经在本地重新编码
编码。 通常在 Linux 主机上,这意味着带有 Unix 样式行结尾的 UTF-8。 自从
Windows regedit 文件通常采用 UTF-16LE 格式,带有 Windows 风格的行尾,您可能需要
在处理之前或之后重新编码整个文件。
将文件从 Windows 格式重新编码为 Linux(在使用“--merge”处理它之前
选项),你会做这样的事情:
iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg
在使用“--export”之后和将文件发送到
Windows 用户,请执行以下操作:
unix2dos < linux.reg | iconv -f utf-8 -t utf-16le > win.reg
有关编码的更多信息,请参见 赢::Hivex::输入regedit(3)。
如果您不确定当前的编码,请使用 文件(1) 命令。 最近的版本
Windows regedit.exe 生成带有 Windows 样式 (CRLF) 行结尾的 UTF-16LE 文件,例如
这个:
$ 文件软件.reg
software.reg:小端 UTF-16 Unicode 文本,行很长,
带有 CRLF 行终止符
这个文件需要转换才能“--merge”它。
SHELL 引用
在 shell 中传递包含“\”(反斜杠)的参数时要小心。 通常你
将不得不使用“单引号”或双反斜杠(但不能同时使用)来保护它们免受
贝壳。
CURRENTCONTROLSET 等等
Windows 注册表中实际上并不存在“CurrentControlSet”之类的注册表项
hive 文件的级别,因此您不能修改这些。
“CurrentControlSet”通常是“ControlSet001”的别名。 在某些情况下它
可能是指另一个控制集。 找出答案的方法是查看
“HKLM\SYSTEM\Select”键:
$ hivexregedit --export SYSTEM '\Select'
[\选择]
“当前”=双字:00000001
“默认”=双字:00000001
“失败”=dword:00000000
"LastKnownGood"=dword:00000002
“当前”是 Windows 启动时将选择的选项。
同样,路径中的其他“当前...”键可能需要替换。
例
$ virt-cat WindowsGuest /Windows/System32/config/software > software.hive
$ hivexregedit --导出 \
--前缀'HKEY_LOCAL_MACHINE\SOFTWARE'\
software.hive '\Microsoft' > ms-keys.reg
$ hivexregedit --合并系统.hive \
--prefix 'HKEY_LOCAL_MACHINE\SYSTEM' addeds.reg
配置
- 帮帮我
显示帮助。
-调试
在 hivex 库中启用调试。 这对于诊断错误很有用,也有助于
格式错误的配置单元文件。
- 合并
hivexregedit --merge [--prefix 前缀] [--encoding enc] \
hivefile [注册文件]
将“regfile”(regedit 格式的文本文件)合并到配置单元“hivefile”中。 如果“注册文件”
省略,则程序从标准输入读取。 (你也可以给多个
输入文件)。
“--prefix”指定 Windows 注册表前缀。 几乎总是需要
在处理真实的 hive 文件时使用它。
“--encoding”指定输入中未标记字符串的编码。 它默认为
“UTF-16LE”应该适用于最新版本的 Windows。 另一种可能是
使用“ASCII”。
- 出口
hivexregedit --export [--prefix prefix] hivefile key > regfile
“key”是配置单元“hivefile”中的一个路径。 (键不应包含任何前缀
并且应该引用以保护 shell 中的反斜杠)。 密钥被导出,
递归地,到文本regedit格式的标准输出。
“--prefix”指定 Windows 注册表前缀。 几乎总是需要
在处理真实的 hive 文件时使用它。
- 字首 字首
Hive 文件和 Windows 注册表项名称是间接相关的。 例如,内
软件配置单元,所有密钥都相对于“HKEY_LOCAL_MACHINE\SOFTWARE”存储。
因此,“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft”在 hive 文件中显示为“\Microsoft”。
hive 格式本身不存储此前缀,因此您必须根据
外知识。 (虚拟双赢注册(1),除其他外,已经知道这一点)。
通常传递参数“--prefix”就足够了
'HKEY_LOCAL_MACHINE\SOFTWARE'" 或类似的在进行合并和导出时。
-编码 UTF-16LE|ASCII码
合并时(仅),您可能需要指定要使用的字符串的编码
蜂巢文件。 这在“编码字符串”中有详细说明
赢::Hivex::输入regedit(3)。
默认使用 UTF-16LE,它应该适用于最新版本的 Windows。
--不安全的可打印字符串
导出时(仅),假设字符串是 UTF-16LE 并将它们打印为字符串
十六进制序列。 如果存在,从字符串中删除最后的零代码点。
这是不安全的,并且不会保留原始配置单元中字符串的保真度
很多原因:
· 假设原始编码为UTF-16LE。 ASCII 字符串和其他字符串
这种转换会破坏编码。
· 假设所有类型为 1 或 2 的东西都是字符串,并且
其他一切都不是字符串,但真正的蜂巢中的类型字段是不可靠的。
· 丢失关于零代码点是否跟在 hive 中的字符串的信息
或没有。
这一切发生是因为配置单元本身不包含有关字符串如何的信息
编码(参见“编码字符串” 赢::Hivex::输入regedit(3))。
你应该只使用这个选项来快速破解和调试配置单元的内容,
和 决不要 如果输出将被传递到另一个程序或存储在
另一个蜂巢。
使用 onworks.net 服务在线使用 hivexregedit
