Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DiffCatcher — أداة سطر أوامر بلغة Rust تكتشف مستودعات Git بشكل متكرر، وتلتقط تغييرات الحالة، وتُولد الفروقات، وتستخرج عناصر الكود مع مقتطفات كاملة، وتُنتج تقارير تركز على الأمان لسير عمل مراجعة الكود والتدقيق. | Kitploit
أدوات/GitHubGitHub/teycir/diffcatcher
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالبرمجة النصية والأتمتةجمع المعلوماتDevSecOpsالأدوات والمكوناتكشف الأسرارسوء التكوينتحليل السجلات
GitHubteycir/diffcatcher

DiffCatcher

4منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

أداة سطر أوامر بلغة Rust تكتشف مستودعات Git بشكل متكرر، وتلتقط تغييرات الحالة، وتُولد الفروقات، وتستخرج عناصر الكود مع مقتطفات كاملة، وتُنتج تقارير تركز على الأمان لسير عمل مراجعة الكود والتدقيق.

عرض المستودع

دعم التطوير

إذا كان هذا المشروع يساعدك في عملك، فادعم الصيانة المستمرة والميزات الجديدة.

محفظة التبرع (ETH)
0x11282eE5726B3370c8B480e321b3B2aA13686582

رمز الاستجابة السريعة للتبرع بالإيثريوم

امسح رمز QR أو انسخ عنوان المحفظة أعلاه.

DiffCatcher Logo

Rust License Security

أداة سطر أوامر بلغة Rust تكتشف مستودعات Git بشكل متكرر، وتلتقط تغييرات الحالة، وتنشئ الفروق، وتستخرج عناصر الكود مع مقتطفات كاملة، وتنتج تقارير موجهة للأمان لسير عمل مراجعة الكود والتدقيق.


🎯 الميزات الأساسية

  • اكتشاف المستودعات: مسح متكرر للدلائل للبحث عن مستودعات Git مع مرشحات قابلة للتعديل
  • تتبع الحالة: التقاط الحالة قبل/بعد السحب مع تجزئات الالتزام والرسائل وكشف التعديلات غير المرسلة
  • إنشاء الفروق: إنشاء فرق تلقائي بين الإصدار الحالي والسابق وإنشاء فروق تاريخية مع قوائم الملفات
  • استخراج العناصر: تحليل الفروق لتحديد الدوال، الهياكل، الكلاسات، الاستيرادات، والمزيد عبر أكثر من 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 للتكامل المستمر/النشر المستمر، ومعالجة متوازية، وتجميع أمني عبر المستودعات. انظر المقارنة الكاملة أدناه.

📋 جدول المحتويات

  • التثبيت
  • بداية سريعة
  • الاستخدام
    • المسح الأساسي
    • أوضاع السحب
    • خيارات الاستخراج
    • وضع العلامات الأمنية
    • ملف التكوين
    • نظام الإضافات
    • وضع الفرق بين الفروع (مراجعة طلب السحب)
    • مخرجات SARIF
    • الميزات المتقدمة
  • هيكل التقرير
  • التكوين
  • الهيكل المعماري
  • الاختبار
  • التوثيق
  • المساهمة

🚀 التثبيت

من المصدر

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

المتطلبات

  • Rust 1.70+
  • Git 2.0+

⚡ بداية سريعة

root@kitploit:~
# Scan all repos in a directory (fetch-only, no modifications)
diffcatcher ~/projects

# Pull updates and generate security report
diffcatcher ~/projects --pull -o ./report

# Diff two branches in a single repo (PR review mode)
diffcatcher ./my-repo --diff main..feature/auth -o ./pr-report

# Generate SARIF output for GitHub Code Scanning
diffcatcher ~/projects --summary-format sarif,json -o ./report

# Dry run to see what would be scanned
diffcatcher ~/projects --dry-run

# Fast scan with 8 parallel workers
diffcatcher ~/projects -j 8 --quiet

📖 الاستخدام

المسح الأساسي

root@kitploit:~
# Scan with default settings (fetch-only)
diffcatcher <ROOT_DIR>

# Custom output directory
diffcatcher ~/projects -o ./my-report

# Include nested repos and follow symlinks
diffcatcher ~/projects --nested --follow-symlinks

# Skip hidden directories
diffcatcher ~/projects --skip-hidden

أوضاع السحب

root@kitploit:~
# Fetch only (default - no working tree changes)
diffcatcher ~/projects

# Actually pull changes
diffcatcher ~/projects --pull

# Force pull with stash/pop for dirty repos
diffcatcher ~/projects --pull --force-pull

# Use rebase strategy
diffcatcher ~/projects --pull --pull-strategy rebase

# Skip fetch/pull entirely (historical diffs only)
diffcatcher ~/projects --no-pull

خيارات الاستخراج

root@kitploit:~
# Skip element extraction (raw diffs only)
diffcatcher ~/projects --no-summary-extraction

# Extract elements but skip code snippets
diffcatcher ~/projects --no-snippets

# Adjust snippet context and limits
diffcatcher ~/projects --snippet-context 10 --max-snippet-lines 300

# Limit elements per diff
diffcatcher ~/projects --max-elements 1000

وضع العلامات الأمنية

root@kitploit:~
# Skip security tagging
diffcatcher ~/projects --no-security-tags

# Include test files in security analysis
diffcatcher ~/projects --include-test-security

# Use custom security patterns
diffcatcher ~/projects --security-tags-file ./custom-patterns.json

ملف التكوين

يمكن لـ DiffCatcher تحميل التكوين المحلي للمشروع تلقائيًا من:

  • <ROOT_DIR>/.diffcatcher.toml (افتراضي)
  • ملف مخصص عبر --config <FILE>
  • تعطيله بـ --no-config

مثال:

root@kitploit:~
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).

تنسيق إضافة الاستخراج:

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

وضع الفرق بين الفروع (مراجعة طلب السحب)

root@kitploit:~
# Diff two branches in a single repo
diffcatcher ./my-repo --diff main..feature/auth

# Diff specific commits
diffcatcher ./my-repo --diff abc123..def456

# Diff with SARIF output for CI integration
diffcatcher ./my-repo --diff origin/main..HEAD --summary-format sarif -o ./pr-report

العلم --diff BASE..HEAD يتجاوز اكتشاف المستودع وسحب البيانات — فهو يقارن مباشرة بين مرجعين (فروع، علامات، أو تجزئات التزامات) ويشغل مسار الاستخراج الكامل + وضع العلامات الأمنية على النتيجة.

مخرجات SARIF

root@kitploit:~
# Generate SARIF alongside other formats
diffcatcher ~/projects --summary-format sarif,json,md

# SARIF-only for CI/CD upload
diffcatcher ~/projects --summary-format sarif -o ./report

عند تضمين sarif في --summary-format، يتم كتابة ملف results.sarif في جذر التقرير. يتبع هذا الملف معيار SARIF 2.1.0 ويتكامل مع فحص كود GitHub، وعارض SARIF لـ VS Code، وAzure DevOps، وأدوات أخرى متوافقة مع SARIF.

الميزات المتقدمة

root@kitploit:~
# Incremental mode (skip unchanged repos)
diffcatcher ~/projects --incremental -o ./report

# Filter by branch pattern
diffcatcher ~/projects --branch-filter "main"

# Adjust history depth
diffcatcher ~/projects --history-depth 5

# JSON output for CI/CD
diffcatcher ~/projects --quiet --json > result.json

# Verbose output with discovered paths
diffcatcher ~/projects --verbose

📁 هيكل التقرير

root@kitploit:~
<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
└── ...

⚙️ التكوين

أعلام سطر الأوامر

انظر diffcatcher --help لجميع الخيارات.

الأنماط الأمنية المخصصة

أنشئ ملف JSON بأنماط مخصصة:

root@kitploit:~
{
  "version": 1,
  "mode": "extend",
  "tags": [
    {
      "tag": "pii-handling",
      "description": "معالجة بيانات PII",
      "severity": "High",
      "patterns": ["ssn", "social_security", "passport"]
    }
  ]
}

استخدم مع --security-tags-file ./patterns.json

🏗️ الهيكل المعماري

root@kitploit:~
src/
├── cli.rs              # تحليل الوسائط
├── scanner.rs          # اكتشاف المستودعات
├── git/                # عمليات Git
│   ├── commands.rs     # أغلفة Git
│   ├── state.rs        # التقاط الحالة
│   ├── diff.rs         # إنشاء الفروق
│   └── file_retrieval.rs
├── extraction/         # استخراج العناصر
│   ├── parser.rs       # محلل الفروق الموحدة
│   ├── elements.rs     # اكتشاف العناصر
│   ├── snippets.rs     # استخراج مقتطفات الكود
│   ├── boundary.rs     # تتبع الأقواس/المسافات البادئة
│   └── languages/      # أنماط خاصة باللغة
├── security/           # وضع العلامات الأمنية
│   ├── tagger.rs       # مطابقة الأنماط
│   ├── patterns.rs     # الأنماط المدمجة
│   └── overview.rs     # التجميع عبر المستودعات
└── report/             # إنشاء التقارير
    ├── writer.rs       # هيكل الدليل
    ├── json.rs         # تسلسل JSON
    ├── sarif.rs        # مخرجات SARIF 2.1.0
    ├── markdown.rs     # تنسيق Markdown
    └── snippet_writer.rs

Bash Comparison

سطر bash بسيط يمكنه سرد الفروق:

root@kitploit:~
ls | while read line; do git -C "$line" diff HEAD~1 HEAD || true; done

هذا يعمل للفحوصات السريعة، لكن DiffCatcher يضيف قدرات كبيرة:

سطر bash الواحد هو حوالي 100 بايت. DiffCatcher هي أداة تدقيق موجهة للأمان مع استخراج كامل لعناصر الكود.

🧪 الاختبار

root@kitploit:~
# Run all tests
cargo test

# Run specific test suite
cargo test security_tagger

# Run with output
cargo test -- --nocapture

تغطية الاختبار تشمل:

  • اختبارات وحدة لاستخراج العناصر، وضع العلامات الأمنية، اكتشاف الحدود
  • اختبارات تكامل لالتقاط الحالة، إنشاء الفروق، التقارير
  • اختبارات الملفات الذهبية لدقة الاستخراج
  • اختبارات الحالات الحدودية (HEAD المنفصل، المستودعات الجرداء، الالتزام الواحد)

مقاييس الأداء

root@kitploit:~
# Compile benchmark binaries
cargo bench --no-run

# Run benchmark harness
cargo bench --bench core_bench

مصدر المقاييس موجود في benches/core_bench.rs ويتتبع إنتاجية المحلل/الاستخراج.

التكامل المستمر/النشر المستمر

تتضمن سير عمل GitHub Actions:

  • .github/workflows/ci.yml: فحص التنسيق، clippy، الاختبارات، بناء المقاييس
  • .github/workflows/release.yml: تغليف الإصدار بناءً على العلامات ونشر الإصدار على GitHub

📚 التوثيق

توثيق المشروع

  • Plan.md - المواصفات الكاملة (v1.2)
  • Roadmap.md - خريطة الطريق والتقدم
  • مرجع الأنماط الأمنية (انظر src/security/patterns.rs)

توثيق الكود

تحتوي جميع الوحدات على توثيق شامل مضمّن. الوحدات الرئيسية:

  • src/extraction/parser.rs - محلل الفروق الموحدة مع استخراج الكتل
  • src/extraction/elements.rs - اكتشاف عناصر الكود حسب اللغة
  • src/extraction/snippets.rs - استخراج مقتطفات كود كاملة مع اكتشاف الحدود
  • src/security/tagger.rs - محرك مطابقة الأنماط الأمنية
  • src/git/commands.rs - أغلفة عمليات Git

إنشاء توثيق API الكامل:

root@kitploit:~
cargo doc --open

🏷️ العلامات

#rust #git #security #code-review #diff-analysis #static-analysis #devops #cli-tool #audit #vulnerability-detection #code-quality #snippet-extraction #parallel-processing #security-scanning

🤝 المساهمة

المساهمات مرحب بها! من فضلك:

  1. قم بعمل fork للمستودع
  2. أنشئ فرع ميزة
  3. أضف اختبارات للوظائف الجديدة
  4. تأكد من اجتياز cargo test
  5. قدم طلب سحب

📄 الرخصة

رخصة MIT - انظر ملف LICENSE للتفاصيل

📧 الاتصال

  • المؤلف: Teycir Ben Soltane
  • البريد الإلكتروني: [email protected]
  • الموقع: teycirbensoltane.tn

🔗 الروابط

  • مستودع GitHub
  • متعقب المشكلات
  • سجل التغييرات
تنزيل الأداة
العلمالقيمة الافتراضيةالوصف
-o, --output./reports/<timestamp>دليل إخراج التقرير
-j, --parallel4المعالجة المتزامنة للمستودعات
-t, --timeout120مهلة عمليات Git (بالثواني)
-d, --history-depth2الالتزامات التاريخية للمقارنة
--snippet-context5أسطر السياق حول التغييرات
--max-snippet-lines200أقصى عدد أسطر لكل مقتطف
--max-elements500أقصى عدد عناصر لكل فرق
--diff—مقارنة مرجعين في مستودع واحد (BASE..HEAD)
--summary-formatjson,mdتنسيقات الإخراج: json، md، txt، sarif
القدرةسطر Bash واحدDiffCatcher
الاكتشاف المتكررعناصر المستوى الأعلى فقطمستودعات متداخلة، روابط رمزية، عوامل تصفية
تتبع الحالةلا شيءتجزئات الالتزام، كشف التعديلات، سجلات السحب
فهم الكودفرق خام فقطاستخراج الدوال/الهياكل/الكلاسات عبر أكثر من 10 لغات
مقتطفات الكودلا شيءنصوص كاملة قبل/بعد مع نوافذ سياق
التحليل الأمنيلا شيء18 نمطًا مدمجًا (المصادقة، التشفير، الأسرار، حقن SQL، XSS)
تنسيقات الإخراجطرفية فقطJSON، Markdown، SARIF (فحص كود GitHub)
عرض عبر المستودعاتلكل مستودع فقطتقرير أمني مجمع عبر جميع المستودعات
الأداءتسلسليعمال متوازيون، تخزين مؤقت LRU، وضع تدريجي
التكامل مع CI/CDلا شيءرفع SARIF إلى GitHub/Azure DevOps
معالجة الأخطاءكبت || trueمعالجة أخطاء مناسبة مع تسجيل مفصل
معالجة المساراتيفشل مع المسافاتيعالج جميع أسماء المسارات بشكل صحيح
السياق التاريخيHEAD~1 ثابتعمق قابل للتعديل، تتبع الحالة