Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DiffCatcher — Un outil CLI Rust qui découvre récursivement les dépôts Git, capture les changements d'état, génère des diffs, extrait des éléments de code avec des extraits complets, et produit des rapports axés sur la sécurité pour les workflows de revue de code et d'audit. | Kitploit
Outils/GitHubGitHub/teycir/diffcatcher
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeScripting et AutomatisationCollecte d'InformationsDevSecOpsUtilitaires et FrameworksDétection de SecretsMauvaise ConfigurationAnalyse de Journaux
GitHub
428il y a 6 moisPas encore vérifié
teycir/diffcatcher

DiffCatcher

Un outil CLI Rust qui découvre récursivement les dépôts Git, capture les changements d'état, génère des diffs, extrait des éléments de code avec des extraits complets, et produit des rapports axés sur la sécurité pour les workflows de revue de code et d'audit.

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Soutenir le développement

Si ce projet vous aide dans votre travail, soutenez sa maintenance continue et ses nouvelles fonctionnalités.

Portefeuille de dons ETH
0x11282eE5726B3370c8B480e321b3B2aA13686582

Code QR de don Ethereum

Scannez le code QR ou copiez l'adresse du portefeuille ci-dessus.

Logo DiffCatcher

Rust License Security

Un outil CLI en Rust qui découvre récursivement les dépôts Git, capture les changements d'état, génère des diffs, extrait des éléments de code avec des extraits complets et produit des rapports axés sur la sécurité pour les workflows de révision de code et d'audit.


🎯 Fonctionnalités clés

  • Découverte de dépôts : Parcourir récursivement les répertoires à la recherche de dépôts Git avec des filtres configurables
  • Suivi d'état : Capturer l'état avant/après un pull avec les hashs de commit, les messages et la détection de répertoire modifié (dirty)
  • Génération de diffs : Création automatique de diffs N vs N-1 et historiques avec des manifestes de fichiers
  • Extraction d'éléments : Analyser les diffs pour identifier les fonctions, structures, classes, importations, etc. dans plus de 10 langages
  • Extraits de code : Extraire le code complet avant/après avec détection des limites et fenêtres de contexte
  • Marquage de sécurité : 18 motifs de sécurité intégrés (crypto, auth, secrets, injection SQL, XSS, etc.)
  • Rapports multi-formats : Sorties JSON, Markdown, texte et SARIF avec une vue d'ensemble de la sécurité inter-dépôts
  • Mode Diff de branches : Différencier deux références (branches, tags, commits) dans un seul dépôt — idéal pour les revues de PR
  • Performances : Traitement parallèle avec barres de progression, cache LRU et mode incrémental

Pourquoi ne pas simplement utiliser bash ?

Une ligne de commande comme ls | while read line; do git -C "$line" diff HEAD~1 HEAD || true; done n'affiche que les diffs bruts. DiffCatcher ajoute la découverte récursive, l'extraction d'éléments de code, la détection de motifs de sécurité, la sortie SARIF pour CI/CD, le traitement parallèle et l'agrégation de sécurité inter-dépôts. Voir la comparaison complète ci-dessous.

📋 Table des matières

  • Installation
  • Démarrage rapide
  • Utilisation
    • Analyse de base
    • Modes de pull
    • Options d'extraction
    • Marquage de sécurité
    • Fichier de configuration
    • Système de plugins
    • Mode Diff de branches (Revue de PR)
    • Sortie SARIF
    • Fonctionnalités avancées
  • Structure du rapport
  • Configuration
  • Architecture
  • Tests
  • Documentation
  • Contribuer

🚀 Installation

Depuis les sources

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

Prérequis

  • Rust 1.70+
  • Git 2.0+

⚡ Démarrage rapide

# Analyser tous les dépôts dans un répertoire (fetch uniquement, aucune modification)
diffcatcher ~/projects

# Récupérer les mises à jour et générer un rapport de sécurité
diffcatcher ~/projects --pull -o ./report

# Différencier deux branches dans un seul dépôt (mode revue de PR)
diffcatcher ./my-repo --diff main..feature/auth -o ./pr-report

# Générer une sortie SARIF pour GitHub Code Scanning
diffcatcher ~/projects --summary-format sarif,json -o ./report

# Simulation pour voir ce qui serait analysé
diffcatcher ~/projects --dry-run

# Analyse rapide avec 8 workers en parallèle
diffcatcher ~/projects -j 8 --quiet

📖 Utilisation

Analyse de base

# Analyser avec les paramètres par défaut (fetch uniquement)
diffcatcher <ROOT_DIR>

# Répertoire de sortie personnalisé
diffcatcher ~/projects -o ./my-report

# Inclure les dépôts imbriqués et suivre les liens symboliques
diffcatcher ~/projects --nested --follow-symlinks

# Ignorer les répertoires cachés
diffcatcher ~/projects --skip-hidden

Modes de pull

# Fetch uniquement (par défaut - aucune modification de l'arbre de travail)
diffcatcher ~/projects

# Effectuer effectivement un pull des changements
diffcatcher ~/projects --pull

# Forcer le pull avec stash/pop pour les dépôts modifiés
diffcatcher ~/projects --pull --force-pull

# Utiliser la stratégie rebase
diffcatcher ~/projects --pull --pull-strategy rebase

# Ignorer complètement le fetch/pull (diffs historiques uniquement)
diffcatcher ~/projects --no-pull

Options d'extraction

# Ignorer l'extraction d'éléments (diffs bruts uniquement)
diffcatcher ~/projects --no-summary-extraction

# Extraire les éléments mais ignorer les extraits de code
diffcatcher ~/projects --no-snippets

# Ajuster le contexte et les limites des extraits
diffcatcher ~/projects --snippet-context 10 --max-snippet-lines 300

# Limiter les éléments par diff
diffcatcher ~/projects --max-elements 1000

Marquage de sécurité

# Ignorer le marquage de sécurité
diffcatcher ~/projects --no-security-tags

# Inclure les fichiers de test dans l'analyse de sécurité
diffcatcher ~/projects --include-test-security

# Utiliser des motifs de sécurité personnalisés
diffcatcher ~/projects --security-tags-file ./custom-patterns.json

Fichier de configuration

DiffCatcher peut charger automatiquement une configuration locale au projet depuis :

  • <ROOT_DIR>/.diffcatcher.toml (par défaut)
  • un fichier personnalisé via --config <FILE>
  • désactivé avec --no-config

Exemple :

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"]

Les options de ligne de commande ont toujours priorité sur les valeurs du fichier de configuration lorsqu'elles sont explicitement définies.

Système de plugins

DiffCatcher prend en charge deux types de plugins :

  • Plugins de motifs de sécurité via --security-plugin-file <FILE> (répétable)
  • Plugins d'extraction via --extractor-plugin-file <FILE> (répétable)

Le format du plugin de sécurité correspond au JSON de --security-tags-file (version, mode, tags).

Format du plugin d'extraction :

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

Mode Diff de branches (Revue de PR)

# Différencier deux branches dans un seul dépôt
diffcatcher ./my-repo --diff main..feature/auth

# Différencier des commits spécifiques
diffcatcher ./my-repo --diff abc123..def456

# Différencier avec sortie SARIF pour intégration CI
diffcatcher ./my-repo --diff origin/main..HEAD --summary-format sarif -o ./pr-report
Télécharger l’outil