System InformerはWindows用のプロセス監視ツールです。プロセス・スレッド・ハンドルの状態をリアルタイムに表示し、マルウェア検出やデバッグ作業を支援します。旧名Process Hackerの後継で、ユーザーモードGUIとカーネルドライバの2層構成で動作します。
構成の中心はSystemInformer.exeとKSystemInformerドライバ(ksi.sys)です。SystemInformer/main.cのwWinMainは起動時にPhInitializePhLibでライブラリを初期化し、設定読み込みとプラグインロードを経てメインウィンドウを表示します。ドライバ側のDriverEntry(KSystemInformer/main.c)はプロセス・スレッド・レジストリなど各informerモジュールを起動し、カーネル内で発生したイベントをユーザーモード側へ渡します。README.mdによると、ドライバへのアクセスは署名済みバイナリと呼び出し元の状態チェックに厳格に限定される設計です。未署名のプラグインを読み込むとドライバアクセスが制限される点も明記されています。開発者向けにはtestsigningモードとkph.key・public.keyの鍵ペアを使い、verify.cのKphpPublicKeys配列を書き換えて独自ビルドを検証する手順が用意されています。
- STEP 01
SystemInformer.exeを実行すると、初回起動時に管理者権限とドライバ読み込みの確認が求められます。
- STEP 02
テスト署名が有効でない環境では、KSystemInformerドライバへの接続に失敗し、一部の高度な機能が無効化された状態でGUIのみ動作します。
- STEP 03
接続に成功すると、メインウィンドウでプロセスツリーやCPU・メモリのグラフ、ハンドル一覧がリアルタイムに更新される様子が確認できます。
- STEP 04
独自ドライバを検証したい場合は、CustomSignTool.exeで鍵ペアを作成し、verify.cのKphpPublicKeys配列を書き換えてカーネルとユーザー両方を再ビルドする必要があります。
- STEP 05
bcdedit /debug onとbcdedit /set testsigning onを実行しない限り、自前でビルドしたドライバは読み込まれません。
手に入るのは、タスクマネージャーより詳細なプロセス・ハンドル・カーネルオブジェクトの情報を見られる監視アプリです。署名検証済みのカーネルドライバがあれば、保護プロセスの強制終了やメモリ検索など高度な機能も使えます。ソースコードはKSystemInformer(ドライバ)とSystemInformer(GUI)に分かれており、両者を組み合わせて初めて全機能が動く構成だと分かります。
ドライバ部分はWindowsカーネルに読み込まれるため、鍵の設定やテスト署名の扱いを誤るとシステムが不安定になるリスクがあります。
未署名のプラグインを読み込むと、README記載の通りドライバへのアクセスが制限され、一部機能が使えなくなります。
本レビューはソースコードとREADMEの記載内容に基づく分析であり、実際のビルドや実行結果そのものは確認していません。
Windowsのプロセス・カーネルレベルの挙動を深く調べたい管理者やマルウェア解析者、開発者向けのツールだと判断できます。GUIとカーネルドライバの2層構成、署名によるアクセス制御という設計思想は、main.cやverify.c、READMEの記述から具体的に確認できるため、実機で動かさなくても仕組みの信頼性は判断可能です。ただしドライバの独自ビルドや検証を行う場合は、鍵管理とテスト署名の手順を正確に踏む必要がある点は覚えておくべきです。