ほぷしぃ

Regmon

プログラムを裏側から読もう /  Filemon /  Regmon /  Ethereal

Regmon 〜 レジストリアクセスを全て記録するツール 〜

更新日:2005年08月10日

プログラムのレジストリへの読み書きを表示・記録するツールです。

○ダウンロードできる場所

下記のサイトから取得できます

Sysinternals
http://www.sysinternals.com

http://www.sysinternals.com/Files/Regmon9x.zip    (Win9X用)
http://www.sysinternals.com/Files/RegmonNt.zip    (WinNT/2K/XP用)

○使い方

(1)ダウンロード・解凍

上記のサイトから使用しているWindows用のファイルをダウンロードし、解凍します。

(2)開始

解凍したフォルダからregmon.exeをダブルクリックします。

(3)フィルタの設定

regmon開始と同時に「RegmonFilter」のダイアログが現れます。

表示画面

「Regmon Filter」では、レジストリの記録対象となるプログラム名やレジストリ名などを設定します。

「Include」は取得用のフィルタです。
ここに記述された文字列を含むプログラム名やレジストリ名が記録の対象となります。
※何も記述せず空白にすると、何一つ記録が残りません。

「Exclude」は排除用のフィルタです。
ここに記述した文字列を含むプログラム名やレジストリ名を含むレジストリアクセスは破棄され、記録の対象外となります。

設定を完了し、次に進むにはOKボタンをクリックします。

デフォルトの設定は下記の通りです
   Include: *  (全てを取得)
   Exclude: 空白  (何も排除しない)

最初はデフォルトの設定で使用し、出力される情報が膨大で煩雑と感じたら、適宜フィルタを追加するのが良いでしょう。

(4)レジストリのアクセス記録開始

メインのRegistory Monitor ウィンドウが現れ、レジストリの読み書きの記録が開始されます。

表示画面

各項目の説明
項目名 内容
# 番号 1024
Time 記録した時刻
時計アイコンをクリックすると表示形式が切り替わります。
18:23:55
Process (レジストリアクセスをした)プログラム名とプロセスID explorer:1744
Request アクセスの種類

 QueryValue: 読む
 SetValue: 書く
 OpenKey: レジストリのオープン
 CloseKey: レジストリのクローズ
QueryValue
Path レジストリ名
最初の文字列は下記の様に略される

 HKCR: HKEY_CLASSES_ROOT
 HKCU: HKEY_CURRENT_USER
 HKLM: HKEY_LOCAL_MACHINES
 HKU:   HKEY_USERS
 HKCC: HKEY_CURRENT_CONF
HKCR\Interface\{EC716845-B511-4773-9738-BA32236F33FC}\ProxyStubClsid32\
Result レジストリアクセスの結果
 Success: 成功
 NotFound: 失敗など
Success
Other その他の情報
 Key:キー値 ,十六進数,文字列など
{00020424-0000-0000-C000-000000000046}

(5)記録の停止

Regmonの記録を停止するには、「虫眼鏡アイコン」をクリックします。虫眼鏡に赤いX印が付き、記録が中断されます。
再度、虫眼鏡アイコンをクリックすると記録が再開されます。

下記の方法でもできます。
Ctrl+Eキー、もしくは、メニューのFile→Capture Events

(6)記録のクリア

「消しゴムアイコン」をクリックすると記録がクリアされます。

下記の方法でもできます。
Ctrl+Xキー、もしくは、メニューのEdit→Clear Display

(7)保存

「ディスクアイコン」をクリックするとレジストリ読み書きの記録がファイルに保存されます。
保存したファイルの形式は、タブ区切りのテキスト形式です。
Excelなどで取り込むことができます。

下記の方法でもできます。
Ctrl+Sキー、もしくは、メニューのEdit→Save

○こつ

・記録するタイミングを絞る

regmonはデフォルトでは全プログラムのレジストリアクセスを記録するため、瞬時でも記録するデータ量は莫大になります。
あふれかえるデータから調査対象のレジストリアクセスを探し出すのは、砂漠で米粒を拾うような作業です。

ターゲットとなるレジストリアクセスの直前まで記録を停止しておき(「虫眼鏡アイコン」に×がついている状態)、タイミングを見計らって、レジストリアクセスの記録を開始させると(「虫眼鏡アイコン」をクリック)と解析が楽になります。

・Excludeフィルタに常駐プロセスを記述する

マウスやキーボードに触れてなくても、Windowsでは様々なプログラムが様々なタイミングでレジストリにアクセスをしています。
これらは、ターゲットとなるプログラムのレジストリアクセスの調査には邪魔になります。

フィルタのExcludeに無関係な常駐プロセスを記述すると、それらのレジストリアクセスは記録されなくなるので、見通しが良くなります。

方法は、下記の通りです。

1.Regmon Filterダイアログを表示させる。
   Regmon起動時、あるいは、「フィルタアイコン」のクリックか、CTRL+Lを押すことでフィルタダイアログが現れます。

2.Excludeの項目に不要なプロセス名を記述します。
   セミコロン(;)を区切り文字として、複数のプロセス名を記述できます。
   その後、[OK]をクリックします

別の方法として、下記の方法があります。

   レジストリアクセスの一覧から、不要な行を右クリックします。
   現れたポップアップメニューから、[Exclude Process(プロセスを除外)]、「Exclude Path(レジストリを除外)」を選択します。
   ※Exclude Processを選択した場合は、フィルタのExcludeに選択した行のプロセスが自動的に追加されます。
   ※Exclude Pathを選択した場合は、フィルタのExcludeに選択した行のレジストリが自動的に追加されます。

   たとえば下記のような常駐プロセスなどを記述しておくと解析が楽になります。 internat.exe;explorer;mmc.exe;rundll32.exe

・Includeフィルタに対象となるプロセスを記述する

レジストリアクセスを記録するプログラムが判明してる場合は、Includeフィルタにそのプロセスを記述するのが手っ取り早いです。

方法は、下記の通りです。

1.Regmon Filterダイアログを表示させる。
   Regmon起動時、あるいは、「フィルタアイコン」のクリックか、CTRL+Lを押すことでフィルタダイアログが現れます。

2.Includeの項目に記録対象のプロセス名を記述します。
   セミコロン(;)を区切り文字として、複数のプロセス名を記述できます。
   その後、[OK]をクリックします

下記の方法でも可能です。

   レジストリアクセスの一覧から、対象となるプログラムがある行を右クリックします。
   現れたポップアップするメニューから、[Include Process(プロセスを限定)]、「Include    Path(レジストリを限定)」を選択します。

   ※Include Processを選択した場合は、フィルタのIncludeに選択した行のプロセスが自動的に追加されます。
   ※Include Pathを選択した場合は、フィルタのIncludeに選択した行のレジストリが自動的に追加されます。

前のページへ ページのトップへ 次のページへ