web-dev-qa-db-ja.com

Windowsレジストリの変更の追跡

Windowsレジストリの変更を追跡する方法はありますか?さまざまなプログラムのインストール中にレジストリにどのような変更が加えられるかを確認したいと思います。

42
sumek

特定のプログラムによって行われたレジストリの変更を監視できます。

http://www.nirsoft.net/utils/reg_file_from_application.html

更新:NirLauncher(NirSoftのすべてのアプリケーションを含む)をダウンロードするだけです。これは、Windowsツールボックスへの最高の追加機能の1つです。 http://launcher.nirsoft.net/

40
BlackTea

プロセスモニター を使用すると、さまざまなプロセスのファイルおよびレジストリアクティビティを監視できます。

45
Franci Penov

WMIとレジストリについて:

レジストリに関する3つのWMIイベントクラスがあります。

  • RegistryTreeChangeEvent
  • RegistryKeyChangeEvent
  • RegistryValueChangeEvent

レジストリイベントクラス

ただし、次の制限に注意する必要があります。

  • RegistryTreeChangeEventおよびRegistryKeyChangeEventを使用すると、どの値またはキーが実際に変更されたかを直接知る方法はありません。これを行うには、イベント前のレジストリ状態を保存し、イベント後の状態と比較する必要があります。

  • これらのクラスをHKEY_CLASSES_ROOTまたはHKEY_CURRENT_USERハイブと共に使用することはできません。これを克服するには、監視するレジストリキーを表すWMIクラスを作成します。

修飾子​​を使用したレジストリクラスの定義

__InstanceOperationEvent派生クラスで使用します。

したがって、WMIを使用してレジストリを監視することは可能ですが、完璧ではありません。利点は、「リアルタイム」で変更を監視できることです。もう1つの利点は、WMIの永続的なイベントサブスクリプションです。

常にイベントを受信する

「常時」レジストリを監視する方法。アプリケーションが実行されていない場合のイベント。

11
Uros Calakovic

追加のツールなしでこれを行う簡単な方法は、インストール前にレジストリをテキストファイルにエクスポートし、その後別のファイルにエクスポートすることです。次に、2つのファイルを比較します。

そうは言っても、Sysinternalsのツールはこれに最適です。

9
Greg Hewgill

Regshot ここで言及するに値します。すべてのレジストリ設定のスナップショットをスキャンして取得し、後で再度実行して元のスナップショットと比較し、変更されたすべてのキーと値を表示します。

3
Baodad

SOの一部を監視できるsobek( http://code.google.com/p/sobek-hids/ )というpython-hidsがあります。私はファイルの変更を監視するためにうまく機能していますが、ドキュメントによると、レジストリの変更を監視できると言っていますが、私にとっては機能しません。

pythonベースの非表示。

2
Luis Fernández

VMを使用する場合、以下の手順を使用してレジストリの変更を検査します。

  1. 7-Zipを使用して、vdi/vhd/vmdkファイルを開き、フォルダーC:\ Windows\System32\configを抽出します
  2. OfflineRegistryView を実行して、レジストリをプレーンテキストに変換します
    • 「Config Folder」を抽出したフォルダーに設定します
    • 「ベースキー」をHKLM\SYSTEMまたはHKLM\SOFTWAREに設定します
    • 「サブキーの深さ」を「無制限」に設定します
    • 「実行」ボタンを押します

次に、お気に入りの差分プログラムを使用して、「前」と「後」のスナップショットを比較します。

1
Fidel

いくつかの異なる方法があります。その場で自分でやりたい場合は、WMIを使用することをお勧めします。 RegistryKeyChangeEventとその親類が注目すべきものです。 __InstanceCreationEvent__InstanceDeletionEvent、および__InstanceModificationEventクラスを介して監視する方法もあります。

http://msdn.Microsoft.com/en-us/library/aa393040(VS.85).aspx

1
olle

私はFranciに同意します。すべてのSysinternalsユーティリティは一見の価値があり(オートランも必須です)、古き良きFilemonとRegmonを置き換えるProcess Monitorは貴重です。

必要な使用方法のほかに、プロセスが失敗する理由(存在しないファイルやレジストリキーにアクセスしようとするなど)を確認することは非常に便利です。

0
PhiLho

PhiLhoは AutoRuns に言及していますが、詳しく説明する価値があると思います。

レジストリ全体をスキャンするのではなく、おそらく自動的にロードされるもの(EXE、DLL、ドライバーなど)への参照を含む部分のみをスキャンします。ファイル。インストールの前後に実行でき、 diff を実行できます。

0
Hugh Allen