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

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

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

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

دليل الأدوات

الفئات

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

DiffCatcher

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

الأكثر شعبية

عرض الكل →

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

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

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

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

أداة سطر أوامر بلغة 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
    └── ...
    

    ⚙️ التكوين

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

    العلمالقيمة الافتراضيةالوصف
    -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

    انظر 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 واحدDiffCatcher
    الاكتشاف المتكررعناصر المستوى الأعلى فقطمستودعات متداخلة، روابط رمزية، عوامل تصفية
    تتبع الحالةلا شيءتجزئات الالتزام، كشف التعديلات، سجلات السحب
    فهم الكودفرق خام فقطاستخراج الدوال/الهياكل/الكلاسات عبر أكثر من 10 لغات
    مقتطفات الكودلا شيءنصوص كاملة قبل/بعد مع نوافذ سياق
    التحليل الأمنيلا شيء18 نمطًا مدمجًا (المصادقة، التشفير، الأسرار، حقن SQL، XSS)
    تنسيقات الإخراجطرفية فقطJSON، Markdown، SARIF (فحص كود GitHub)
    عرض عبر المستودعاتلكل مستودع فقطتقرير أمني مجمع عبر جميع المستودعات
    الأداءتسلسليعمال متوازيون، تخزين مؤقت LRU، وضع تدريجي
    التكامل مع CI/CDلا شيءرفع SARIF إلى GitHub/Azure DevOps
    معالجة الأخطاءكبت || trueمعالجة أخطاء مناسبة مع تسجيل مفصل
    معالجة المساراتيفشل مع المسافاتيعالج جميع أسماء المسارات بشكل صحيح
    السياق التاريخيHEAD~1 ثابتعمق قابل للتعديل، تتبع الحالة

    سطر 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
    • متعقب المشكلات
    • سجل التغييرات
    تنزيل الأداة