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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
DiffCatcher — Gitリポジトリを再帰的に検出し、状態変更をキャプチャし、差分を生成し、完全なスニペットを含むコード要素を抽出し、コードレビューと監査ワークフロー向けのセキュリティ重視レポートを作成するRust製CLIツールです。 | Kitploit
ツール/GitHubGitHub/teycir/diffcatcher
静的分析脆弱性分析コード分析スクリプトと自動化情報収集DevSecOpsユーティリティとフレームワークシークレット検出設定ミスログ分析
GitHubteycir/diffcatcher

DiffCatcher

4166ヶ月前未レビュー

Gitリポジトリを再帰的に検出し、状態変更をキャプチャし、差分を生成し、完全なスニペットを含むコード要素を抽出し、コードレビューと監査ワークフロー向けのセキュリティ重視レポートを作成するRust製CLIツールです。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

開発支援

このプロジェクトがあなたの仕事に役立っているなら、継続的なメンテナンスと新機能の開発を支援してください。

ETH 寄付ウォレット
0x11282eE5726B3370c8B480e321b3B2aA13686582

イーサリアム寄付用QRコード

上記のQRコードをスキャンするか、ウォレットアドレスをコピーしてください。

DiffCatcher ロゴ

Rust License Security

Rust製CLIツール。Gitリポジトリを再帰的に検出し、状態変更をキャプチャ、差分を生成、コード要素を完全スニペット付きで抽出、コードレビューや監査ワークフロー向けのセキュリティ重視レポートを出力します。


🎯 主な機能

  • リポジトリ検出: 設定可能なフィルタでディレクトリを再帰的にスキャンしGitリポジトリを発見
  • 状態追跡: プル前後の状態をコミットハッシュ、メッセージ、ダーティ検出と共にキャプチャ
  • 差分生成: N vs N-1および過去差分の自動生成、ファイルマニフェスト付き
  • 要素抽出: 10以上の言語に対応し、関数、構造体、クラス、インポートなどを差分から解析
  • コードスニペット: 境界検出とコンテキストウィンドウで変更前後の完全なコードを抽出
  • セキュリティタグ付け: 18の組み込みセキュリティパターン(暗号、認証、秘密情報、SQLインジェクション、XSSなど)
  • マルチフォーマットレポート: JSON、Markdown、テキスト、SARIF出力、リポジトリ横断のセキュリティ概要
  • ブランチ差分モード: 単一リポジトリ内の任意の2つの参照(ブランチ、タグ、コミット)を差分 — PRレビューに最適
  • パフォーマンス: プログレスバー、LRUキャッシュ、インクリメンタルモードによる並列処理

なぜ単にbashを使わないのか?

ls | while read line; do git -C "$line" diff HEAD~1 HEAD || true; done のようなワンライナーは生の差分しか表示しません。 DiffCatcherは再帰的検出、コード要素抽出、セキュリティパターン検出、 CI/CD向けSARIF出力、並列処理、リポジトリ横断のセキュリティ集約を追加します。 詳細な比較は以下のbash比較を参照してください。

📋 目次

  • インストール
  • クイックスタート
  • 使い方
    • 基本スキャン
    • プルモード
    • 抽出オプション
    • セキュリティタグ付け
    • 設定ファイル
    • プラグインシステム
    • ブランチ差分モード(PRレビュー)
    • SARIF出力
    • 高度な機能
  • レポート構造
  • 設定
  • アーキテクチャ
  • テスト
  • ドキュメント
  • 貢献

🚀 インストール

ソースから

git clone https://github.com/Teycir/DiffCatcher.git
cd DiffCatcher
cargo build --release
./target/release/diffcatcher --help

必要条件

  • Rust 1.70以上
  • Git 2.0以上

⚡ クイックスタート

# ディレクトリ内の全リポジトリをスキャン(fetchのみ、変更なし)
diffcatcher ~/projects

# プル更新してセキュリティレポートを生成
diffcatcher ~/projects --pull -o ./report

# 単一リポジトリ内の2つのブランチを差分(PRレビューモード)
diffcatcher ./my-repo --diff main..feature/auth -o ./pr-report

# GitHub Code Scanning向けSARIF出力を生成
diffcatcher ~/projects --summary-format sarif,json -o ./report

# ドライラン:何がスキャンされるか確認
diffcatcher ~/projects --dry-run

# 8並列ワーカーで高速スキャン
diffcatcher ~/projects -j 8 --quiet

📖 使い方

基本スキャン

# デフォルト設定でスキャン(fetchのみ)
diffcatcher <ROOT_DIR>

# カスタム出力ディレクトリ
diffcatcher ~/projects -o ./my-report

# ネストされたリポジトリを含め、シンボリックリンクを追跡
diffcatcher ~/projects --nested --follow-symlinks

# 隠しディレクトリをスキップ
diffcatcher ~/projects --skip-hidden

プルモード

# Fetchのみ(デフォルト、ワーキングツリーは変更なし)
diffcatcher ~/projects

# 実際にプルを実行
diffcatcher ~/projects --pull

# ダーティリポジトリでstash/popを強制プル
diffcatcher ~/projects --pull --force-pull

# rebase戦略を使用
diffcatcher ~/projects --pull --pull-strategy rebase

# fetch/pullを完全にスキップ(過去差分のみ)
diffcatcher ~/projects --no-pull

抽出オプション

# 要素抽出をスキップ(生の差分のみ)
diffcatcher ~/projects --no-summary-extraction

# 要素は抽出するがコードスニペットはスキップ
diffcatcher ~/projects --no-snippets

# スニペットのコンテキストと制限を調整
diffcatcher ~/projects --snippet-context 10 --max-snippet-lines 300

# 差分あたりの要素数を制限
diffcatcher ~/projects --max-elements 1000

セキュリティタグ付け

# セキュリティタグ付けをスキップ
diffcatcher ~/projects --no-security-tags

# テストファイルもセキュリティ分析に含める
diffcatcher ~/projects --include-test-security

# カスタムセキュリティパターンを使用
diffcatcher ~/projects --security-tags-file ./custom-patterns.json

設定ファイル

DiffCatcherはプロジェクトローカルの設定を自動読み込みします:

  • <ROOT_DIR>/.diffcatcher.toml (デフォルト)
  • --config <FILE> でカスタムファイル
  • --no-config で無効化

例:

output = "reports-local"
no_pull = true
history_depth = 2
summary_formats = ["json", "txt"]
no_security_tags = false

[plugins]
security_pattern_files = ["plugins/security-extra.json"]
extractor_files = ["plugins/extractors.json"]

CLIフラグは明示的に設定された場合、設定値を上書きします。

プラグインシステム

DiffCatcherは2種類のプラグインをサポート:

  • セキュリティパターンプラグイン: --security-plugin-file <FILE> (繰り返し可)
  • 抽出プラグイン: --extractor-plugin-file <FILE> (繰り返し可)

セキュリティプラグインの形式は --security-tags-file JSON (version, mode, tags) と同様です。

抽出プラグインの形式:

{
  "version": 1,
  "extractors": [
    {
      "name": "policy-rule",
      "kind": "Config",
      "regex": "^policy\\s+([A-Za-z_][A-Za-z0-9_]*)"
    }
  ]
}

ブランチ差分モード(PRレビュー)

# 単一リポジトリ内の2つのブランチを差分
diffcatcher ./my-repo --diff main..feature/auth

# 特定のコミットを差分
diffcatcher ./my-repo --diff abc123..def456

# CI統合用SARIF出力で差分
diffcatcher ./my-repo --diff origin/main..HEAD --summary-format sarif -o ./pr-report

--diff BASE..HEAD フラグはリポジトリ検出とfetch/pullをスキップし、直接2つの参照(ブランチ、タグ、またはコミットSHA)を差分し、結果に対して完全な抽出+セキュリティタグ付けパイプラインを実行します。

SARIF出力

# 他の形式と一緒にSARIFを生成
diffcatcher ~/projects --summary-format sarif,json,md

# CI/CDアップロード用にSARIFのみ
diffcatcher ~/projects --summary-format sarif -o ./report

--summary-format に sarif が含まれている場合、レポートルートに results.sarif ファイルが書き込まれます。このファイルは SARIF 2.1.0 標準に従い、GitHub Code Scanning、VS Code SARIF Viewer、Azure DevOps、その他のSARIF互換ツールと統合できます。

高度な機能

# インクリメンタルモード(変更のないリポジトリをスキップ)
diffcatcher ~/projects --incremental -o ./report

# ブランチパターンでフィルタ
diffcatcher ~/projects --branch-filter "main"

# 履歴深度を調整
diffcatcher ~/projects --history-depth 5

# CI/CD用JSON出力
diffcatcher ~/projects --quiet --json > result.json

# 発見したパスの詳細出力
diffcatcher ~/projects --verbose

📁 レポート構造

<report_dir>/
├── summary.json                    # 全体サマリー
├── summary.md                      # Markdownサマリー
├── results.sarif                   # SARIF 2.1.0出力 (--summary-format sarif 時)
├── security_overview.json          # リポジトリ横断セキュリティ集約
├── security_overview.md
├── <repo-name>/
│   ├── status.json                 # リポジトリ状態
│   ├── pull_log.txt
│   └── diffs/
│       ├── diff_N_vs_N-1.patch     # 生の統合差分
│       ├── changes_N_vs_N-1.txt    # ファイルマニフェスト
│       ├── summary_N_vs_N-1.json   # 要素抽出
│       ├── summary_N_vs_N-1.md
│       └── snippets/
│           ├── 001_validate_token_ADDED.rs
│           ├── 002_check_permissions_BEFORE.rs
│           ├── 002_check_permissions_AFTER.rs
│           └── 002_check_permissions.diff
└── ...

⚙️ 設定

CLIフラグ

フラグデフォルト説明
-o, --output./reports/<timestamp>レポート出力ディレクトリ
-j, --parallel4同時リポジトリ処理数
-t, --timeout120Git操作のタイムアウト(秒)
-d, --history-depth2差分対象の過去コミット数
--snippet-context5変更前後のコンテキスト行数
--max-snippet-lines200スニペットあたりの最大行数
--max-elements500差分あたりの最大要素数
--diff—単一リポジトリ内の2つの参照を差分 (BASE..HEAD)
--summary-formatjson,md出力形式: json, md, txt, sarif

全オプションは diffcatcher --help を参照してください。

カスタムセキュリティパターン

カスタムパターンを定義したJSONファイルを作成:

{
  "version": 1,
  "mode": "extend",
  "tags": [
    {
      "tag": "pii-handling",
      "description": "PIIデータ処理",
      "severity": "High",
      "patterns": ["ssn", "social_security", "passport"]
    }
  ]
}

--security-tags-file ./patterns.json で使用。

🏗️ アーキテクチャ

ツールをダウンロード