Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
regipy — Regipy は、オフラインレジストリハイブを解析するためのOS非依存のPythonライブラリです。 | Kitploit
ツール/GitHubGitHub/mkorman90/regipy
フォレンジックデジタルフォレンジック脅威インテリジェンスインシデントレスポンス
GitHubmkorman90/regipy

regipy

Regipy は、オフラインレジストリハイブを解析するためのOS非依存のPythonライブラリです。

リポジトリを見る
27759192日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

regipy

OpenSSF Scorecard

⚠️ v6.0.0 における破壊的変更

バージョン 6.0.0 には大幅なモダナイゼーションの変更が含まれています:

  • Python 3.9 以上が必要 - Python 3.6、3.7、3.8 のサポートを終了
  • attrs ライブラリを削除 - データクラスは Python 組み込みの dataclasses モジュールを使用するようになりました
  • 内部クラス (Cell、VKRecord、Value、Subkey) をインポートし、attr.asdict() のような attrs 関数を使用している場合は、dataclasses.asdict() に切り替えてください

詳細については CHANGELOG を参照してください。

Regipy は、オフラインのレジストリハイブ (REGF ヘッダーを持つ Hive ファイル) を解析するための Python ライブラリです。regipy には多くの機能があります:

  • ライブラリとして使用:
    • ルートまたは指定されたパスからレジストリハイブを再帰的に探索し、すべてのサブキーと値を取得
    • 特定のサブキーと値を読み取る
    • レジストリハイブにトランザクションログを適用する
  • コマンドラインツール
    • レジストリハイブ全体を json にダンプする
    • レジストリハイブにトランザクションログを適用する
    • レジストリハイブを比較する
    • 堅牢なプラグインシステムからプラグインを実行する (例: amcache、shimcache、コンピューター名の抽出...)

Python 3.9 以上が必要です。

インストール

Regipy の最新バージョンは pypi からインストールできます:

pip install regipy[full]

注: regipy[full] はコンパイルツールを必要とする依存関係をインストールするため、時間がかかる場合があります。 [full] を省略することで、依存関係を緩和したバージョンをインストールすることも可能です。

また、リポジトリをクローンして以下を実行することで、ソースからインストールすることも可能です:

pip install --editable .[full]

Rust アクセラレーテッドバックエンド (アルファ)

コア REGF パーサーのオプションの Rust 実装が、オプトイン バックエンドとして利用可能で、PyPI に regipy-rs として別途公開されています:

pip install regipy[rust]
from regipy.registry_rs import RegistryHive  # instead of regipy.registry

reg = RegistryHive("/tmp/NTUSER.dat")
# Same API: get_key, iter_values, recurse_subkeys, plugins — everything
# works unchanged, including all regipy plugins.

これはドロップイン置換であり、テストハイブコーパス全体にわたって純粋な Python パーサーと 1:1 で検証されています — すべてのキーパス、タイムスタンプ、値、プラグイン出力が、一致する SHA-256 トラバーサルダイジェストによって公証されています (regipy_tests/comparison_test.py および regipy-rs/BENCHMARKS.md の Forensic parity evidence セクションを参照)。

値付きの完全なトラバーサル (recurse_subkeys)、3 回実行のベスト:

HiveKeysPythonRustSpeedup
NTUSER.DAT1,812173 ms5 ms38x
UsrClass.dat6,205948 ms17 ms55x
amcache.hve2,105837 ms12 ms67x
SYSTEM30,75623.1 s91 ms253x
SYSTEM (Win10 1709)43,211118.7 s111 ms1,068x
SOFTWARE117,488745.6 s292 ms2,550x

cProfile はその理由を示しています: Python バックエンドでは、トラバーサル時間はレコードごとの construct 構造体解析と値のデコードによって支配されていますが、Rust バックエンドではパーサーがプロファイルから完全に消え、残る Python のコストは返される Subkey データクラスの構築のみです。 完全なプロファイル、ハイブごとのダイジェスト、および少数の意図的な相違点 (破損したハイブでの例外タイプ、サイクルガードの動作) を文書化した免責事項は regipy-rs/BENCHMARKS.md にあります; python regipy-rs/benchmark.py でレポート全体を再生成できます。

純粋な Python パーサーはデフォルトのままであり、Rust バックエンドがインストールされていない場合は影響を受けません。

CLI

ヘッダーを解析する

regipy-parse-header ~/Documents/TestEvidence/Registry/SYSTEM

出力例:

╒════════════════════════╤══════════╕
│ signature              │ b'regf'  │
├────────────────────────┼──────────┤
│ primary_sequence_num   │ 11639    │
├────────────────────────┼──────────┤
│ secondary_sequence_num │ 11638    │
├────────────────────────┼──────────┤
│ last_modification_time │ 0        │
├────────────────────────┼──────────┤
│ major_version          │ 1        │
├────────────────────────┼──────────┤
│ minor_version          │ 5        │
├────────────────────────┼──────────┤
│ file_type              │ 0        │
├────────────────────────┼──────────┤
│ file_format            │ 1        │
├────────────────────────┼──────────┤
│ root_key_offset        │ 32       │
├────────────────────────┼──────────┤
│ hive_bins_data_size    │ 10534912 │
├────────────────────────┼──────────┤
│ clustering_factor      │ 1        │
├────────────────────────┼──────────┤
│ file_name              │ SYSTEM   │
├────────────────────────┼──────────┤
│ checksum               │ 0        │
╘════════════════════════╧══════════╛
[2019-02-09 13:46:12.111654] WARNING: regipy.cli: Hive is not clean! You should apply transaction logs
  • ハイブのヘッダーを解析する際、チェックサム検証とトランザクション検証も行われます

ハイブ全体をディスクにダンプする (時間がかかる場合があります)

regipy-dump ~/Documents/TestEvidence/Registry/NTUSER-CCLEANER.DAT -o /tmp/output.json

regipy-dump ユーティリティは、-t フラグを追加することで、JSON の代わりにタイムラインを出力することもできます

Hive 上で関連するプラグインを実行する

regipy-plugins-run ~/Documents/TestEvidence/Registry/SYSTEM -o /tmp/plugins_output.json

ハイブタイプは自動的に検出され、関連するプラグインが実行されます。 詳細についてはプラグインセクションを参照してください

レジストリハイブを比較する

同じタイプのレジストリハイブを比較し、CSV に出力します (-o が指定されていない場合、出力は画面に表示されます)

regipy-diff NTUSER.dat NTUSER_modified.dat -o /tmp/diff.csv

出力例:

[2019-02-11 19:49:18.824245] INFO: regipy.cli: Comparing NTUSER.DAT vs NTUSER_modified.DAT
╒══════════════╤══════════════╤════════════════════════════════════════════════════════════════════════════════╤════════════════════════════════════════════════╕
│ difference   │ first_hive   │ second_hive                                                                    │ description                                    │
╞══════════════╪══════════════╪════════════════════════════════════════════════════════════════════════════════╪════════════════════════════════════════════════╡
│ new_subkey   │              │ 2019-02-11T19:46:31.832134+00:00                                               │ \Software\Microsoft\legitimate_subkey          │
├──────────────┼──────────────┼────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────┤
│ new_value    │              │ not_a_malware: c:\temp\legitimate_binary.exe @ 2019-02-11 19:45:25.516346+00:00 │ \Software\Microsoft\Windows\CurrentVersion\Run │
╘══════════════╧══════════════╧════════════════════════════════════════════════════════════════════════════════╧════════════════════════════════════════════════╛
[2019-02-11 19:49:18.825328] INFO: regipy.cli: Detected 2 differences

トランザクションログを使用してレジストリハイブを復元する

regipy-process-transaction-logs NTUSER.DAT -p ntuser.dat.log1 -s ntuser.dat.log2 -o recovered_NTUSER.dat

復元後、registry-diff でハイブを比較し、何が変更されたかを確認します

ライブラリとして使用する

レジストリハイブオブジェクトを初期化する

from regipy.registry import RegistryHive

reg = RegistryHive("/Users/martinkorman/Documents/TestEvidence/Registry/Vibranium-NTUSER.DAT")

ルートキーからハイブ全体を再帰的に反復する

for entry in reg.recurse_subkeys(as_json=True):
    print(entry)

キーを反復し、すべてのサブキーとその変更時刻を取得する

for sk in reg.get_key('Software').iter_subkeys():
    print(sk.name, convert_wintime(sk.header.last_modified).isoformat())

Adobe 2019-02-03T22:05:32.525965
AppDataLow 2019-02-03T22:05:32.526047
McAfee 2019-02-03T22:05:32.526140
Microsoft 2019-02-03T22:05:32.526282
Netscape 2019-02-03T22:05:32.526352
ODBC 2019-02-03T22:05:32.526521
Policies 2019-02-03T22:05:32.526592

キーの値を取得する

ツールをダウンロード