これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド hivexregedit です。
プログラム:
NAME
hivexregedit - regedit 形式のファイルからレジストリの変更をマージしてエクスポートします。
SYNOPSIS
hivexregedit --merge [--prefix プレフィックス] [--encoding enc] \
ハイブファイル [regfile]
hivexregedit --export [--prefix プレフィックス] hivefile キー > regfile
DESCRIPTION
hivexregedit は、Hive ファイルを直接操作するための低レベル ツールであることに注意してください。 に
レジストリの変更を Windows 仮想マシンにマージまたはエクスポートすることを使用することをお勧めします
virt-win-regとします。
ローカル バイナリ (「ハイブ」) ファイルの場合、XNUMX つのモードがあります。 「--merge」インポート(マージ)
regedit 形式のファイルからハイブに変更されます。 「/s」スイッチの使用と似ています。
Windows regedit.exe 内。
「--export」は、レジストリ キーを regedit 形式に (再帰的に) エクスポートします。
エンコーディング
「hivexregedit」は、regedit ファイルがローカル ディレクトリですでに再エンコードされていることを前提としています。
エンコーディング。 通常、Linux ホストでは、これは Unix スタイルの行末を持つ UTF-8 を意味します。 以来
Windows regedit ファイルは、Windows スタイルの行末を持つ UTF-16LE であることがよくあります。
処理の前または後にファイル全体を再エンコードします。
ファイルを 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
エンコードの詳細については、を参照してください。 Win::Hivex::Regeditをとします。
現在のエンコーディングが不明な場合は、 file(1) コマンド。 の最新バージョン
Windows regedit.exe は、次のような Windows スタイル (CRLF) 行末を持つ UTF-16LE ファイルを生成します。
この:
$ ファイル software.reg
software.reg: 非常に長い行を含むリトルエンディアン UTF-16 Unicode テキスト、
CRLF 行終端記号付き
このファイルは、「--merge」する前に変換する必要があります。
SHELL 見積り
シェルで「\」(バックスラッシュ)を含むパラメータを渡す場合は注意してください。 通常、あなたは
それらを保護するには、「単一引用符」または二重バックスラッシュ (両方ではありません) を使用する必要があります。
シェル。
CurrentControlSet 等々
「CurrentControlSet」のようなレジストリ キーは、実際には Windows レジストリに存在しません。
ハイブ ファイルのレベルに依存するため、これらを変更することはできません。
「CurrentControlSet」は通常、「ControlSet001」のエイリアスです。 状況によっては、
別のコントロール セットを参照する場合があります。 それを調べる方法は、
「HKLM\SYSTEM\Select」キー:
$ hivexregedit --export SYSTEM '\Select'
[\選択する]
「現在」=dword:00000001
「デフォルト」=dword:00000001
「失敗」=dword:00000000
"LastKnownGood"=dword:00000002
「現在」は、Windows の起動時に選択されるものです。
同様に、パス内の他の「Current...」キーも置換する必要がある場合があります。
実施例
$ virt-cat WindowsGuest /Windows/System32/config/software > software.hive
$ hivexregedit --export \
--prefix 'HKEY_LOCAL_MACHINE\SOFTWARE' \
software.hive '\Microsoft' > ms-keys.reg
$ hivexregedit --merge system.hive \
--prefix 'HKEY_LOCAL_MACHINE\SYSTEM' addeds.reg
OPTIONS
- 助けて
ヘルプを表示します。
- デバッグ
hivex ライブラリでのデバッグを有効にします。 これはバグの診断にも役立ちます。
不正な形式のハイブ ファイル。
- マージ
hivexregedit --merge [--prefix プレフィックス] [--encoding enc] \
ハイブファイル [regfile]
「regfile」(regedit 形式のテキスト ファイル)をハイブの「hivefile」にマージします。 「regfile」の場合
が省略された場合、プログラムは標準入力から読み取ります。 (複数指定することもできます)
入力ファイル)。
「--prefix」は Windows レジストリ プレフィックスを指定します。 ほぼ常に必要となるのは、
実際のハイファイルを扱う場合はこれを使用してください。
「--encoding」は、入力内のマークのない文字列のエンコーディングを指定します。 デフォルトでは
「UTF-16LE」は、最近のバージョンの Windows で動作するはずです。 もう一つの可能性は、
「ASCII」を使用します。
- 書き出す
hivexregedit --export [--prefix プレフィックス] hivefile キー > regfile
「key」はハイブ「hivefile」内のパスです。 (キーにはプレフィックスを含めないでください
シェルからバックスラッシュを守るために引用符で囲む必要があります)。 キーがエクスポートされ、
再帰的に、テキストの regedit 形式で標準出力に出力されます。
「--prefix」は Windows レジストリ プレフィックスを指定します。 ほぼ常に必要となるのは、
実際のハイファイルを扱う場合はこれを使用してください。
--prefix 接頭辞
Hive ファイルと Windows レジストリ キー名は間接的に関連しています。 たとえば、内部では
ソフトウェア ハイブでは、すべてのキーは「HKEY_LOCAL_MACHINE\SOFTWARE」を基準にして保存されます。
したがって、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft」は、ハイブ ファイル内では「\Microsoft」として表示されます。
ハイブ形式自体はこのプレフィックスを保存しないため、次の情報に基づいてプレフィックスを指定する必要があります。
外の知識。 (virt-win-reg(1) は特に、これについてはすでに知っています)。
通常、パラメータ「--prefix」を渡すだけで十分です。
マージとエクスポートを行う場合は、「HKEY_LOCAL_MACHINE\SOFTWARE」または同様のものを使用します。
- エンコーディング UTF-16LE|ASCII
マージ (のみ) の場合、使用される文字列のエンコーディングを指定する必要がある場合があります。
ハイブファイル。 これについては、「エンコーディング文字列」で詳しく説明されています。
Win::Hivex::Regeditをとします。
デフォルトでは UTF-16LE が使用されます。これは、Windows の最新バージョンで動作するはずです。
--unsafe-printable-strings
エクスポートする場合(のみ)、文字列が UTF-16LE であると想定し、代わりに文字列として出力します。
XNUMX 進シーケンスの。 最後のゼロのコードポイントが存在する場合は、文字列から削除します。
これは安全ではなく、元のハイブ内の文字列の忠実性が維持されません。
様々な理由:
· 元のエンコーディングは UTF-16LE であると仮定します。 ASCII 文字列とその他の文字列
この変換によりエンコーディングが破損します。
· タイプ 1 または 2 を持つものはすべて実際には文字列であると仮定します。
他のものはすべて文字列ではありませんが、実際のハイブの type フィールドは信頼できません。
· ハイブ内の文字列の後にゼロ コードポイントが続いたかどうかに関する情報が失われる
どうか。
これはすべて、ハイブ自体に文字列がどのように構成されているかに関する情報が含まれていないために発生します。
エンコードされています (「エンコード文字列」を参照) Win::Hivex::Regeditを(3))。
このオプションは、ハイブの内容を簡単にハッキングおよびデバッグする場合にのみ使用してください。
および 決して 出力を別のプログラムに渡す場合、または次の場所に保存する場合に使用します。
別の巣箱。
onworks.net サービスを使用してオンラインで hivexregedit を使用する