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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Reversecore_MCP — خادم MCP يركز على الأمن، يمكّن وكلاء الذكاء الاصطناعي من إجراء الهندسة العكسية الآلية، وتحليل البرامج الضارة، والأدلة الرقمية، وأبحاث الثغرات، والاختبار الثابت لأمان التطبيقات (SAST) — مدعومًا بـ Radare2 و YARA و LIEF و Capstone والمزيد. | Kitploit
أدوات/GitHubGitHub/sjkim1127/reversecore_mcp
إدارة مؤشرات الاختراق (IOC)التحليل الثابتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالهندسة العكسيةالاختبار العشوائيتحليل البرمجيات الخبيثةالتحاليل الرقمية الجنائيةتحليل الملفات الثنائيةالاستجابة للحوادث
GitHubsjkim1127/reversecore_mcp
18518منذ 4 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Reversecore_MCP

خادم MCP يركز على الأمن، يمكّن وكلاء الذكاء الاصطناعي من إجراء الهندسة العكسية الآلية، وتحليل البرامج الضارة، والأدلة الرقمية، وأبحاث الثغرات، والاختبار الثابت لأمان التطبيقات (SAST) — مدعومًا بـ Radare2 و YARA و LIEF و Capstone والمزيد.

عرض المستودع
Reversecore MCP

Reversecore MCP

هندسة عكسية وتحليل أمني مدعومان بالذكاء الاصطناعي عبر Model Context Protocol

خادم MCP يمنح المساعدين الذكيين مثل Claude وCursor القدرة على تنفيذ الهندسة العكسية، تحليل البرمجيات الخبيثة، البحث في الثغرات، التحليل الجنائي الرقمي، ومراجعة الكود المصدري من خلال اللغة الطبيعية.


CI/CD Python License: MIT Tests Coverage FastMCP PyPI Docker OpenSSF Scorecard HVTrust

Watch the Demo SafeSkill Verified


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

  • ما هو Reversecore MCP؟
  • البنية المعمارية
  • كتالوج الأدوات (120 أداة)
  • موجهات التحليل الموجّه (22 وضعًا)
  • موارد MCP (11 URI)
  • بدء سريع
  • الاتصال بعميل الذكاء الاصطناعي لديك
  • الإعدادات
  • نموذج الأمان
  • التطوير
  • خط أنابيب CI/CD
  • بنية بناء Docker
  • متطلبات النظام
  • هيكل المشروع
  • معالجة الأخطاء
  • إضافة أدوات جديدة
  • المساهمة
  • التوثيق
  • الترخيص

ما هو Reversecore MCP؟

Reversecore MCP هو خادم Model Context Protocol يغلف 120 أداة تحليل في واجهة واحدة يمكن للمساعدين الذكيين استدعاؤها عبر اللغة الطبيعية.

بدلاً من تعلّم صيغة سطر الأوامر لعشرات الأدوات المختلفة، تصف ما تريده:``` "Decompile the main function of this malware sample, extract all network IOCs, map the behavior to MITRE ATT&CK, and generate a triage report."

root@kitploit:~
يقسّم مساعد الذكاء الاصطناعي هذا إلى استدعاءات أدوات:```
r2_decompile("sample.exe", "main")
  → extract_iocs("sample.exe")
    → add_mitre_technique(technique_id="T1071.001", ...)
      → create_analysis_report(template_type="quick_triage")

تُرجع كل أداة ToolResult منظمًا (إما ToolSuccess أو ToolError) مع بيانات مُنمّطة يمكن للذكاء الاصطناعي التفكير فيها، وربطها في استعلامات متابعة، أو عرضها للمستخدم.

ما الذي تغطيه


البنية المعمارية```

AI Client (Claude / Cursor / any MCP-compatible client) │ MCP Protocol (stdio or HTTP/SSE) ▼ ┌──────────────────────────────────────────────────────┐ │ FastMCP 3.4.4 Server │ │ 120 registered tools · Fully async │ │ Python 3.10–3.12 │ ├────────────────────┬─────────────────────────────────┤ │ Guided Prompts │ Dynamic Resources │ │ (22 analysis │ (11 URI-based: per-binary │ │ modes) │ strings, IOCs, ASM, CFG, …) │ ├────────────────────┴─────────────────────────────────┤ │ Core Infrastructure │ │ Config · Security · Validators · Exceptions (17) │ │ R2 Pool · Metrics · Memory (SQLite) · Task Queue │ │ MITRE Mapper · Evidence Engine · Resilience Layer │ │ Arch Registry (x86/ARM/MIPS/RISC-V/PPC) │ │ Result Cache (SHA256) · Analysis Cache (Redis+SQL) │ │ SAST (Python AST + C/C++ Regex) · Plugin System │ ├──────────────────────────────────────────────────────┤ │ Analysis Engines │ │ Radare2 6.0.4 │ YARA 4.3.1 · LIEF · Capstone │ │ r2ghidra │ CAPA · angr · Qiling │ │ Volatility3 · Scapy│ DIE · Binwalk · Sleuth Kit │ │ pwntools · ROPgadget│ Keystone (assembler) │ └──────────────────────────────────────────────────────┘

root@kitploit:~
### البنية التحتية الأساسية (37 وحدة)

يحتوي دليل `reversecore_mcp/core/` على البنية التحتية المشتركة التي تُبنى عليها جميع الأدوات:

| الوحدة | الغرض |
|---|---|
| `config.py` | إعدادات Pydantic BaseSettings مع 34+ متغير بيئة |
| `security.py` | تعقيم المدخلات والتحقق من وسائط الأوامر |
| `validators.py` | التحقق من مسارات الملفات والثنائيات مع تخفيف TOCTOU وحل الروابط الرمزية (symlinks) |
| `r2_pool.py` | تجمّع اتصالات Radare2 آمن للخيوط بحجم قابل للتكوين |
| `r2_helpers.py` | تحليل مُنظَّم لمخرجات Radare2 |
| `metrics.py` | أوقات التنفيذ لكل أداة وعدد الاستدعاءات ومعدلات الأخطاء وإحصائيات التخزين المؤقت |
| `memory.py` | مخزن ذاكرة ذكاء اصطناعي غير متزامن يعتمد على SQLite لحفظ نتائج التحليل عبر الجلسات |
| `mitre_mapper.py` | محرك تعيين معرّفات تقنيات MITRE ATT&CK |
| `evidence.py` | نظام تصنيف الأدلة: `OBSERVED`، `INFERRED`، `POSSIBLE` |
| `resilience.py` | أنماط مزخرفات (decorators) لإعادة المحاولة وقاطع الدائرة والمهلة الزمنية |
| `task_queue.py` | طابور مهام خلفية عبر Redis + arq |
| `extension_registry.py` | تسجيل الإضافات وإدارة دورة حياتها |
| `arch_registry.py` | تعيين متعدد المعماريات (x86, x86_64, ARM32, ARM64, MIPS, RISC-V, PPC → بنية/بتات/مسجلات r2) |
| `result_cache.py` | مزخرف تخزين نتائج الأدوات مؤقتًا القائم على SHA256 (`@cache_tool_result`) |
| `analysis_cache.py` | تخزين مؤقت متعدد المستويات لفك الترجمة (L1: Redis، L2: SQLite) |
| `result.py` | نماذج Pydantic `ToolSuccess` / `ToolError` |
| `exceptions.py` | 17 صنف استثناءات مع أكواد أخطاء `RCMCP-E*` |
| `decorators.py` | `@log_execution`، `@track_metrics` |
| `error_handling.py` | مزخرف `@handle_tool_errors` |
| `error_formatting.py` | تنسيق مُنظَّم لاستجابات الأخطاء |
| `execution.py` | تنفيذ آمن للعمليات الفرعية (subprocess) مع مهلة زمنية وحدود للمخرجات |
| `command_spec.py` | مواصفات الأوامر لاستدعاءات العمليات الفرعية |
| `loader.py` | محمّل وحدات الأدوات الديناميكي |
| `plugin.py` | الصنف الأساسي للإضافات |
| `extension.py` | الصنف الأساسي للامتدادات |
| `container.py` | دعم التنفيذ عبر الحاويات/الصندوق الرملي (sandbox) |
| `audit.py` | تسجيل التدقيق |
| `binary_cache.py` | التخزين المؤقت للملفات الثنائية |
| `json_utils.py` | تسلسل JSON عبر orjson (أسرع 3-5 مرات من json القياسية) |
| `logging_config.py` | تسجيل مُنظَّم قائم على Loguru |
| `report_generator.py` | محرك عرض التقارير (Markdown، PDF عبر xhtml2pdf) |
| `resource_manager.py` | إدارة دورة حياة موارد MCP |
| `sast/python_ast_scanner.py` | ماسح ثغرات قائم على Python AST |
| `sast/regex_scanner.py` | ماسح ثغرات C/C++ القائم على التعبيرات النمطية (regex) |
| `sast/rule_manager.py` | تحميل قواعد SAST وإدارتها |

---

## كتالوج الأدوات (120 أداة)

كل أداة تُرجع `ToolResult` مُنظَّمًا — إما `ToolSuccess` مع `data` مُنمَّط أو `ToolError` مع كود خطأ `RCMCP-E*`. الأدوات منظمة في 8 إضافات (plugins).

---

### 🔍 إضافة التحليل الثابت (24 أداة)

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 1 | `run_strings` | `strings` CLI | استخراج سلاسل ASCII/Unicode مع حد أدنى قابل للتكوين للطول |
| 2 | `run_binwalk` | Binwalk | فحص عميق للبرامج الثابتة (firmware) بحثًا عن التوقيعات وأنظمة الملفات المضمّنة |
| 3 | `run_binwalk_extract` | Binwalk | استخراج الملفات المضمّنة التي اكتشفها binwalk |
| 4 | `parse_binary_with_lief` | LIEF | تحليل كامل لرؤوس PE/ELF/Mach-O والأقسام والاستيراد/التصدير وTLS |
| 5 | `detect_packer` | DIE | كشف سريع للحزم/المترجمات |
| 6 | `detect_packer_deep` | DIE (`diec`) | تحليل عميق للحزم/الواقيات عبر Detect It Easy |
| 7 | `run_capa` | CAPA (Mandiant FLARE) | كشف القدرات — "تشفير البيانات"، "إنشاء الثبات (persistence)"، إلخ. |
| 8 | `run_capa_quick` | CAPA | فحص سريع للقدرات باستخدام مجموعة فرعية من القواعد |
| 9 | `generate_signature` | Radare2 | توليد توقيعات ثنائية لأغراض التحديد |
| 10 | `generate_yara_rule` | Radare2 + YARA | توليد قواعد كشف YARA من الأنماط الثنائية |
| 11 | `generate_advanced_yara_rule` | Radare2 + YARA | قواعد YARA متقدمة مع مؤشرات سلوكية |
| 12 | `scan_for_versions` | LIEF + strings | فحص الثنائي بحثًا عن سلاسل الإصدارات المضمّنة |
| 13 | `extract_rtti_info` | Radare2 | استخراج RTTI الخاصة بـ C++ (معلومات الأنواع في زمن التشغيل) |
| 14 | `diff_binaries` | Radare2 | مقارنة دلالية (diff) بين نسختين من ملف ثنائي |
| 15 | `analyze_variant_changes` | Radare2 | تحليل التغييرات بين الأشكال المختلفة للثنائي |
| 16 | `match_libraries` | Radare2 | تحديد المكتبات المرتبطة بشكل ثابت عبر بصمة الدوال |
| 17 | `patch_diff_1day` | Radare2 + heuristics | تحليل آلي لفروقات التصحيحات (patch diff) لأبحاث ثغرات اليوم الواحد (1-day) |
| 18 | `analyze_patch_diff_auto` | Radare2 + inference | استنتاج آلي لثغرات التصحيحات |
| 19 | `emulate_binary` | Radare2 ESIL | محاكاة الكود مع تتبع المسجلات/الذاكرة |
| 20 | `generate_fuzzing_harness` | Qiling + AFL++ | توليد حزام تشويش (fuzzing harness) يستهدف دالة محددة |
| 21 | `run_fuzzing_campaign` | AFL++ | تشغيل حملة تشويش (fuzzing) كاملة مع جمع الأعطال |
| 22 | `triage_crash` | GDB | تحليل الأعطال وتقييم قابلية الاستغلال |
| 23 | `verify_path_and_get_args` | angr | تنفيذ رمزي — إثبات إمكانية الوصول إلى المسار وحساب المدخلات الملموسة |
| 24 | `taint_trace` | Radare2 + angr | تحليل تلوث (taint) لتدفق البيانات من المصادر إلى المصارف (sinks) |

---

### 🔐 إضافة تدقيق الكود المصدري (أداة واحدة)

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 25 | `audit_source_code` | AST + Regex | فحص Python AST + فحص C/C++ بالتعبيرات النمطية (regex) بحثًا عن الأنماط الخطيرة |

---

### 🛠️ إضافة الأدوات المساعدة العامة (20 أداة)

**عمليات الملفات (5 أدوات)**

| # | الأداة | الوصف |
|---|---|---|
| 26 | `run_file` | بصمة (fingerprinting) لنوع الملف والمعمارية والمترجم |
| 27 | `copy_to_workspace` | نسخ ملف إلى مساحة عمل التحليل |
| 28 | `create_directory` | إنشاء مجلد في مساحة العمل |
| 29 | `list_workspace` | سرد جميع الملفات في مساحة العمل |
| 30 | `scan_workspace` | فحص كامل لمساحة العمل مع بيانات وصفية للملفات |

**شرح التصحيحات (أداة واحدة)**

| # | الأداة | الوصف |
|---|---|---|
| 31 | `explain_patch` | شرح تصحيح ثنائي بلغة طبيعية |

**المُجمِّع (أداة واحدة)**

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 32 | `assemble_instructions` | Keystone | تجميع التعليمات إلى كود آلة (x86, ARM, MIPS، إلخ.) |

**إدارة ذاكرة الذكاء الاصطناعي (11 أداة)**

تتيح هذه الأدوات للذكاء الاصطناعي حفظ واسترجاع النتائج عبر جلسات التحليل باستخدام قاعدة بيانات SQLite غير متزامنة:

| # | الأداة | الوصف |
|---|---|---|
| 33 | `create_memory_session` | بدء جلسة ذاكرة جديدة لتحليل ما |
| 34 | `store_analysis_finding` | حفظ نتيجة تحليل مع وسوم (tags) |
| 35 | `query_analysis_memories` | البحث في النتائج السابقة حسب استعلام |
| 36 | `get_binary_analysis_context` | استرجاع جميع السياقات لثنائي محدد |
| 37 | `tag_analysis_session` | إضافة وسوم إلى جلسة لتنظيمها |
| 38 | `search_memories_by_tag` | العثور على جلسات/نتائج حسب الوسم |
| 39 | `delete_analysis_session` | إزالة جلسة ونتائجها |
| 40 | `cleanup_expired_sessions` | إزالة الجلسات الأقدم من حد معين |
| 41 | `list_analysis_sessions` | سرد جميع الجلسات النشطة |
| 42 | `export_memory_store` | تصدير جميع الذكريات إلى صيغة قابلة للنقل |
| 43 | `import_memory_store` | استيراد الذكريات من ملف تصدير |

**مراقبة الخادم (أداتان)**

| # | الأداة | الوصف |
|---|---|---|
| 44 | `get_server_health` | مدة التشغيل (uptime)، استخدام الذاكرة، الأدوات المحمّلة، إصدار Python |
| 45 | `get_tool_metrics` | عدد الاستدعاءات لكل أداة، متوسط أوقات التنفيذ، معدلات الأخطاء، إصابات/أخطاء التخزين المؤقت (cache hit/miss) |

---

### ⚙️ إضافة Radare2 وr2ghidra (30 أداة)

تستخدم جميع أدوات Radare2 تجمّع اتصالات آمنًا للخيوط (`r2_pool.py`) يدير جلسات r2pipe تلقائيًا.

| # | الأداة | الوصف |
|---|---|---|
| 46 | `Radare2_open_file` | فتح ملف ثنائي في Radare2 |
| 47 | `Radare2_close_file` | إغلاق جلسة Radare2 |
| 48 | `Radare2_list_open_files` | سرد الملفات المفتوحة حاليًا |
| 49 | `Radare2_analyze_binary` | تشغيل تحليل تلقائي كامل (`aaa`) |
| 50 | `Radare2_list_functions` | سرد جميع الدوال المكتشفة |
| 51 | `Radare2_disassemble_function` | فك تجميع دالة محددة |
| 52 | `Radare2_disassemble_address` | فك التجميع عند عنوان محدد |
| 53 | `Radare2_decompile_function` | فك الترجمة عبر r2ghidra (محرك Ghidra مدمج في r2، دون الحاجة إلى JVM) |
| 54 | `Radare2_list_exports` | سرد الرموز المُصدَّرة |
| 55 | `Radare2_list_imports` | سرد الدوال المستوردة |
| 56 | `Radare2_list_sections` | سرد أقسام الثنائي مع الإنتروبيا (entropy) |
| 57 | `Radare2_list_strings` | سرد السلاسل الموجودة في الثنائي |
| 58 | `Radare2_find_cross_references` | تتبع استدعاءات الدوال ومراجع البيانات |
| 59 | `Radare2_search_bytes` | البحث عن أنماط بايت في الثنائي |
| 60 | `Radare2_get_binary_info` | الحصول على البيانات الوصفية للثنائي (المعمارية، الصيغة، ترتيب البايتات) |
| 61 | `Radare2_execute_command` | تنفيذ أمر Radare2 خام |
| 62 | `Radare2_esil_emulate` | محاكاة ESIL عند عنوان محدد |
| 63 | `Radare2_get_hexdump` | تفريغ سداسي عشر (hex dump) عند عنوان افتراضي |
| 64 | `Radare2_get_cfg_data` | استخراج بيانات مخطط تدفق التحكم (CFG) |
| 65 | `Radare2_generate_cfg_png` | توليد مخطط CFG كصورة PNG |
| 66 | `Radare2_generate_callgraph` | توليد مخطط استدعاءات الدوال |
| 67 | `Radare2_recover_structures` | استعادة تلقائية لهياكل C وحفظها في قاعدة بيانات التعلّيقات (annotations) |
| 68 | `Radare2_decompile_with_r2ghidra` | فك ترجمة C عالي الجودة مع تخزين مؤقت |
| 69 | `Radare2_annotate_binary` | إضافة تعلّيقات إلى الثنائي |
| 70 | `Radare2_get_annotations` | استرجاع التعلّيقات |
| 71 | `Radare2_export_annotations` | تصدير التعلّيقات إلى ملف |
| 72 | `Radare2_import_annotations` | استيراد التعلّيقات من ملف |
| 73 | `Radare2_detect_crypto_constants` | كشف الثوابت التشفيرية (مثل AES S-box، إلخ.) |
| 74 | `Radare2_find_gadgets` | العثور على أدوات (gadgets) ROP/JOP |
| 75 | `Radare2_calculate_entropy` | حساب الإنتروبيا لكل قسم |

---

### 🦠 إضافة تحليل البرمجيات الخبيثة (9 أدوات)

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 76 | `dormant_detector` | Radare2 + heuristics | العثور على الأبواب الخلفية المخفية والدوال اليتيمة والقنابل الزمنية والقنابل المنطقية |
| 77 | `adaptive_vaccine` | YARA + Radare2 | توليد قواعد كشف YARA + تصحيحات ثنائية لتحييد التهديدات |
| 78 | `vulnerability_hunter` | Radare2 + analysis | كشف أنماط API الخطيرة (strcpy, sprintf) وسلاسل أدوات ROP |
| 79 | `extract_iocs` | Regex + LIEF | استخراج عناوين IP وروابط URL والنطاقات والتجزئات (hashes) ومفاتيح التسجيل وعناوين العملات المشفرة |
| 80 | `run_yara` | YARA | الفحص باستخدام ملفات قواعد مخصصة ومجموعات قواعد مدمجة |
| 81 | `generate_poc_exploit` | pwntools | توليد كود استغلال لإثبات المفهوم (PoC) |
| 82 | `build_rop_chain` | ROPgadget + pwntools | بناء آلي لسلاسل ROP |
| 83 | `autonomous_vuln_hunt` | Radare2 + angr | خط أنابيب صيد ثغرات مستقل (autonomous) |
| 84 | `analyze_heap_exploit` | Radare2 + heuristics | تحليل استغلال الكومة (UAF، double-free، overflow) |

---

### 🕵️ إضافة التحقيق الرقمي (22 أداة)

**تحليل الذاكرة الجنائي (6 أدوات)**

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 85 | `memory_analyze` | Volatility3 | تحليل كامل لتفريغ الذاكرة |
| 86 | `memory_list_processes` | Volatility3 | سرد العمليات الجارية من تفريغ الذاكرة |
| 87 | `memory_detect_injections` | Volatility3 | كشف حقن الكود في ذاكرة العمليات |
| 88 | `memory_extract_strings` | Volatility3 | استخراج السلاسل من ذاكرة العمليات |
| 89 | `memory_dump_module` | Volatility3 | تفريغ وحدة محمّلة من الذاكرة |
| 90 | `memory_list_symbols` | Volatility3 | سرد الرموز من الذاكرة |

**تحليل القرص الجنائي (6 أدوات)**

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 91 | `disk_list_partition` | Sleuth Kit | سرد أقسام القرص |
| 92 | `disk_list_files` | Sleuth Kit | سرد الملفات في صورة قرص |
| 93 | `disk_recover_deleted` | Sleuth Kit | استعادة الملفات المحذوفة |
| 94 | `disk_analyze_mft` | Sleuth Kit | تحليل جدول الملفات الرئيسي (MFT) لنظام NTFS |
| 95 | `disk_extract_file` | Sleuth Kit | استخراج ملف من صورة القرص |
| 96 | `disk_hash_verify` | Sleuth Kit | التحقق من سلامة الملف عبر التجزئة (hash) |

**تحليل الشبكة الجنائي (5 أدوات)**

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 97 | `pcap_analyze` | Scapy | تحليل PCAP: تفصيل البروتوكولات والشذوذ |
| 98 | `pcap_list_connections` | Scapy | سرد جميع اتصالات الشبكة |
| 99 | `pcap_extract_dns` | Scapy | استخراج استعلامات واستجابات DNS |
| 100 | `pcap_extract_c2` | Scapy | تحديد اتصالات القيادة والتحكم C2 المحتملة |
| 101 | `pcap_reconstruct_stream` | Scapy | إعادة بناء تدفقات TCP |

**تحليل القطع الأثرية (5 أدوات)**

| # | الأداة | الواجهة الخلفية | الوصف |
|---|---|---|---|
| 102 | `artifact_collect` | Custom parsers | جمع سجل التصفح وخلايا التسجيل (registry hives) وسجلات الأحداث وبيانات prefetch |
| 103 | `artifact_correlate_ioc` | Custom parsers | ربط القطع الأثرية بمؤشرات IOC معروفة |
| 104 | `artifact_generate_yara` | YARA | توليد قواعد YARA من أنماط القطع الأثرية |
| 105 | `artifact_timeline` | Custom parsers | بناء خط زمني من مصادر قطع أثرية متعددة |
| 106 | `artifact_report` | Custom parsers | توليد تقرير تحليل القطع الأثرية |

---

### 📝 إضافة توليد التقارير (14 أداة)

| # | الأداة | الوصف |
|---|---|---|
| 107 | `get_system_time` | الحصول على الطابع الزمني للخادم (يمنع الذكاء الاصطناعي من اختلاق التواريخ) |
| 108 | `set_timezone` | ضبط المنطقة الزمنية لإعداد التقارير |
| 109 | `get_timezone_info` | الحصول على معلومات المنطقة الزمنية الحالية |
| 110 | `start_report_session` | بدء جلسة تحليل مؤقّتة بمعرّف فريد |
| 111 | `end_report_session` | إنهاء الجلسة: حساب المدة وقفل قوائم IOC/ATT&CK |
| 112 | `get_report_session_status` | التحقق من حالة الجلسة |
| 113 | `list_report_sessions` | سرد جميع الجلسات النشطة/المكتملة |
| 114 | `add_ioc` | جمع مؤشرات IOC ووسمها أثناء جلسة مباشرة |
| 115 | `add_analysis_note` | إضافة ملاحظات مصنّفة (نتيجة، تحذير، سلوك) |
| 116 | `add_mitre_technique` | توثيق معرّفات تقنيات MITRE ATT&CK |
| 117 | `set_severity` | ضبط درجة خطورة الجلسة (منخفضة/متوسطة/عالية/حرجة) |
| 118 | `create_analysis_report` | عرض التقرير في 4 أوضاع: `full_analysis`، `quick_triage`، `ioc_summary`، `executive_brief` |
| 119 | `generate_vex_report` | توليد تقرير VEX (Vulnerability Exploitability eXchange) |
| 120 | `generate_sigma_rule` | توليد قواعد كشف SIGMA |

---

## موجّهات التحليل الموجَّهة (22 وضعًا)

الموجّهات هي مسارات عمل تحليلية جاهزة مسبقًا تُهيئ الذكاء الاصطناعي بشخصية منظمة، وتسلسلات استخدام للأدوات خطوة بخطوة، وقواعد لتصنيف الأدلة. يمكنك تفعيلها بالإشارة إلى اسم الموجّه في عميل الذكاء الاصطناعي لديك.

### تحليل البرمجيات الخبيثة (9 موجّهات)

| الموجّه | حالة الاستخدام |
|---|---|
| `full_analysis_mode` | تحليل شامل من 6 مراحل: الفرز (triage) → فك التجميع → السلوك → الشبكة → الثبات → التقرير |
| `malware_analysis_mode` | تحليل مركّز للبرمجيات الخبيثة مع تصنيف التهديدات |
| `basic_analysis_mode` | فرز سريع للتقييم الأولي وإصدار أحكام سريعة |
| `apt_hunting_mode` | صيد خاص بـ APT: الحركة الجانبية والثبات وسرقة البيانات (exfiltration) |
| `malware_defense_mode` | موجّه للدفاع: توليد قواعد كشف وإجراءات تخفيف |
| `unpacking_mode` | تحليل وتجاوز التغليف/التمويه (Themida, VMProtect, UPX) |
| `c2_extraction_mode` | استخراج وتحليل البنية التحتية لاتصالات C2 |
| `ransomware_triage_mode` | فرز خاص ببرامج الفدية: تحليل التشفير وتقييم استعادة المفاتيح |
| `code_similarity_mode` | مقارنة الثنائيات لقياس تشابه الكود والسلالة المشتركة |

### البحث الأمني (6 موجّهات)

| الموجّه | حالة الاستخدام |
|---|---|
| `vulnerability_research_mode` | صيد الثغرات: تجاوزات المخزن المؤقت وUAF وحقن الأوامر |
| `crypto_analysis_mode` | تحليل التطبيقات التشفيرية وكشف نقاط الضعف |
| `firmware_analysis_mode` | البرامج الثابتة لإنترنت الأشياء/الأنظمة المدمجة: استخراج binwalk وسلاسل UART وبيانات اعتماد مبرمجة (hardcoded) |
| `patch_analysis_mode` | تحليل التصحيحات الأمنية واختبارات الانحدار (regression) |
| `source_code_audit_mode` | تدقيق أمني للكود المصدري (Python, C, C++) |
| `autonomous_vuln_hunt_mode` | خط أنابيب صيد ثغرات مستقل |

### أبحاث CVE وتطوير الاستغلالات (5 موجّهات)

| الموجّه | حالة الاستخدام |
|---|---|
| `taint_analysis_mode` | تحليل تلوث (taint) لتدفق البيانات: اكتشاف آلي لمسارات المصدر→المصرف |
| `heap_exploit_mode` | تحليل استغلال الكومة وتوليد إثبات المفهوم (PoC) |
| `fuzzing_mode` | إعداد حملة التشويش (fuzzing) وفرز الأعطال |
| `patch_diff_auto_mode` | مقارنة تصحيحات آلية (patch diff) لأبحاث ثغرات اليوم الواحد |
| `cve_discovery_pipeline_mode` | خط أنابيب كامل لاكتشاف CVE: من مقارنة التصحيحات إلى استغلال عامل |

### أخرى (موجّهان)

| الموجّه | حالة الاستخدام |
|---|---|
| `game_analysis_mode` | تحليل عملاء الألعاب: كشف أنظمة مكافحة الغش، الهندسة العكسية للبروتوكولات، فحص الذاكرة |
| `report_generation_mode` | مسار عمل جلسة منظم مع تعيين تقنيات MITRE ATT&CK |

> **كيف تعمل الموجّهات:** كل موجّه يُهيئ الذكاء الاصطناعي بشخصية تحليلية منظمة. ويتضمن نقاط توقف للاستدلال بسلسلة الأفكار (Chain-of-Thought) حيث يجب على الذكاء الاصطناعي التوقف والتقييم قبل المتابعة، وقواعد لتصنيف الأدلة تمنعه من عرض التكهنات كحقائق. يجب وسم كل نتيجة بـ `OBSERVED` (تم التحقق منها مباشرة)، أو `INFERRED` (مشتقة منطقيًا من التحليل الثابت)، أو `POSSIBLE` (تتطلب مزيدًا من التحقق).

---

## موارد MCP (11 URI)

الموارد هي نقاط وصول بيانات للقراءة فقط يمكن لعملاء الذكاء الاصطناعي الوصول إليها عبر قوالب URI. وهي تُكمّل الأدوات من خلال توفير بيانات منظمة دون الحاجة إلى استدعاءات أدوات صريحة.

### الموارد الثابتة

| URI | الوصف |
|---|---|
| `reversecore://guide` | دليل استخدام الأدوات مع قواعد مسارات الملفات وأفضل الممارسات |
| `reversecore://guide/structures` | دليل تقني لاستعادة الهياكل وتحليل المراجع المتقاطعة |
| `reversecore://tools` | توثيق كامل لجميع الأدوات الـ 120 المسجلة |
| `reversecore://logs` | سجلات التطبيق (آخر 100 سطر) |

### الموارد الديناميكية (نظام ملفات افتراضي لكل ثنائي)

تُحلّ هذه العناوين URI لكل ثنائي وتستدعي أدوات التحليل المقابلة عند الطلب:

| قالب URI | الوصف |
|---|---|
| `reversecore://{filename}/strings` | استخراج جميع السلاسل من ثنائي |
| `reversecore://{filename}/iocs` | استخراج مؤشرات IOC (عناوين IP وروابط URL ورسائل البريد الإلكتروني والتجزئات) |
| `reversecore://{filename}/func/{address}/code` | كود C شبه مترجم (pseudo-C) لدالة |
| `reversecore://{filename}/func/{address}/asm` | فك تجميع لدالة |
| `reversecore://{filename}/func/{address}/cfg` | مخطط تدفق التحكم بصيغة Mermaid |
| `reversecore://{filename}/functions` | قائمة بجميع الدوال في الثنائي |
| `reversecore://{filename}/dormant_detector` | نتائج تحليل الكاشف الخامل (dormant detector) |

---

## بدء سريع

### الخيار 1 — PyPI (الأبسط)```bash
pip install reversecore-mcp
reversecore-mcp

المتطلبات الأساسية: يجب تثبيت Radare2 على نظامك (r2 --version). يتم تثبيت YARA تلقائيًا عبر yara-python.

الخيار 2 — Docker (موصى به للوظائف الكاملة)

جميع محركات التحليل (Radare2, r2ghidra, YARA, Binwalk, Sleuth Kit, GDB، إلخ) تأتي مثبتة مسبقًا:```bash docker run -i --rm
-v /path/to/your/samples:/app/workspace
-e REVERSECORE_WORKSPACE=/app/workspace
-e MCP_TRANSPORT=stdio
ghcr.io/sjkim1127/reversecore_mcp:latest

root@kitploit:~
### الخيار 3 — البناء من المصدر (Docker Compose)```bash
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
./scripts/run-docker.sh        # auto-detects Intel / Apple Silicon

أو يدويًا:```bash docker compose --profile x86 up -d # Intel/AMD docker compose --profile arm64 up -d # Apple Silicon (M1/M2/M3)

root@kitploit:~
### الخيار 4 — Python (التطوير المحلي)```bash
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python -m reversecore_mcp.server

المتطلبات الأساسية للوضع المحلي: يجب تثبيت Radare2 على نظامك (r2 --version). يتم تثبيت الواجهات الخلفية للأدوات الفردية (YARA، LIEF، Capstone، إلخ) عبر pip. لدعم التحليل الجنائي الكامل، ستحتاج أيضًا إلى Volatility3 وScapy وSleuth Kit.


الاتصال بعميل الذكاء الاصطناعي الخاص بك

أضف إعدادات الخادم إلى إعدادات عميل IDE لديك (على سبيل المثال، ~/.cursor/mcp.json أو claude_desktop_config.json).

⚡ الخيار 1: وضع تنفيذ Docker (موصى به)

إذا كانت الحاوية تعمل عبر Docker Compose، فإن هذا الوضع يمرر stdio مباشرة إلى الحاوية قيد التشغيل. لا تأخير في بدء التشغيل، وذاكرة دائمة، وتوفر كامل للأدوات.```json { "mcpServers": { "Reversecore_MCP": { "command": "docker", "args": [ "exec", "-i", "-e", "MCP_TRANSPORT=stdio", "reversecore-mcp-arm64", "python", "-m", "reversecore_mcp.server" ] } } }

root@kitploit:~
> استبدل `reversecore-mcp-arm64` بـ `reversecore-mcp` إذا كنت على Intel/AMD.

---

### 🌐 الخيار ٢: وضع SSE HTTP

للبث عبر الشبكة (Server-Sent Events):```json
{
  "mcpServers": {
    "Reversecore_MCP": {
      "url": "http://localhost:8000/mcp/sse"
    }
  }
}

📦 الخيار 3: Stdio Mode (Docker-on-Demand)

يشغّل حاوية جديدة ومعزولة لكل جلسة:

🍎 macOS```json { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/Users/YOUR_USERNAME/samples:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/sjkim1127/reversecore_mcp:latest" ] } } } ```
🐧 Linux```json { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/home/YOUR_USERNAME/samples:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/sjkim1127/reversecore_mcp:latest" ] } } } ```
🪟 ويندوز```json { "mcpServers": { "reversecore": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "C:/samples:/app/workspace", "-e", "REVERSECORE_WORKSPACE=/app/workspace", "-e", "MCP_TRANSPORT=stdio", "ghcr.io/sjkim1127/reversecore_mcp:latest" ] } } } ```

⚠️ مهم — مسارات الملفات داخل Docker

يتم تركيب مجلدك المحلي على /app/workspace داخل الحاوية. ارجع دائمًا إلى الملفات باسم الملف فقط، وليس بالمسار الكامل المحلي لديك.

❌ خاطئ✅ صحيح
r2_decompile("/Users/john/samples/mal.exe")r2_decompile("mal.exe")

الإعدادات

يمكن توفير جميع الإعدادات عبر متغيرات البيئة أو ملف .env (انظر .env.example). تُدار الإعدادات عبر Pydantic BaseSettings مع البادئة REVERSECORE_.

الإعدادات الأساسية

إعدادات وضع HTTP

إعدادات Radare2

إعدادات العزل (Sandbox)

التخزين وقائمة الانتظار

تسجيل السجلات (Logging)

الملحقات الإضافية والأمان الثابت (SAST)

المتغيرالافتراضيالوصف
REVERSECORE_PLUGIN_DIRS""أدلة مفصولة بفواصل لفحص ملحقات التوسعة
REVERSECORE_SAST_RULES_PATH""مسار ملف قواعد SAST المخصص بصيغة YAML

نموذج الأمان

يُطبَّق الأمان كدفاع متعدد الطبقات، مع حمايات على مستويات متعددة:

أمان المدخلات والمسارات

الشبكة والمصادقة

الحاوية ووقت التشغيل

التحكمالتنفيذ
تنفيذ غير جذرييعمل كمستخدم appuser (UID 1000) مع صلاحيات دنيا
حدود الموارديفرض Docker Compose حدودًا لوحدة المعالجة المركزية (2.0) والذاكرة (4 جيجابايت)
عزل الحمايةعزل اختياري قائم على الحاويات لأدوات التحليل الديناميكي

بوابات أمان CI/CD

معالجة الأخطاء المنظمة

جميع فئات الاستثناءات البالغ عددها 17 تحمل رموز أخطاء RCMCP-E* للمعالجة البرمجية. انظر معالجة الأخطاء للتسلسل الهرمي الكامل.


التطوير

الإعداد```bash

git clone https://github.com/sjkim1127/Reversecore_MCP.git cd Reversecore_MCP python -m venv venv && source venv/bin/activate pip install -r requirements.txt pip install -r requirements-dev.txt pre-commit install # installs Ruff, Bandit, Gitleaks hooks

root@kitploit:~
### الاختبار```bash
# Full test suite with coverage report
pytest tests/ -v

# Unit tests only (fast, no external dependencies)
pytest tests/unit/ -v

# Integration tests (requires Docker)
pytest tests/integration/ -v

# Run with coverage threshold enforcement
pytest tests/unit/ --cov=reversecore_mcp --cov-fail-under=80

# Run a specific test
pytest tests/unit/test_cli_tools.py::TestRunFile::test_success -v

# Security boundary tests
pytest tests/ -m security -v

# Benchmarks
pytest tests/ -m benchmark -v

حالة الاختبارات:

  • ✅ 1,957 اختبار وحدة ناجحة عبر Python 3.10 / 3.11 / 3.12
  • 📊 تغطية الكود بنسبة 87% (حد أدنى 80% مفروض في CI)
  • 🔒 صفر نتائج Bandit
  • ⚡ مجموعة اختبارات غير متزامنة بالكامل عبر pytest-asyncio

علامات الاختبار:

جودة الكود```bash

ruff check reversecore_mcp/ # Lint (E, W, F, I, B, C4, UP rules) ruff format reversecore_mcp/ # Format mypy reversecore_mcp/ # Type check (0 errors across 108 files) bandit -r reversecore_mcp/ # Security scan (all severities) pip-audit # Dependency CVE scan

root@kitploit:~
### خطافات Pre-commit

الخطافات التالية تعمل تلقائيًا مع كل commit:

1. **Ruff** — فحص lint مع إصلاح تلقائي + التحقق من التنسيق
2. **trailing-whitespace** — إزالة المسافات البيضاء في نهاية الأسطر
3. **end-of-file-fixer** — ضمان انتهاء الملفات بسطر جديد
4. **check-yaml / check-json** — التحقق من صيغة YAML/JSON
5. **check-added-large-files** — منع الملفات الأكبر من 1 ميغابايت
6. **check-merge-conflict** — اكتشاف علامات تعارض الدمج غير المحلولة
7. **detect-private-key** — منع ارتكاب مفاتيح خاصة عن طريق الخطأ
8. **Bandit** — فحص أمان بايثون

---

## خط أنابيب CI/CD

كل push إلى `main` يطلق 11 وظيفة في خط الأنابيب. يجب أن تنجح جميعها قبل النشر.```
 Lint & Security Gate              Unit Tests (Python Matrix)
   ├─ Gitleaks (secret scan)         ├─ pytest 3.10 --cov-fail-under=80
   ├─ Hadolint (Dockerfile lint)     ├─ pytest 3.11 --cov-fail-under=80
   ├─ Ruff check + format            └─ pytest 3.12 --cov-fail-under=80
   ├─ Mypy type check (108 files)
   ├─ Bandit (all severities)      Wheel Smoke Test
   ├─ pip-audit (no CVEs)            └─ Build wheel → install in /tmp
   └─ Security boundary tests            → verify plugin discovery
                                          → assert __file__ under sys.prefix
 CodeQL Analysis
   └─ Python SAST                  Docker Verification
                                     ├─ Build reversecore-mcp:ci
 Exploit Safety Gate                 ├─ Trivy container scan
   ├─ Bandit on POC templates        ├─ Image size check (< 5 GB)
   ├─ Hypothesis DAST fuzzing        ├─ CLI tool verification
   ├─ Performance benchmarks         ├─ Integration tests in container
   └─ Container isolation test       └─ E2E tool invocation

 In-Container Smoke Test           Build Base Image (amd64 + arm64)
   ├─ Copy test ELF into container   ├─ Compile YARA 4.3.1
   └─ Run scripts/smoke_test.py     ├─ Compile Radare2 6.0.4
                                     ├─ Compile r2ghidra
 Deploy (amd64 + arm64)             └─ Push to GHCR
   ├─ Build app image
   ├─ Push to GHCR                 Merge Manifests
   └─ Trivy rescan on published     └─ Multi-arch manifest → :latest

سياسة عدم الالتفاف: لا يتم أبدًا حل إخفاقات CI/CD عن طريق تعديل إعدادات خط الأنابيب. تُصلح الأسباب الجذرية دائمًا مباشرةً في الكود المصدري أو التبعيات.


بنية بناء Docker

يستخدم بناء Docker نهجًا من طبقتين للحفاظ على أوقات البناء مقبولة:

الطبقة 1: الصورة الأساسية (Dockerfile.base)

بناء متعدد المراحل يقوم بتجميع جميع التبعيات بطيئة البناء ونادرة التغيير من المصدر:``` compiler-toolchain (python:3.12-slim-bookworm + build tools) ├── compiler-yara (YARA 4.3.1 from source) [parallel] ├── compiler-r2 (Radare2 6.0.4 from source) [parallel] │ └── compiler-r2ghidra (r2ghidra plugin) [sequential] └── compiler-pip (pip install into /opt/venv) [parallel]

base (final runtime: python:3.12-slim-bookworm) ├── Runtime packages: file, binutils, gdb, binwalk, graphviz, nasm, sleuthkit ├── /opt/yara (compiled YARA) ├── /opt/radare2 (compiled r2 + r2ghidra) ├── /opt/venv (Python packages) └── Non-root user: appuser (UID 1000)

root@kitploit:~
لا يُعاد بناء هذه الصورة إلا عند تغيّر إصدارات الأدوات. وقت البناء: ~12 دقيقة.

### الطبقة 2: صورة التطبيق (`Dockerfile`)

ترث هذه الصورة من الصورة الأساسية وتنسخ كود التطبيق:```
FROM base image
    ├── COPY reversecore_mcp/ (application code)
    ├── COPY scripts/ (smoke test, benchmarks)
    ├── pip install any new requirements
    ├── Security package upgrades
    └── CMD ["python", "-m", "reversecore_mcp.server"]

وقت البناء: ~60 ثانية.

Docker Compose

ثلاث خدمات مع ملفات تعريف خاصة بالبنية:

حدود الموارد: 2.0 نواة معالج، 4 جيجابايت ذاكرة لكل حاوية.


متطلبات النظام


هيكل المشروع```

reversecore_mcp/ ├── core/ # Infrastructure layer (37 modules) │ ├── config.py # Pydantic BaseSettings (34+ env vars) │ ├── exceptions.py # Exception hierarchy (17 classes, RCMCP-E* codes) │ ├── security.py # Input sanitization & command arg validation │ ├── validators.py # Path validators (TOCTOU-hardened, symlink-safe) │ ├── r2_pool.py # Thread-safe Radare2 connection pool │ ├── r2_helpers.py # Structured Radare2 output parsing │ ├── metrics.py # Per-tool timing, counts, error rates, cache stats │ ├── decorators.py # @log_execution, @track_metrics │ ├── error_handling.py # @handle_tool_errors decorator │ ├── error_formatting.py # Structured error formatting │ ├── execution.py # Safe subprocess with timeout/output limits │ ├── command_spec.py # Command specifications │ ├── memory.py # Async SQLite AI memory store │ ├── mitre_mapper.py # MITRE ATT&CK mapping engine │ ├── evidence.py # Evidence classification (OBSERVED/INFERRED/POSSIBLE) │ ├── resilience.py # Retry, circuit-breaker, timeout patterns │ ├── task_queue.py # Background task queue (Redis + arq) │ ├── extension_registry.py # Plugin registration system │ ├── arch_registry.py # Multi-arch mapping (x86/ARM/MIPS/RISC-V/PPC) │ ├── result_cache.py # SHA256-based tool result caching │ ├── analysis_cache.py # Multi-level decompilation cache (Redis + SQLite) │ ├── result.py # ToolSuccess / ToolError Pydantic models │ ├── loader.py # Dynamic tool module loader │ ├── plugin.py # Plugin base class │ ├── extension.py # Extension base class │ ├── container.py # Container/sandbox execution │ ├── audit.py # Audit logging │ ├── binary_cache.py # Binary file caching │ ├── json_utils.py # orjson-backed JSON (3-5x faster) │ ├── logging_config.py # Loguru logging configuration │ ├── report_generator.py # Report rendering (Markdown, PDF) │ ├── resource_manager.py # MCP resource lifecycle │ └── sast/ # Source code scanners │ ├── python_ast_scanner.py # Python AST vulnerability scanner │ ├── regex_scanner.py # C/C++ regex vulnerability scanner │ ├── rule_manager.py # SAST rule loader │ └── default_rules.yaml # Default scanning rules │ ├── tools/ # MCP tool implementations (120 tools) │ ├── analysis/ # Static analysis (24 tools) │ │ ├── static_analysis.py # file, strings, binwalk │ │ ├── lief_tools.py # LIEF binary parser │ │ ├── capa_tools.py # CAPA capability detection │ │ ├── die_tools.py # Detect It Easy packer detection │ │ ├── diff_tools.py # Binary diffing │ │ ├── emulation_tools.py # ESIL emulation │ │ ├── fuzz_tools.py # Fuzzing harness generator │ │ ├── fuzzing_campaign.py # Full fuzzing campaign runner │ │ ├── symbolic_analysis.py # angr symbolic execution │ │ ├── signature_tools.py # Library signature matching │ │ ├── source_auditor.py # SAST (Python + C/C++) │ │ ├── crash_triage.py # GDB crash triage │ │ ├── taint_analysis.py # Source→sink taint tracing │ │ ├── advanced_yara.py # Advanced YARA generation │ │ ├── patch_vuln_inference.py # Patch vulnerability inference │ │ └── cache_tools.py # Analysis cache management │ │ │ ├── radare2/ # Disassembly & decompilation (30 tools) │ │ ├── radare2_mcp_tools.py # Core Radare2 tool set │ │ ├── r2ghidra_tools.py # r2ghidra decompiler (cached) │ │ ├── r2_analysis.py # Deep function analysis │ │ ├── r2_db.py # SQLite annotation + cache DB │ │ ├── r2_esil_simulator.py # Multi-arch ESIL simulator │ │ └── r2_session.py # Stateful analysis sessions │ │ │ ├── malware/ # Threat detection (9 tools) │ │ ├── dormant_detector.py # Backdoor/logic bomb detection │ │ ├── ioc_tools.py # IOC extraction │ │ ├── yara_tools.py # YARA scanning │ │ ├── adaptive_vaccine.py # YARA rule + patch generation │ │ ├── vulnerability_hunter.py # Dangerous API detection │ │ ├── autonomous_hunter.py # Autonomous vuln hunting pipeline │ │ ├── heap_exploit.py # Heap exploitation analysis │ │ ├── poc_generator.py # PoC exploit generation │ │ └── rop_builder.py # ROP chain construction │ │ │ ├── forensics/ # Digital forensics (22 tools) │ │ ├── memory.py # Volatility3 memory forensics │ │ ├── network.py # Scapy PCAP analysis │ │ ├── disk.py # Sleuth Kit disk forensics │ │ └── artifact.py # Browser/registry/event log analysis │ │ │ ├── report/ # Report generation (14 tools) │ │ ├── report_mcp_tools.py # MCP-registered report tools │ │ ├── report_tools.py # Report rendering logic │ │ ├── session.py # Session state management │ │ ├── converter.py # Format conversion (Markdown → PDF/HTML) │ │ ├── email.py # SMTP report delivery │ │ ├── sigma_generator.py # SIGMA rule generation │ │ └── vex_generator.py # VEX report generation │ │ │ └── common/ # Shared utilities (20 tools) │ ├── file_operations.py # File ops, workspace management │ ├── server_tools.py # Server health, tool metrics │ ├── memory_tools.py # AI memory management (11 tools) │ ├── patch_explainer.py # Binary patch explanation │ └── assembler.py # Keystone assembler │ ├── prompts/ # AI reasoning prompts (22 modes) │ ├── malware.py # 9 malware analysis prompts │ ├── security.py # 6 security research prompts │ ├── cve_research.py # 5 CVE/exploit research prompts │ ├── game.py # Game client analysis prompt │ ├── report.py # Report generation prompt │ ├── server_health.py # Server inspection prompts │ └── common.py # Shared constants (DOCKER_PATH_RULE, LANGUAGE_RULE) │ ├── dashboard/ # Web dashboard (FastAPI + HTMX) │ ├── templates/ # Jinja2 templates with HTMX fragments │ └── static/ # htmx.min.js (local, CSP-compliant) │ ├── web/ # HTTP transport layer │ ├── auth.py # API key authentication middleware │ ├── middleware.py # Security headers, loopback restriction │ └── endpoints.py # /health, file upload, dashboard routes │ ├── resources.py # 11 MCP resources (static + dynamic per-binary) └── server.py # FastMCP server entry point

root@kitploit:~
**المجلدات الأخرى:**```
tests/
├── unit/                          # 1,957 unit tests
├── integration/                   # Docker-based integration tests
├── fixtures/                      # Test binaries, YARA rules, sample data
└── conftest.py                    # Shared pytest fixtures

scripts/
├── smoke_test.py                  # Multi-layer in-container smoke test
├── check_release_metadata.py      # Version consistency validation
├── fetch_test_binaries.py         # Download test fixtures
├── run-docker.sh                  # Auto-detect architecture and start
└── ...                            # Benchmarks, analysis scripts

docs/
├── getting-started/               # Installation guide
├── development/                   # Architecture, contributing, testing guides
├── api/                           # Tool and module reference
└── user-guide/                    # Analysis workflows

معالجة الأخطاء

جميع الاستثناءات المخصصة ترث من ReversecoreError وتحمل رموز خطأ مهيكلة:

يمكن لعملاء الذكاء الاصطناعي استخدام حقل error_code للتعامل مع حالات الفشل برمجيًا وتحديد ما إذا كانوا سيعيدون المحاولة، أو يجربون أداة بديلة، أو يبلغون المستخدم بالخطأ.


إضافة أدوات جديدة

اتبع هذا النمط لإضافة أداة MCP جديدة:```python

reversecore_mcp/tools/analysis/my_tool.py

from reversecore_mcp.core.decorators import log_execution from reversecore_mcp.core.result import ToolResult, success, failure from reversecore_mcp.core.security import validate_file_path

@log_execution() async def my_analysis_tool( file_path: str, option: str | None = None, ) -> ToolResult: """Analyze a binary for X.

root@kitploit:~
Args:
    file_path: Path to the binary file (relative to workspace).
    option: Optional analysis option.

Returns:
    ToolResult with status='success' and structured content.
"""
try:
    safe_path = validate_file_path(file_path)
    result = await perform_analysis(safe_path)
    return success({"result": result})
except Exception as e:
    return failure(
        error_code="RCMCP-E100",
        message=str(e),
        hint="Check that the file exists and is a valid binary.",
    )
root@kitploit:~
ثم سجّله في ملف `__init__.py` الخاص بالمكوّن الإضافي المناسب وأضف اختبارات في `tests/unit/`.

---

## المساهمة

1. انسخ المستودع (Fork)
2. أنشئ فرع ميزة: `git checkout -b feat/my-feature`
3. اكتب اختبارات إلى جانب الكود الخاص بك — يجب ألا تقل التغطية عن 80%
4. تأكد من نجاح جميع الفحوصات: `pytest`, `ruff check`, `mypy`, `bandit`
5. افتح طلب سحب (Pull Request) مع وصف واضح

يُرجى قراءة [دليل المساهمة](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/contributing.md) لمعايير الكود واصطلاحات التعليقات التوثيقية (بنمط Google) وقائمة فحص طلب السحب.

---

## التوثيق

| المستند | الوصف |
|---|---|
| [دليل التثبيت](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/getting-started/installation.md) | إعداد مفصّل لجميع البيئات |
| [دليل البنية](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/architecture.md) | تصميم النظام وتفاصيل المكونات |
| [دليل المساهمة](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/contributing.md) | معايير الكود والتعليقات التوثيقية وسير عمل طلبات السحب |
| [دليل الاختبار](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/development/testing.md) | أنماط الاختبار والتجهيزات (Fixtures) والتغطية |
| [مرجع واجهة البرمجة](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/api/) | مرجع الأدوات والوحدات |
| [دليل المستخدم](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/docs/user-guide/) | سير عمل التحليل |

---

## أمثلة الاستخدام

### مثال 1: الفحص الأولي للبرمجيات الخبيثة (Malware Triage)```
User: "Analyze this suspicious file sample.exe"

AI calls:
  1. run_file("sample.exe")           → PE32 executable, x86, MSVC
  2. detect_packer("sample.exe")      → Not packed
  3. extract_iocs("sample.exe")       → 3 IPs, 2 URLs, 1 mutex
  4. run_capa("sample.exe")           → "creates persistence", "encrypts data"
  5. dormant_detector("sample.exe")   → 2 orphan functions with network calls
  6. generate_yara_rule("sample.exe") → Detection rule generated

AI response: "This PE32 binary shows ransomware-like behavior. CAPA detected
encryption and persistence capabilities. I found 2 hidden network functions
that may serve as a backup C2 channel. Here's a YARA rule for detection..."

مثال 2: البحث في الثغرات الأمنية باستخدام تحليل التلوث```

User: "Find exploitable bugs in this network daemon"

AI activates: taint_analysis_mode

AI calls:

  1. taint_trace("daemon", verify_with_angr=True) → Found 3 source→sink paths: recv() → strcpy() [CWE-120, CONFIRMED by angr] read() → sprintf() [CWE-134, LIKELY] getenv() → system() [CWE-78, POSSIBLE]

  2. vulnerability_hunter("daemon") → 12 dangerous API calls, 4 exploitable patterns

  3. generate_poc_exploit(target="daemon", vuln_type="bof", offset=128) → Python exploit script generated

AI response: "I found a confirmed stack buffer overflow where recv() data flows directly into strcpy() at 0x40123C. angr proved the path is reachable. Here's a working PoC..."

root@kitploit:~
### مثال 3: تحقيق الطب الشرعي الرقمي```
User: "Analyze this memory dump from a compromised server"

AI calls:
  1. memory_list_processes("memdump.raw")
     → 47 processes, 2 with suspicious names

  2. memory_detect_injections("memdump.raw")
     → Code injection detected in PID 1842 (svchost.exe)

  3. memory_extract_strings("memdump.raw", pid=1842)
     → C2 domain strings extracted

  4. artifact_correlate_ioc(artifacts={"domains": ["evil-c2.com"]})
     → Matches known APT group IOCs

  5. create_analysis_report(template_type="full_analysis")
     → PDF report with timeline and MITRE ATT&CK mapping

مثال 4: مقارنة التصحيحات لأبحاث 1-day```

User: "Compare the patched and unpatched versions to find what was fixed"

AI activates: patch_diff_auto_mode

AI calls:

  1. diff_binaries("libfoo-1.0.so", "libfoo-1.1.so") → 3 functions changed, 1 new function

  2. patch_diff_1day("libfoo-1.0.so", "libfoo-1.1.so") → Automated analysis: bounds check added at parse_header()

  3. r2_decompile("libfoo-1.0.so", "parse_header") → Decompiled vulnerable version (no bounds check)

  4. r2_decompile("libfoo-1.1.so", "parse_header") → Decompiled patched version (memcpy size limited)

AI response: "The patch adds a bounds check in parse_header() at 0x12340. The old version copies user-controlled length bytes via memcpy without validation, creating a heap buffer overflow (CWE-122)."

root@kitploit:~
---

## دعم تعدّد البنى

تربط وحدة `arch_registry.py` أسماء البنى بمعاملات ضبط Radare2، مما يتيح للأدوات العمل عبر بنى معالجات مختلفة دون إعداد يدوي:

| البنية | المفتاح | بنية r2 | عرض البتات | سجل PC | سجل SP |
|---|---|---|---|---|---|
| إنتل 32-بت | `x86` | `x86` | 32 | `eip` | `esp` |
| إنتل/AMD 64-بت | `x86_64` | `x86` | 64 | `rip` | `rsp` |
| ARM 32-بت / Thumb | `arm32` | `arm` | 16, 32 | `r15` | `r13` |
| ARM 64-بت (AArch64) | `arm64` | `arm` | 64 | `pc` | `sp` |
| MIPS | `mips` | `mips` | 32, 64 | `pc` | `sp` |
| RISC-V | `riscv` | `riscv` | 32, 64 | `pc` | `sp` |
| PowerPC | `ppc` | `ppc` | 32, 64 | `pc` | `r1` |

**يتم حل الأسماء المستعارة تلقائيًا:**
- `amd64` → `x86_64`
- `aarch64` → `arm64`
- `arm` مع `bits=64` → `arm64`
- `arm` مع `bits=16` أو `bits=32` → `arm32`

أدوات مثل `Radare2_esil_emulate` و `assemble_instructions` و `r2_simulate_patch` تستخدم هذا السجل لضبط بيئة التحليل بشكل صحيح لأي ملف ثنائي مستهدف.

---

## نظام التخزين المؤقت للنتائج

طبقتان من التخزين المؤقت تقلّلان الحسابات المكررة:

### التخزين المؤقت لنتائج الأدوات (`result_cache.py`)

يخزّن المُزيِّن `@cache_tool_result` ناتج أي أداة مؤقتًا بناءً على تجزئة SHA256 للملف الثنائي ووسائط الكلمات المفتاحية للأداة:```
Cache key = SHA256( "<tool_name>::{sorted_json_kwargs}" )

الواجهة الخلفية للتخزين: قاعدة بيانات SQLite عبر r2_db.py، يمكن الوصول إليها من خلال أداتي get_cached_result() و set_cached_result().

المقاييس: يتم تتبّع إصابات الذاكرة المؤقتة وإخفاقاتها عبر metrics_collector.record_cache_hit() و record_cache_miss()، وتكون مرئية من خلال أداة get_tool_metrics.

ذاكرة التخزين المؤقت للتحليل (analysis_cache.py)

ذاكرة تخزين مؤقت متعددة المستويات مخصّصة لنتائج فك الترجمة (التي تكون مكلفة من ناحية المعالجة الحسابية):

الاستيراد/التصدير: تتيح أداتا export_analysis_cache و import_analysis_cache حفظ حالة الذاكرة المؤقتة إلى/من ملفات rcpack لمشاركتها بين البيئات.


نظام ذاكرة الذكاء الاصطناعي

يوفر نظام ذاكرة الذكاء الاصطناعي (memory_tools.py + core/memory.py) تخزينًا دائمًا وقابلًا للاستعلام لنتائج التحليل عبر الجلسات. وهذا يسمح للذكاء الاصطناعي بما يلي:

  • تذكّر ما سبق أن وجده حول ملف ثنائي
  • الربط المرجعي للنتائج بين عينات مختلفة
  • وسم الجلسات والبحث فيها حسب الموضوع أو عائلة البرامج الضارة أو التقنية

كيف يعمل```

create_memory_session("analysis of ransomware sample") │ ├── store_analysis_finding("Found AES-256 encryption at 0x401000", tags=["crypto", "ransomware"]) ├── store_analysis_finding("C2 beacon interval: 30 seconds", tags=["c2", "network"]) └── tag_analysis_session(tags=["ransomware", "financial-sector"])

Later, in a different session:

query_analysis_memories("ransomware encryption") → Returns previous findings about ransomware encryption patterns

get_binary_analysis_context("sample.exe") → Returns all findings ever recorded for this binary

root@kitploit:~
**التخزين:** قاعدة بيانات SQLite غير متزامنة في المسار المُعد عبر `MEMORY_DB_PATH` (الافتراضي: `~/.reversecore_mcp/memory.db`).

**قابلية النقل:** استخدم `export_memory_store` و `import_memory_store` لنقل قاعدة بيانات الذاكرة بالكامل بين البيئات.

---

## لوحة التحكم عبر الويب

عند التشغيل في وضع HTTP (`MCP_TRANSPORT=http`)، تتوفر لوحة تحكم ويب على `http://localhost:8000/dashboard`. وهي توفّر:

- رفع الملفات الثنائية بالسحب والإفلات
- حالة التحليل في الوقت الفعلي
- قائمة دوال تفاعلية وعرض التفكيك
- نتائج استخراج IOC
- مراقبة صحة الخادم

**التقنيات المستخدمة:** FastAPI + قوالب Jinja2 + HTMX (تُحمَّل محليًا من `dashboard/static/`، دون اعتماد على CDN بما يتوافق مع CSP).

**ميزات الأمان:**
- رموز CSRF على جميع النماذج التي تغيّر الحالة
- التهريب التلقائي (auto-escaping) في Jinja2 مفعّل
- يتم تعقيم جميع مدخلات المستخدم عبر `html.escape()` قبل العرض
- حماية من اجتياز المسار عبر `validate_file_path()`

---

## النشر

### قائمة التحقق للإنتاج

قبل النشر إلى الإنتاج:

| البند | الطريقة |
|---|---|
| تعيين مفتاح API | `MCP_API_KEY=<strong-random-key>` |
| استخدام مستخدم غير جذر | مدمج: تعمل الحاوية كمستخدم `appuser` (UID 1000) |
| ضبط حدود الموارد | الافتراضي: 2 CPU / 4 GB RAM في `docker-compose.yml` |
| تفعيل التسجيل المنظم | `LOG_FORMAT=json` لتجميع السجلات |
| إعداد Redis | `REDIS_URL=redis://<host>:6379/0` لقائمة المهام والتخزين المؤقت |
| تعيين مسار مساحة العمل | `REVERSECORE_WORKSPACE=/path/to/isolated/directory` |
| مراجعة حدود المعدل | `REVERSECORE_RATE_LIMIT=60` (طلب/دقيقة، عدّل حسب الحاجة) |
| تفعيل وضع الحماية (sandbox) | `REVERSECORE_SANDBOX_ENABLED=true` لعزل التحليل الديناميكي |

### فحوصات الصحة

يوفر الخادم نقاط نهاية لفحوصات الصحة عبر HTTP لأغراض التنسيق:```bash
# Liveness (always 200 if process is running)
curl http://localhost:8000/health/live

# Readiness (checks tool availability)
curl http://localhost:8000/health/ready

# Full health (requires API key if configured)
curl -H "X-API-Key: <key>" http://localhost:8000/health

هذه النقاط الطرفية معفاة من مصادقة مفتاح API حتى تتمكن موازنات التحميل وأدوات تنسيق الحاويات من فحصها.

فحص صحة الحاوية

تتضمن صورة Docker تعليمة HEALTHCHECK مدمجة تتحقق من اتصال TCP بالمنفذ 8000 كل 30 ثانية. سيقوم Docker و Kubernetes تلقائيًا بإعادة تشغيل الحاويات غير الصحية.


استكشاف الأخطاء وإصلاحها

المشكلات الشائعة

تعرض الأداة الخطأ RCMCP-E003: Tool not found

أداة CLI المطلوبة غير مثبتة في البيئة.

الحل: إذا كنت تستخدم Docker، تحقق من أن الأداة موجودة في الصورة الأساسية:```bash docker exec reversecore-mcp-arm64 which r2 yara binwalk tsk_recover gdb

root@kitploit:~
إذا كنت تستخدم تثبيت Python محليًا، فقم بتثبيت الأداة المفقودة:```bash
# macOS
brew install radare2 yara binwalk sleuthkit

# Ubuntu/Debian
apt install radare2 yara binwalk sleuthkit
خطأ المهلة (RCMCP-E002 / RCMCP-E200)

تجاوز التحليل المهلة المحددة.

الحل: قم بزيادة المهلة:```bash export REVERSECORE_DEFAULT_TOOL_TIMEOUT=300 # 5 minutes

root@kitploit:~
بالنسبة للملفات الثنائية الكبيرة (>100 MB)، يُنصح باستخدام متغيرات الفحص السريع:
- `run_capa_quick` بدلاً من `run_capa`
- `detect_packer` بدلاً من `detect_packer_deep`
</details>

<details>
<summary><b>خطأ اجتياز المسار (RCMCP-E302)</b></summary>

لقد أشرت إلى ملف خارج دليل العمل.

**الحل:** انسخ الملف إلى دليل العمل أولاً:```
copy_to_workspace("/path/to/file.exe")

أو قم بتركيب مجلدات إضافية للقراءة فقط:```bash export REVERSECORE_READ_DIRS=/opt/samples,/mnt/evidence

root@kitploit:~
</details>

<details>
<summary><b>حاوية Docker لا تبدأ على Apple Silicon</b></summary>

تأكد من أنك تستخدم ملف تعريف ARM64:```bash
docker compose --profile arm64 up -d

أو استخدم سكربت الكشف التلقائي:```bash ./scripts/run-docker.sh

root@kitploit:~
</details>

<details>
<summary><b>رفض اتصال Redis</b></summary>

تتطلب قائمة المهام تشغيل مثيل Redis.

**الحل:** ابدأ Redis إلى جانب الخدمة الرئيسية:```bash
docker compose --profile arm64 up -d   # Starts both reversecore and redis

أو قم بتعطيل الميزات التي تعتمد على Redis بعدم تعيين REDIS_URL.

r2ghidra تفريغ الترجمة ينتج مخرجات فارغة

هذا يعني عادةً أن الدالة لم يتم تحليلها أولاً.

الحل: قم بتشغيل التحليل قبل تفريغ الترجمة:``` Radare2_analyze_binary("sample.exe") Radare2_decompile_function("sample.exe", "main")

root@kitploit:~
</details>

---

## الأسئلة الشائعة

<details>
<summary><b>هل يستبدل هذا Ghidra أو IDA Pro؟</b></summary>

لا. هذا المشروع مكمّل وليس بديلًا. يستخدم r2ghidra (محرك فك التحويل البرمجي من Ghidra المدمج في Radare2) لفك التحويل البرمجي. لا يوفر واجهة رسومية (GUI)، ولا يمتلك سير عمل التحليل التفاعلي لمفكك برامج كامل. الغرض منه هو تمكين المساعدين الذكيين (AI) من تنفيذ مهام التحليل برمجيًا.
</details>

<details>
<summary><b>هل يلزم تثبيت منفصل لـ Ghidra أو JDK؟</b></summary>

لا. المكوّن الإضافي r2ghidra يضمّن محرك فك التحويل البرمجي الخاص بـ Ghidra مباشرة داخل Radare2. لا حاجة إلى JDK، ولا تثبيت Ghidra، ولا ملفات مشروع Ghidra. فقط `r2` مع المكوّن الإضافي `r2ghidra` مضمّنًا.
</details>

<details>
<summary><b>ما عملاء MCP المدعومون؟</b></summary>

أي عميل يطبّق مواصفات [Model Context Protocol](https://modelcontextprotocol.io/). تم اختباره مع: Claude Desktop وCursor وWindsurf وGoogle Antigravity. يدعم الخادم كلاً من ناقلَي stdio وHTTP/SSE.
</details>

<details>
<summary><b>هل يمكنني تحليل ملفات Windows PE على Linux/macOS؟</b></summary>

نعم. يعمل التحليل الثابت (التفكيك، فك التحويل البرمجي، استخراج السلاسل النصية، استخراج IOC، فحص YARA) على أي تنسيق ملف بغض النظر عن نظام التشغيل المضيف. قد يواجه التحليل الديناميكي (المحاكاة، الاختبار بالبيانات العشوائية) قيودًا اعتمادًا على البنية المستهدفة.
</details>

<details>
<summary><b>ما مدى أمان تحليل البرمجيات الخبيثة بهذه الأداة؟</b></summary>

توفر حاوية Docker العزل: مستخدم غير جذر، لا شبكة افتراضيًا في CI، حدود للموارد. لتحليل البرمجيات الخبيثة الحية، نوصي بالتشغيل في جهاز افتراضي مخصص أو باستخدام ميزة العزل (sandbox) (`REVERSECORE_SANDBOX_ENABLED=true`). أدوات التحليل الثابت (r2 وYARA وstrings) لا تنفّذ الملف الثنائي الهدف أبدًا.
</details>

<details>
<summary><b>ما الحد الأقصى لحجم الملف؟</b></summary>

الحدود الافتراضية:
- الرفع: 100 ميجابايت (`MAX_UPLOAD_SIZE`)
- تحليل LIEF: 1 جيجابايت (`REVERSECORE_LIEF_MAX_FILE_SIZE`)
- مخرجات الأدوات: 10 ميجابايت (`REVERSECORE_MAX_OUTPUT_SIZE`)

جميع الحدود قابلة للتهيئة عبر متغيرات البيئة.
</details>

---

## شكر وتقدير

بُني هذا المشروع على جهود العديد من المشاريع مفتوحة المصدر:

| المشروع | الدور في Reversecore MCP |
|---|---|
| [Radare2](https://radare.org/) | التفكيك، المحاكاة، تحليل الملفات الثنائية |
| [r2ghidra](https://github.com/radareorg/r2ghidra) | محرك فك التحويل البرمجي من Ghidra لـ Radare2 |
| [FastMCP](https://github.com/jlowin/fastmcp) | إطار عمل خادم MCP |
| [YARA](https://virustotal.github.io/yara/) | مطابقة الأنماط لكشف البرمجيات الخبيثة |
| [LIEF](https://lief-project.github.io/) | تحليل تنسيقات الملفات الثنائية (PE, ELF, Mach-O) |
| [CAPA](https://github.com/mandiant/capa) | كشف القدرات بواسطة Mandiant FLARE |
| [angr](https://angr.io/) | محرك التنفيذ الرمزي |
| [Capstone](https://www.capstone-engine.org/) | إطار عمل التفكيك |
| [Keystone](https://www.keystone-engine.org/) | إطار عمل التجميع |
| [pwntools](https://github.com/Gallopsled/pwntools) | مجموعة أدوات تطوير الاستغلال |
| [ROPgadget](https://github.com/JonathanSalwan/ROPgadget) | باحث عن أدوات ROP |
| [Volatility3](https://github.com/volatilityfoundation/volatility3) | إطار عمل الطب الشرعي للذاكرة |
| [Scapy](https://scapy.net/) | تحليل حزم الشبكة |
| [Sleuth Kit](https://sleuthkit.org/) | مجموعة أدوات تحليل الأقراص الجنائي |
| [Binwalk](https://github.com/ReFirmLabs/binwalk) | تحليل البرمجيات الثابتة |
| [Detect It Easy](https://github.com/horsicq/DIE-engine) | كشف أدوات التغليف والمترجمات |

---

## الترخيص

MIT — انظر [LICENSE](https://github.com/sjkim1127/reversecore_mcp/blob/HEAD/LICENSE) للتفاصيل.

---

<div align="center">

**[GitHub](https://github.com/sjkim1127/Reversecore_MCP)** · **[PyPI](https://pypi.org/project/reversecore-mcp/)** · **[وثائق FastMCP](https://github.com/jlowin/fastmcp)** · **[مواصفات MCP](https://modelcontextprotocol.io/)** · **[Radare2](https://radare.org/)** · **[YARA](https://virustotal.github.io/yara/)**

</div>
تنزيل الأداة
المجالما يمكنك فعله
التحليل الثابتالتفكيك، فك الترجمة (r2ghidra)، تحليل الملفات الثنائية (LIEF)، كشف أدوات التعبئة (DIE)، كشف القدرات (CAPA)، استخراج السلاسل النصية، فحص البرمجيات الثابتة (binwalk)
التحليل الديناميكي والرمزيمحاكاة ESIL، التنفيذ الرمزي عبر angr، تحليل التلطيخ، توليد منصات اختبار الضغط (fuzzing harness)
تحليل البرمجيات الخبيثةاستخراج مؤشرات الاختراق (IOC)، فحص YARA، كشف البوابات الخلفية الخاملة، توليد اللقاحات التكيفية، البحث المستقل عن الثغرات
بحث الثغراتكشف الواجهات البرمجية الخطرة، اكتشاف أدوات ROP، تحليل استغلال الكومة، فرز الأعطال، توليد إثباتات المفهوم (PoC)
التحقيق الرقمي الجنائيتحليل الذاكرة (Volatility3)، تحليل PCAP (Scapy)، تحليل الأقراص (Sleuth Kit)، ربط الأدلة
تدقيق الكود المصدريفحص AST للبايثون، فحص أنماط C/C++ بالتعبيرات النمطية
إعداد التقاريرتقارير تعتمد على الجلسات مع تعيين MITRE ATT&CK، توليد قواعد SIGMA، تقارير VEX، توصيل عبر البريد الإلكتروني
المتغيرالافتراضيالوصف
MCP_TRANSPORTstdioوضع النقل: stdio أو http
REVERSECORE_WORKSPACE./ (cwd)دليل مساحة عمل التحليل
REVERSECORE_READ_DIRS""قائمة مفصولة بفواصل من الأدلة الإضافية للقراءة فقط
REVERSECORE_STRICT_PATHSfalseإثارة أخطاء للمسارات المفقودة بدلاً من التحذيرات
REVERSECORE_STRUCTURED_ERRORSfalseتفعيل استجابات الأخطاء المنظمة مع رموز الأخطاء
REVERSECORE_DEFAULT_TOOL_TIMEOUT120مهلة تنفيذ الأداة الافتراضية بالثواني
REVERSECORE_MAX_OUTPUT_SIZE10000000الحد الأقصى لحجم الإخراج للأدوات (بايت)
المتغيرالافتراضيالوصف
MCP_HOST0.0.0.0واجهة المضيف للربط (تتجاوز تلقائيًا إلى 127.0.0.1 إذا لم يكن هناك مفتاح API)
MCP_PORT8000منفذ خادم HTTP
MCP_API_KEY(غير مضبوط)مفتاح API لمصادقة HTTP (X-API-Key أو Authorization: Bearer)
REVERSECORE_RATE_LIMIT60الحد الأقصى للطلبات في الدقيقة (وضع HTTP فقط، عبر slowapi)
MAX_UPLOAD_SIZE100000000الحد الأقصى لحجم الرفع (100 ميجابايت افتراضيًا)
FILE_RETENTION_MINUTES1440فترة الاحتفاظ بالملفات المرفوعة (24 ساعة افتراضيًا)
المتغيرالافتراضيالوصف
REVERSECORE_R2_POOL_SIZE3عدد اتصالات Radare2 في التجمع
REVERSECORE_R2_POOL_TIMEOUT30مهلة الحصول على اتصال من التجمع
REVERSECORE_R2_EXTENSIONS""قائمة مفصولة بفواصل من فئات امتدادات r2 (module:ClassName)
REVERSECORE_GHIDRA_MAX_PROJECTS3الحد الأقصى لمشاريع مفكك r2ghidra المخزنة مؤقتًا
REVERSECORE_GHIDRA_EXTENSIONS""قائمة مفصولة بفواصل من فئات امتدادات Ghidra
MAX_EMULATION_INSTRUCTIONS1000الحد الأقصى لتعليمات محاكاة ESIL
المتغيرالافتراضيالوصف
REVERSECORE_SANDBOX_ENABLEDfalseتفعيل تنفيذ العزل لأدوات التحليل الديناميكي
REVERSECORE_SANDBOX_MODEautoوضع العزل: auto أو host أو container أو disabled
REVERSECORE_SANDBOX_DOCKER_IMAGEreversecore-sandbox:latestصورة Docker لتنفيذ العزل
REVERSECORE_SANDBOX_CPU_LIMIT1.0حد نوى وحدة المعالجة المركزية لحاويات العزل
REVERSECORE_SANDBOX_MEMORY_LIMIT512mحد الذاكرة لحاويات العزل
REVERSECORE_SANDBOX_PIDS_LIMIT100حد معرفات العمليات (PID) لحاويات العزل
REVERSECORE_SANDBOX_USERnobodyمستخدم غير جذري لتنفيذ العزل
المتغيرالافتراضيالوصف
REDIS_URLredis://localhost:6379/0عنوان Redis لقائمة مهام الانتظار وتخزين النتائج مؤقتًا
MEMORY_DB_PATH~/.reversecore_mcp/memory.dbمسار قاعدة بيانات ذاكرة الذكاء الاصطناعي SQLite
REVERSECORE_LIEF_MAX_FILE_SIZE1000000000الحد الأقصى لحجم الملف لعملية تحليل LIEF (1 جيجابايت)
المتغيرالافتراضيالوصف
LOG_LEVELINFOمستوى تفاصيل السجلات: DEBUG أو INFO أو WARNING أو ERROR
LOG_FILE<tempdir>/reversecore/app.logمسار ملف السجل
LOG_FORMAThumanتنسيق السجل: human (قابل للقراءة) أو json (منظم)
التحكمالتنفيذ
لا حقن أوامرجميع استدعاءات العمليات الفرعية تستخدم وسائط قائمة، ولا تستخدم سلاسل أوامر أبدًا (execution.py)
منع اجتياز المسارvalidate_file_path() و validate_binary_path() يحلّان الروابط الرمزية ويقيّدان الوصول إلى مساحة العمل (validators.py)
تخفيف TOCTOUعلامة bypass_cache=True تعيد التحقق من المسارات لمنع حالات السباق
تنقية المدخلاتتُنقّى جميع المعاملات قبل التنفيذ (security.py)
حماية CSRFنماذج لوحة التحكم تتطلب تحققًا قائمًا على الرموز لـ CSRF (dashboard/__init__.py)
التحكمالتنفيذ
مصادقة آمنة ضد هجمات التوقيتsecrets.compare_digest() لمقارنة مفتاح API (web/auth.py)
مسارات مصادقة مقيدةتُقبل رؤوس X-API-Key و Authorization: Bearer فقط؛ لا معاملات استعلام أو ملفات تعريف ارتباط
احتكار الاتصال المحلي (Loopback) عند غياب المفتاحبدون MCP_API_KEY، يقتصر وصول HTTP على 127.0.0.1 (web/middleware.py)
تحديد المعدلحدود قابلة للتكوين في الدقيقة عبر slowapi
ترويسات أمنيةHSTS و X-Content-Type-Options و X-Frame-Options و CSP على جميع استجابات HTTP (web/middleware.py)
تصغير /healthنقطة النهاية العامة تُرجع فقط {"status": "alive"}؛ التفاصيل خلف المصادقة (web/endpoints.py)
التحكمالتنفيذ
فحص الأسراريعمل Gitleaks عند كل إرسال (ربط ما قبل الالتزام + CI)
SASTيفحص Bandit جميع أكواد Python عند كل إرسال
CodeQLتحليل ثابت من GitHub CodeQL عند كل دفع إلى main
تدقيق التبعياتpip-audit عند كل دفع — لا ثغرات CVE غير مراجعة
فحص الحاوياتيفحص Trivy صور Docker بحثًا عن الثغرات (من LOW إلى CRITICAL)
بوابة أمان الاستغلالتُفحص قوالب POC مع Bandit؛ اختبار التشويش (fuzzing) بواسطة Hypothesis DAST؛ التحقق من عزل الحاوية
العلامةالغرض
@pytest.mark.unitاختبارات وحدة سريعة
@pytest.mark.integrationاختبارات تتطلب Docker أو أدوات خارجية
@pytest.mark.slowاختبارات طويلة التشغيل
@pytest.mark.benchmarkمعايير الأداء
@pytest.mark.securityاختبارات التحقق من حدود الأمان
الخدمةالملف التعريفيالوصف
reversecore-mcpdefault, x86Intel/AMD x86_64
reversecore-mcp-arm64arm64, macosApple Silicon ARM64
redisجميع الملفاتRedis 7 Alpine لقائمة المهام والتخزين المؤقت
المكوّنالحد الأدنىالموصى به
CPU4 أنوية8+ أنوية
RAM8 جيجابايت16 جيجابايت
التخزين20 جيجابايت50 جيجابايت SSD
نظام التشغيلLinux / macOSبيئة Docker (أي نظام تشغيل)
Docker20.10+24.0+
Python (الوضع المحلي)3.103.11 أو 3.12
الاستثناءالرمزالنوعمتى
ReversecoreErrorRCMCP-E000UNKNOWN_ERRORالفئة الأساسية لجميع الأخطاء
ValidationErrorRCMCP-E001VALIDATION_ERRORإدخال غير صالح، معاملات خاطئة
ExecutionTimeoutErrorRCMCP-E002TIMEOUT_ERRORتجاوزت الأداة المهلة الزمنية
ToolNotFoundErrorRCMCP-E003TOOL_ERRORأداة سطر الأوامر المطلوبة غير مثبتة
OutputLimitExceededErrorRCMCP-E004OUTPUT_ERRORتجاوز حجم المخرج الحد الأقصى
ToolExecutionErrorRCMCP-E005EXECUTION_ERRORأرجعت العملية الفرعية قيمة غير صفرية
BinaryAnalysisErrorRCMCP-E100BINARY_ANALYSIS_ERRORفشل عام في تحليل الملفات الثنائية
DecompilationErrorRCMCP-E101DECOMPILATION_ERRORفشل فك الترجمة بواسطة r2ghidra
DisassemblyErrorRCMCP-E102DISASSEMBLY_ERRORفشل التفكيك بواسطة Radare2
StructureRecoveryErrorRCMCP-E103STRUCTURE_RECOVERY_ERRORفشل استعادة بنية C
SignatureGenerationErrorRCMCP-E104SIGNATURE_GENERATION_ERRORفشل توليد توقيع YARA/التوقيعات
EmulationErrorRCMCP-E105EMULATION_ERRORفشل المحاكاة عبر ESIL
ToolTimeoutErrorRCMCP-E200TOOL_TIMEOUT_ERRORانتهت مهلة أداة خارجية
GhidraConnectionErrorRCMCP-E201GHIDRA_CONNECTION_ERRORمشكلة اتصال r2ghidra
Radare2ErrorRCMCP-E202RADARE2_ERRORفشل أمر Radare2
WorkspaceErrorRCMCP-E300WORKSPACE_ERRORخطأ في الوصول إلى ملف مساحة العمل
SecurityViolationErrorRCMCP-E301SECURITY_VIOLATIONانتهاك سياسة الأمان
PathTraversalErrorRCMCP-E302PATH_TRAVERSALتم اكتشاف محاولة اجتياز المسار
المستوىالواجهة الخلفيةتنسيق المفتاحTTLالغرض
L1Redisghidra:decompile:{file_hash}:{function_address}:{decompiler}ساعة واحدة (3600 ثانية)سريع، مشترك عبر الجلسات
L2SQLiteالجدول decompilation_cacheدائميبقى بعد إعادة تشغيل Redis