ほぷしぃ

Filemon

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

Filemon 〜 ファイルアクセスを全て記録するツール 〜

更新日:2005年08月10日

プログラムが読み書きするファイルを表示・記録するツールです。
しかも、アクセスするファイル名だけを表示するのでは無く、読み書きの位置、および、長さなども表示してくれます。

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

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

Sysinternals
http://www.sysinternals.com

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

○使い方

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

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

(2)開始

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

(3)フィルタの設定

起動と同時に「Filemon Filter」のダイアログが現れます。

「Filemon Filter」では、ファイルアクセスの記録対象となるプログラム名やファイルパス名などを設定します。

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

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

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

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

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

(4)ファイルアクセス記録開始

「File Monitor」ウィンドウが現れ、ファイルの読み書きの記録が開始されます。

(5) 各項目の説明
# 番号
Time ファイルアクセスが発生した時刻 17:33:21
Process (ファイルアクセスをした)プログラム名とプロセスID explorer.exe:1744
Request アクセスの種類
  READ:   読む
  WRITE:   書く
  OPEN:   ファイルのオープン
  CLOSE:   ファイルのクローズ
  DIRECTORY:   ディレクトリの確認etc
CLOSE
Path ファイル名 C:\Documents and Settings\administrator\My Documents\
Result ファイルアクセスの結果 (成功:Success 失敗:failure) SUCCESS
Other その他の情報
   Offset:   読み書きの開始位置
   Length:   読み書きの長さ
 

(6) 記録の停止

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

(7) 記録のクリア

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

(8) 記録の保存

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

○こつ

・扱う範囲をあらかじめ絞る

Filemonは全てのファイルアクセスを記録するのでデータはすぐにいっぱいになります。
あふれかえるデータから目的のファイルアクセスを探すのは砂漠で米粒を拾うような困難になります

従って、欲しいファイルアクセスの直前まで「虫眼鏡アイコン」で記録を中断させておき、 必要な箇所で「虫眼鏡アイコン」をクリックして記録を開始させると解析が楽になります。

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

Windowsには様々なプログラムが様々なタイミングでファイルの読み書きをしています。
これらはターゲットとなるプログラムのファイルアクセスの記録にはじゃまなだけです。
フィルタのExcludeに無関係な常駐プロセスを記述すると見通しが良くなります。

「フィルタアイコン」あるいはCTRL+Lを押すことでフィルタダイアログが現れるので Excludeの項目に常駐プロセスを記述した後[OK]をクリックします

表示されている任意の行を右クリックして[Exclude Process(プロセスを除外)]、「Exclude Path(ファイルを除外)」を選択しても 同様の効果が得られます。

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

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