Windowsレジストリでの検索は、ve ------ ry ------ lo ---- ngである可能性があります。
レジストリ全体のコンテンツ、または単一のハイブのコンテンツをインデックスして、高速ルックアップを利用できるツールはありますか? (たとえば、全文検索が有効になっているFTS3またはFTS4を使用してSQLiteデータベースを生成する)
ありがとうございました。
PS。毎回新しい線形検索を実行するRegScannerやツールは必要ありません。 インデクサーが必要です。これを使用すると、検索を瞬時に行うことができます。質問のコメントを参照してください。
レジストリにインデックスを付けるアプリケーションと、このインデックスを検索する別のアプリケーションを作成しました。
これにより、入力中にほぼ瞬時の結果になります。これにより、いくつかのものをすばやく検索できます。
このビデオデモを参照 は、結果の速さ、3つの異なる検索、2つのレジストリジャンプを示しています。
インデックス作成の目的で、私は Lucene.net を使用していますが、それは おなじみの音 ですか?
これにより、SQLデータベースを使用せずに、レジストリから直接データにインデックスを付けることができます。さらに、Lucene.netには、便利なインデックスオプションと検索関連機能が多数あります。
このインデックスは%LOCALAPPDATA%\RegistryIndex
に保存され、サイズは約160MBです。
これにより、レジストリ全体が上記のインデックスフォルダにダンプされます。HKEY_CLASSES_ROOT
とHKEY_CURRENT_USER
はショートカットハイブであるため、インデックスが作成されないことに注意してください。
それがなくても機能しますが、自動的に管理者として実行するように構成することもできます。
アプリケーションが完了を示したら、ウィンドウを閉じることができ、インデックスが作成されます。
これは単純です。上のテキストボックスに検索するものを入力すると、結果が表示されます。
構文が正しくないとと入力すると、黄色のテキストボックスが表示され、下部のステータスバーにエラーが表示されます。
ワイルドカードやブール演算などの特別な検索機能がサポートされています。詳細については、 クエリ構文 を参照してください。現在の設定ではフィールドの指定は機能しないことに注意してください。システムはトークン化されたパスと値の連結で検索します。したがって、値D EFのA\B\CはAB C D EFになります。
正確なパスを検索する例:"HKEY_LOCAL_MACHINE SOFTWARE"
検索は1000件に制限されています。
エントリをダブルクリックしてレジストリ内のエントリにジャンプします。これには、SysInternalsのregjump.exeが使用されます。
ジャンプを機能させるには、管理者として検索プログラムを実行する必要があります。初めてEULAに同意します。
現在のバージョンをテクニカルプレビューとして参照してください。機能しますが、リファクタリングとメイクアップを使用できます。
%LOCALAPPDATA%
に保存し、Administrators
権限を要求します。ダウンロードするにはここをクリック 、すべてのファイルを希望の場所に解凍し、RegistryIndex /Search.exeへのショートカットを作成します。
難読化されていないため、ILを検査するには、必要に応じてReflectorを使用できます。
もう少し多くの機能でリファクタリングされたときにソースをリリースするかもしれません。おそらくCodePlexに置くことができます。
NirSoftのRegScanner を見てください。インデクサーではありませんが、RegEditを検索し、他の優れた機能の中でも特に、選択したヒットに対してRegEditを開きます。開発プロジェクトを開始する前に必ず試してください(プロジェクトを実行するためにプロジェクトを実行したい場合を除く)。実際にはそれ以上は必要ない場合があります。
レジストリを.regテキストファイルにエクスポートし、お気に入りのエディタを使用して検索できます。