Home > Windows にまつわる e.t.c.

オフラインシステムのレジストリーを編集する


レジストリーは、通常起動している OS のレジストリーをレジストリーエディター(regedit.exe)などで編集するのが一般的ですが、起動していない OS のレジストリーを編集する事も可能です。

どういった時にこいつの出番があるかというと、起動しなくなったPCを起動させるためにレジストリーの調査と編集をするとか、VHD boot する前の VHD の RunOnce に仕込みを入れたいとか、ウイルスに感染した PC のレジストリを細工してウイルスを無効化するとか(これは、Windows Sysinternals の AutoRuns で「Analyze Offline System」すると細工で来ちゃいますけど)

これは「ハイブ」と呼ばれるレジストリーの内部構造を担っているレジストリーの実態ファイルそのものを、起動している OS のレジストリーにマウントすることで編集を可能にします。

ハイブをマウントする前に、オリジナルレジストリーと、ハイブの関係を整理しておきましょう。

環境変数の展開例

%SystemRoot%
→ C:\Windows

%USERPROFILE%
→ C:\Users\HogeHoge

レジストリーキーの省略形

HKEY_LOCAL_MACHINE
= HKLM

HKEY_USERS
= HKU

HKEY_CURRENT_USER
= HKCU

レジストリーキー ハイブファイル
HKEY_LOCAL_MACHINE\SOFTWARE %SystemRoot%\system32\config\SOFTWARE
HKEY_LOCAL_MACHINE\SYSTEM %SystemRoot%\system32\config\SYSTEM
HKEY_LOCAL_MACHINE\SAM %SystemRoot%\system32\config\SAM
HKEY_LOCAL_MACHINE\SECURITY %SystemRoot%\system32\config\SECURITY
HKEY_USERS\.DEFAULT %SystemRoot%\system32\config\DEFAULT
HKEY_CURRENT_USER %USERPROFILE%\NTUSER.DAT

 

GUI で処理してもいいのですが、HKEY_CURRENT_USER のマウントが面倒なので、まずはコマンドラインでのマウントです。

ハイブをマウントできる先は、HKLM と HKU の2か所だけなので、マシン系を HKLM に、ユーザー系を HKU にマウントします。

まずは、ターゲットのシステムストレージを、起動している OS から見える様にマウントし、ドライブレターが割当たっている状態にします。

ハイブをマウントするには、その状態で「reg load レジストリーキートップ\マウントするキー ハイブファイルフルパス」コマンドでターゲットとなるハイブファイルをマウントします。

 

例)「HKLM\VHD_boot」に、ターゲットの「HKEY_LOCAL_MACHINE\SOFTWARE」を割り当てる

reg load HKLM\VHD_boot e:\Windows\System32\config\SOFTWARE

 

この状態で、ローカルレジストリーの一部としてハイブが割当たりましたので、レジストリーエディターなり、reg コマンドなり、PowerShell でターゲットのレジストリーが操作できます。

アンマウントは、「reg unload レジストリーキートップ\マウントするキー」です。

 

例)「HKLM\VHD_boot」にマウントしていたハイブをアンマウントする

reg unload HKLM\VHD_boot

 

GUI(regedit.exe)でハイブをマウントする場合は、マウント先のレジストリートップを選択し、「ハイブの読み込み」をし、マウント先になるキーを指定します。

マウント先のレジストリーを選択してハイブの読み込み

 

対象のハイブを選択

 

マウントするキーを指定

 

ハイブがマウントされた

 

ハイブをアンマウントするときは、アンマウントするキーを選択し、ハイブのアンロードをします。

アンマウントするハイブを選択してハイブのアンロード

元々あるハイブもアンロード メニューが有効なのですが、エラーになりアンロードできません。とは言っても、怖いのでアンロードオペレーションはしないように

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.