Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
DiffCatcher — Инструмент командной строки на Rust, который рекурсивно находит Git-репозитории, фиксирует изменения состояния, создаёт диффы, извлекает элементы кода с полными фрагментами и формирует отчёты, ориентированные на безопасность, для рабочих процессов проверки кода и аудита. | Kitploit
Инструменты/GitHubGitHub/teycir/diffcatcher
Статический анализАнализ уязвимостейАнализ КодаСкриптинг и автоматизацияСбор информацииDevSecOpsУтилиты и фреймворкиОбнаружение СекретовНеправильная КонфигурацияАнализ Журналов
GitHub
4166 месяцев назадЕщё не проверено
teycir/diffcatcher

DiffCatcher

Инструмент командной строки на Rust, который рекурсивно находит Git-репозитории, фиксирует изменения состояния, создаёт диффы, извлекает элементы кода с полными фрагментами и формирует отчёты, ориентированные на безопасность, для рабочих процессов проверки кода и аудита.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Поддержка разработки

Если этот проект помогает вашей работе, поддержите дальнейшее обслуживание и новые функции.

ETH-кошелёк для пожертвований
0x11282eE5726B3370c8B480e321b3B2aA13686582

QR-код для пожертвований Ethereum

Отсканируйте QR-код или скопируйте адрес кошелька выше.

DiffCatcher Logo

Rust License Security

CLI-инструмент на Rust для рекурсивного обнаружения Git-репозиториев, захвата изменений состояния, генерации диффов, извлечения элементов кода с полными фрагментами и создания отчётов, ориентированных на безопасность, для процессов проверки кода и аудита.


🎯 Основные возможности

  • Обнаружение репозиториев: рекурсивное сканирование каталогов на наличие Git-репозиториев с настраиваемыми фильтрами
  • Отслеживание состояния: захват состояния до/после pull с хешами коммитов, сообщениями и обнаружением "грязных" репозиториев
  • Генерация диффов: автоматическое создание диффов N vs N-1 и исторических диффов с манифестами файлов
  • Извлечение элементов: разбор диффов для идентификации функций, структур, классов, импортов и других элементов для 10+ языков
  • Фрагменты кода: извлечение полного кода до/после с определением границ и контекстными окнами
  • Маркировка безопасности: 18 встроенных шаблонов безопасности (криптография, аутентификация, секреты, SQL-инъекции, XSS и т.д.)
  • Многоформатные отчёты: выходные данные JSON, Markdown, текст и SARIF с межрепозиторным обзором безопасности
  • Режим сравнения веток: дифф любых двух ссылок (веток, тегов, коммитов) в одном репозитории — идеально для ревью пул-реквестов
  • Производительность: параллельная обработка с индикаторами прогресса, LRU-кэширование и инкрементальный режим

Почему не просто bash?

Однострочник вроде ls | while read line; do git -C "$line" diff HEAD~1 HEAD || true; done показывает только сырые диффы. DiffCatcher добавляет рекурсивное обнаружение, извлечение элементов кода, обнаружение шаблонов безопасности, вывод SARIF для CI/CD, параллельную обработку и межрепозиторную агрегацию безопасности. См. полное сравнение ниже.

📋 Содержание

  • Установка
  • Быстрый старт
  • Использование
    • Базовое сканирование
    • Режимы pull
    • Параметры извлечения
    • Маркировка безопасности
    • Файл конфигурации
    • Система плагинов
    • Режим сравнения веток (ревью 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

# Выполнить pull и сгенерировать отчёт по безопасности
diffcatcher ~/projects --pull -o ./report

# Сравнить две ветки в одном репозитории (режим ревью PR)
diffcatcher ./my-repo --diff main..feature/auth -o ./pr-report

# Сгенерировать вывод SARIF для GitHub Code Scanning
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

Режимы pull

# Только fetch (по умолчанию — без изменений рабочего дерева)
diffcatcher ~/projects

# Фактически выполнить pull изменений
diffcatcher ~/projects --pull

# Принудительный 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"]

Флаги командной строки по-прежнему переопределяют значения конфигурации, если явно заданы.

Система плагинов

DiffCatcher поддерживает два типа плагинов:

  • Плагины шаблонов безопасности через --security-plugin-file <FILE> (повторяется)
  • Плагины извлечения через --extractor-plugin-file <FILE> (повторяется)

Формат плагина безопасности соответствует JSON --security-tags-file (version, mode, tags).

Формат плагина извлечения:

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

Режим сравнения веток (ревью PR)

# Сравнить две ветки в одном репозитории
diffcatcher ./my-repo --diff main..feature/auth

# Сравнить конкретные коммиты
diffcatcher ./my-repo --diff abc123..def456

# Сравнить с выводом SARIF для интеграции с CI
diffcatcher ./my-repo --diff origin/main..HEAD --summary-format sarif -o ./pr-report

Флаг --diff BASE..HEAD пропускает обнаружение репозитория и fetch/pull — он напрямую сравнивает две ссылки (ветки, теги или SHA коммитов) и запускает полный конвейер извлечения + маркировки безопасности на результате.

Вывод SARIF

# Генерация SARIF вместе с другими форматами
diffcatcher ~/projects --summary-format sarif,json,md

# Только SARIF для загрузки в CI/CD
diffcatcher ~/projects --summary-format sarif -o ./report
Скачать инструмент