Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Reversecore_MCP — Ein Security-first-MCP-Server, der KI-Agenten befähigt, automatisiert Reverse Engineering, Malware-Analyse, Forensik, Schwachstellenforschung und SAST durchzuführen — unterstützt von Radare2, YARA, LIEF, Capstone und mehr. | Kitploit
Tools/GitHubGitHub/sjkim1127/reversecore_mcp
Management von Indicators of Compromise (IOC)Statische AnalyseDynamische Analyse (Sandboxing)SchwachstellenanalyseReverse EngineeringFuzzingMalware-AnalyseDigitale ForensikBinäranalyseIncident Response
GitHubsjkim1127/reversecore_mcp
185184vor 5h 23mVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Reversecore_MCP

Ein Security-first-MCP-Server, der KI-Agenten befähigt, automatisiert Reverse Engineering, Malware-Analyse, Forensik, Schwachstellenforschung und SAST durchzuführen — unterstützt von Radare2, YARA, LIEF, Capstone und mehr.

Repository anzeigen
Teilen
Reversecore MCP

Reversecore MCP

KI-gestützte Reverse-Engineering- & Sicherheitsanalyse über das Model Context Protocol

Ein MCP-Server, der KI-Assistenten wie Claude und Cursor in die Lage versetzt, Reverse Engineering, Malware-Analyse, Schwachstellenforschung, digitale Forensik und Quellcode-Audits über natürliche Sprache durchzuführen.


CI/CD Python License: MIT Tests Coverage FastMCP PyPI

Docker
OpenSSF Scorecard
HVTrust

Watch the Demo SafeSkill Verified


Inhaltsverzeichnis

  • Was ist Reversecore MCP?
  • Architektur
  • Tool-Katalog (120 Tools)
  • Geführte Analyse-Prompts (22 Modi)
  • MCP-Ressourcen (11 URIs)
  • Schnellstart
  • Mit Ihrem KI-Client verbinden
  • Konfiguration
  • Sicherheitsmodell
  • Entwicklung
  • CI/CD-Pipeline
  • Docker-Build-Architektur
  • Systemanforderungen
  • Projektstruktur
  • Fehlerbehandlung
  • Neue Tools hinzufügen
  • Beitragen
  • Dokumentation
  • Lizenz

Was ist Reversecore MCP?

Reversecore MCP ist ein Model Context Protocol-Server, der 120 Analysetools in einer einzigen Schnittstelle bündelt, die KI-Assistenten über natürliche Sprache aufrufen können.

Anstatt die Kommandozeilensyntax für ein Dutzend verschiedener Tools zu lernen, beschreiben Sie einfach, was Sie möchten:``` "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:~
Der KI-Assistent zerlegt dies in Tool-Aufrufe:```
r2_decompile("sample.exe", "main")
  → extract_iocs("sample.exe")
    → add_mitre_technique(technique_id="T1071.001", ...)
      → create_analysis_report(template_type="quick_triage")

Jedes Tool gibt ein strukturiertes ToolResult (entweder ToolSuccess oder ToolError) mit typisierten Daten zurück, über die die KI nachdenken, sie zu Folgeabfragen verketten oder für den Benutzer darstellen kann.

Was es abdeckt

BereichWas du tun kannst
Statische AnalyseDisassemblierung, Dekompilierung (r2ghidra), Binärdatei-Analyse (LIEF), Packer-Erkennung (DIE), Fähigkeitserkennung (CAPA), String-Extraktion, Firmware-Scan (binwalk)
Dynamisch & symbolischESIL-Emulation, symbolische Ausführung mit angr, Taint-Analyse, Generierung von Fuzzing-Harnesses
Malware-AnalyseIOC-Extraktion, YARA-Scanning, Erkennung ruhender Hintertüren, adaptive Impfstoffgenerierung, autonome Jagd nach Schwachstellen
SchwachstellenforschungErkennung gefährlicher APIs, ROP-Gadget-Entdeckung, Heap-Exploit-Analyse, Crash-Triage, PoC-Generierung
Digitale ForensikSpeicherforensik (Volatility3), PCAP-Analyse (Scapy), Disk-Forensik (Sleuth Kit), Artefakt-Korrelation
Quellcode-AuditPython-AST-Scanning, C/C++-Regex-Muster-Scanning
BerichterstattungSitzungsbasierte Berichte mit MITRE ATT&CK-Zuordnung, SIGMA-Regelgenerierung, VEX-Berichte, E-Mail-Zustellung

Architektur```

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:~
### Kerninfrastruktur (37 Module)

Das Verzeichnis `reversecore_mcp/core/` enthält die gemeinsame Infrastruktur, auf der alle Werkzeuge aufbauen:

| Modul | Zweck |
|---|---|
| `config.py` | Pydantic-BaseSettings mit 34+ Umgebungsvariablen |
| `security.py` | Eingabebereinigung, Validierung von Befehlsargumenten |
| `validators.py` | Validierung von Datei- und Binärpfaden mit TOCTOU-Minderung, Symlink-Auflösung |
| `r2_pool.py` | Thread-sicherer Radare2-Verbindungspool mit konfigurierbarer Größe |
| `r2_helpers.py` | Strukturiertes Parsen der Radare2-Ausgabe |
| `metrics.py` | Ausführungszeiten pro Werkzeug, Aufrufzahlen, Fehlerraten, Cache-Statistiken |
| `memory.py` | Asynchroner, auf SQLite basierender KI-Speicher zur persistenten Ablage von Analyseergebnissen über Sitzungen hinweg |
| `mitre_mapper.py` | Engine zur Zuordnung von MITRE-ATT&CK-Techniken-IDs |
| `evidence.py` | System zur Klassifizierung von Beweisen: `OBSERVED`, `INFERRED`, `POSSIBLE` |
| `resilience.py` | Dekorator-Muster für Wiederholungen, Circuit-Breaker und Timeouts |
| `task_queue.py` | Hintergrund-Warteschlange über Redis + arq |
| `extension_registry.py` | Plugin-Registrierung und Lebenszyklusverwaltung |
| `arch_registry.py` | Multi-Architektur-Zuordnung (x86, x86_64, ARM32, ARM64, MIPS, RISC-V, PPC → r2 arch/bits/registers) |
| `result_cache.py` | Auf SHA256 basierender Cache-Dekorator für Werkzeugergebnisse (`@cache_tool_result`) |
| `analysis_cache.py` | Mehrstufiger Dekompilierungs-Cache (L1: Redis, L2: SQLite) |
| `result.py` | Pydantic-Modelle `ToolSuccess` / `ToolError` |
| `exceptions.py` | 17 Ausnahmeklassen mit `RCMCP-E*`-Fehlercodes |
| `decorators.py` | `@log_execution`, `@track_metrics` |
| `error_handling.py` | Dekorator `@handle_tool_errors` |
| `error_formatting.py` | Strukturierte Formatierung von Fehlerantworten |
| `execution.py` | Sichere Subprozess-Ausführung mit Timeout und Ausgabelimits |
| `command_spec.py` | Befehlsspezifikation für Subprozessaufrufe |
| `loader.py` | Dynamischer Lader für Werkzeugmodule |
| `plugin.py` | Basisklasse für Plugins |
| `extension.py` | Basisklasse für Erweiterungen |
| `container.py` | Unterstützung für Container-/Sandbox-Ausführung |
| `audit.py` | Audit-Protokollierung |
| `binary_cache.py` | Zwischenspeicherung von Binärdateien |
| `json_utils.py` | JSON-Serialisierung über orjson (3-5x schneller als stdlib-json) |
| `logging_config.py` | Strukturierte Protokollierung auf Loguru-Basis |
| `report_generator.py` | Render-Engine für Berichte (Markdown, PDF über xhtml2pdf) |
| `resource_manager.py` | Lebenszyklusverwaltung für MCP-Ressourcen |
| `sast/python_ast_scanner.py` | Auf Python-AST basierender Schwachstellenscanner |
| `sast/regex_scanner.py` | Auf Regex basierender Schwachstellenscanner für C/C++ |
| `sast/rule_manager.py` | Laden und Verwaltung von SAST-Regeln |

---

## Werkzeugkatalog (120 Werkzeuge)

Jedes Werkzeug gibt ein strukturiertes `ToolResult` zurück — entweder ein `ToolSuccess` mit typisiertem `data`-Feld oder ein `ToolError` mit einem `RCMCP-E*`-Fehlercode. Die Werkzeuge sind in 8 Plugins organisiert.

---

### 🔍 Plugin für statische Analyse (24 Werkzeuge)

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 1 | `run_strings` | `strings` CLI | Extraktion von ASCII/Unicode-Zeichenketten mit konfigurierbarer Mindestlänge |
| 2 | `run_binwalk` | Binwalk | Tiefenscan von Firmware auf eingebettete Signaturen und Dateisysteme |
| 3 | `run_binwalk_extract` | Binwalk | Extrahiert von binwalk entdeckte eingebettete Dateien |
| 4 | `parse_binary_with_lief` | LIEF | Vollständiges Parsen von PE-/ELF-/Mach-O-Headern, Sektionen, Imports/Exports, TLS |
| 5 | `detect_packer` | DIE | Schnelle Packer-/Compiler-Erkennung |
| 6 | `detect_packer_deep` | DIE (`diec`) | Tiefenanalyse von Packern/Protectoren über Detect It Easy |
| 7 | `run_capa` | CAPA (Mandiant FLARE) | Fähigkeitserkennung — "verschlüsselt Daten", "erzeugt Persistenz" usw. |
| 8 | `run_capa_quick` | CAPA | Schneller Fähigkeitenscan mit einer Teilmenge von Regeln |
| 9 | `generate_signature` | Radare2 | Erzeugt Binärsignaturen zur Identifizierung |
| 10 | `generate_yara_rule` | Radare2 + YARA | Erzeugt YARA-Erkennungsregeln aus Binärmustern |
| 11 | `generate_advanced_yara_rule` | Radare2 + YARA | Fortgeschrittene YARA-Regeln mit Verhaltensindikatoren |
| 12 | `scan_for_versions` | LIEF + strings | Durchsucht Binärdateien nach eingebetteten Versionszeichenketten |
| 13 | `extract_rtti_info` | Radare2 | Extrahiert C++-RTTI (Run-Time Type Information) |
| 14 | `diff_binaries` | Radare2 | Semantischer Binärdiff zwischen zwei Dateiversionen |
| 15 | `analyze_variant_changes` | Radare2 | Analysiert Änderungen zwischen Binärvarianten |
| 16 | `match_libraries` | Radare2 | Identifiziert statisch verknüpfte Bibliotheken anhand von Funktions-Fingerprints |
| 17 | `patch_diff_1day` | Radare2 + Heuristiken | Automatisierte Patch-Diff-Analyse für die 1-Day-Schwachstellenforschung |
| 18 | `analyze_patch_diff_auto` | Radare2 + Inferenz | Automatisierte Ableitung von Patch-Schwachstellen |
| 19 | `emulate_binary` | Radare2 ESIL | Code-Emulation mit Register-/Speicher-Tracing |
| 20 | `generate_fuzzing_harness` | Qiling + AFL++ | Erzeugt ein Fuzzing-Harness, das auf eine bestimmte Funktion abzielt |
| 21 | `run_fuzzing_campaign` | AFL++ | Führt eine vollständige Fuzzing-Kampagne mit Crash-Sammlung durch |
| 22 | `triage_crash` | GDB | Crash-Analyse und Bewertung der Ausnutzbarkeit |
| 23 | `verify_path_and_get_args` | angr | Symbolische Ausführung — Pfaderreichbarkeit beweisen und konkrete Eingaben berechnen |
| 24 | `taint_trace` | Radare2 + angr | Taint-Analyse des Datenflusses von Quellen zu Senken |

---

### 🔐 Quellcode-Audit-Plugin (1 Werkzeug)

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 25 | `audit_source_code` | AST + Regex | Python-AST-Scan + C/C++-Regex-Scan auf gefährliche Muster |

---

### 🛠️ Plugin für allgemeine Hilfsfunktionen (20 Werkzeuge)

**Dateioperationen (5 Werkzeuge)**

| # | Tool | Beschreibung |
|---|---|---|
| 26 | `run_file` | Dateityp-, Architektur- und Compiler-Fingerprinting |
| 27 | `copy_to_workspace` | Kopiert eine Datei in den Analyse-Arbeitsbereich |
| 28 | `create_directory` | Erstellt ein Verzeichnis im Arbeitsbereich |
| 29 | `list_workspace` | Listet alle Dateien im Arbeitsbereich auf |
| 30 | `scan_workspace` | Vollständiger Scan des Arbeitsbereichs mit Dateimetadaten |

**Patch-Erklärung (1 Werkzeug)**

| # | Tool | Beschreibung |
|---|---|---|
| 31 | `explain_patch` | Erklärt einen Binär-Patch in natürlicher Sprache |

**Assembler (1 Werkzeug)**

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 32 | `assemble_instructions` | Keystone | Assembliert Befehle zu Maschinencode (x86, ARM, MIPS usw.) |

**KI-Speicherverwaltung (11 Werkzeuge)**

Diese Werkzeuge ermöglichen der KI, Erkenntnisse über Analysesitzungen hinweg mithilfe einer asynchronen SQLite-Datenbank dauerhaft zu speichern und abzurufen:

| # | Tool | Beschreibung |
|---|---|---|
| 33 | `create_memory_session` | Startet eine neue Speichersitzung für eine Analyse |
| 34 | `store_analysis_finding` | Speichert ein Analyseergebnis dauerhaft mit Tags |
| 35 | `query_analysis_memories` | Durchsucht frühere Erkenntnisse per Abfrage |
| 36 | `get_binary_analysis_context` | Ruft den gesamten Kontext für eine bestimmte Binärdatei ab |
| 37 | `tag_analysis_session` | Fügt einer Sitzung Tags zur Organisation hinzu |
| 38 | `search_memories_by_tag` | Findet Sitzungen/Erkenntnisse nach Tag |
| 39 | `delete_analysis_session` | Entfernt eine Sitzung und deren Erkenntnisse |
| 40 | `cleanup_expired_sessions` | Entfernt Sitzungen, die älter als ein Schwellwert sind |
| 41 | `list_analysis_sessions` | Listet alle aktiven Sitzungen auf |
| 42 | `export_memory_store` | Exportiert alle Erkenntnisse in ein portables Format |
| 43 | `import_memory_store` | Importiert Erkenntnisse aus einer Exportdatei |

**Serverüberwachung (2 Werkzeuge)**

| # | Tool | Beschreibung |
|---|---|---|
| 44 | `get_server_health` | Uptime, Speichernutzung, geladene Werkzeuge, Python-Version |
| 45 | `get_tool_metrics` | Aufrufzahlen pro Werkzeug, mittlere Ausführungszeiten, Fehlerraten, Cache-Treffer/-Fehlschläge |

---

### ⚙️ Radare2- & r2ghidra-Plugin (30 Werkzeuge)

Alle Radare2-Werkzeuge verwenden einen thread-sicheren Verbindungspool (`r2_pool.py`), der r2pipe-Sitzungen automatisch verwaltet.

| # | Tool | Beschreibung |
|---|---|---|
| 46 | `Radare2_open_file` | Öffnet eine Binärdatei in Radare2 |
| 47 | `Radare2_close_file` | Schließt eine Radare2-Sitzung |
| 48 | `Radare2_list_open_files` | Listet aktuell geöffnete Dateien auf |
| 49 | `Radare2_analyze_binary` | Führt eine vollständige Auto-Analyse durch (`aaa`) |
| 50 | `Radare2_list_functions` | Listet alle erkannten Funktionen auf |
| 51 | `Radare2_disassemble_function` | Disassembliert eine bestimmte Funktion |
| 52 | `Radare2_disassemble_address` | Disassembliert an einer bestimmten Adresse |
| 53 | `Radare2_decompile_function` | Dekompiliert über r2ghidra (in r2 eingebettete Ghidra-Engine, kein JVM erforderlich) |
| 54 | `Radare2_list_exports` | Listet exportierte Symbole auf |
| 55 | `Radare2_list_imports` | Listet importierte Funktionen auf |
| 56 | `Radare2_list_sections` | Listet Binärsektionen mit Entropie auf |
| 57 | `Radare2_list_strings` | Listet in der Binärdatei gefundene Zeichenketten auf |
| 58 | `Radare2_find_cross_references` | Verfolgt Funktionsaufrufe und Datenreferenzen |
| 59 | `Radare2_search_bytes` | Sucht nach Byte-Mustern in der Binärdatei |
| 60 | `Radare2_get_binary_info` | Ruft Binärmetadaten ab (Architektur, Format, Byte-Reihenfolge) |
| 61 | `Radare2_execute_command` | Führt einen rohen Radare2-Befehl aus |
| 62 | `Radare2_esil_emulate` | ESIL-Emulation an einer bestimmten Adresse |
| 63 | `Radare2_get_hexdump` | Hex-Dump an einer virtuellen Adresse |
| 64 | `Radare2_get_cfg_data` | Extrahiert Daten des Kontrollflussgraphen |
| 65 | `Radare2_generate_cfg_png` | Erzeugt den Kontrollflussgraphen als PNG-Bild |
| 66 | `Radare2_generate_callgraph` | Erzeugt einen Funktionsaufruf-Graphen |
| 67 | `Radare2_recover_structures` | Stellt C-Strukturen automatisch wieder her und speichert sie in der Annotationsdatenbank |
| 68 | `Radare2_decompile_with_r2ghidra` | Hochwertige C-Dekompilierung mit Zwischenspeicherung |
| 69 | `Radare2_annotate_binary` | Fügt der Binärdatei Annotationen hinzu |
| 70 | `Radare2_get_annotations` | Ruft Annotationen ab |
| 71 | `Radare2_export_annotations` | Exportiert Annotationen in eine Datei |
| 72 | `Radare2_import_annotations` | Importiert Annotationen aus einer Datei |
| 73 | `Radare2_detect_crypto_constants` | Erkennt kryptografische Konstanten (AES-S-Box usw.) |
| 74 | `Radare2_find_gadgets` | Findet ROP-/JOP-Gadgets |
| 75 | `Radare2_calculate_entropy` | Berechnet die Entropie pro Sektion |

---

### 🦠 Malware-Analyse-Plugin (9 Werkzeuge)

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 76 | `dormant_detector` | Radare2 + Heuristiken | Findet versteckte Hintertüren, verwaiste Funktionen, Zeitbomben, Logikbomben |
| 77 | `adaptive_vaccine` | YARA + Radare2 | Erzeugt YARA-Erkennungsregeln + Binär-Patches zur Neutralisierung von Bedrohungen |
| 78 | `vulnerability_hunter` | Radare2 + Analyse | Erkennt gefährliche API-Muster (strcpy, sprintf) und ROP-Gadget-Ketten |
| 79 | `extract_iocs` | Regex + LIEF | Extrahiert IPs, URLs, Domains, Hashes, Registrierungsschlüssel, Krypto-Adressen |
| 80 | `run_yara` | YARA | Scannt mit eigenen Regeldateien und integrierten Regelsätzen |
| 81 | `generate_poc_exploit` | pwntools | Erzeugt Proof-of-Concept-Exploit-Code |
| 82 | `build_rop_chain` | ROPgadget + pwntools | Automatisierte Konstruktion von ROP-Ketten |
| 83 | `autonomous_vuln_hunt` | Radare2 + angr | Autonome Pipeline zur Schwachstellensuche |
| 84 | `analyze_heap_exploit` | Radare2 + Heuristiken | Analyse der Heap-Ausnutzung (UAF, Double-Free, Overflow) |

---

### 🕵️ Plugin für digitale Forensik (22 Werkzeuge)

**Speicher-Forensik (6 Werkzeuge)**

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 85 | `memory_analyze` | Volatility3 | Vollständige Speicher-Dump-Analyse |
| 86 | `memory_list_processes` | Volatility3 | Listet laufende Prozesse aus dem Speicher-Dump auf |
| 87 | `memory_detect_injections` | Volatility3 | Erkennt Code-Injektion im Prozessspeicher |
| 88 | `memory_extract_strings` | Volatility3 | Extrahiert Zeichenketten aus dem Prozessspeicher |
| 89 | `memory_dump_module` | Volatility3 | Erstellt einen Dump eines geladenen Moduls aus dem Speicher |
| 90 | `memory_list_symbols` | Volatility3 | Listet Symbole aus dem Speicher auf |

**Datenträger-Forensik (6 Werkzeuge)**

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 91 | `disk_list_partition` | Sleuth Kit | Listet Datenträgerpartitionen auf |
| 92 | `disk_list_files` | Sleuth Kit | Listet Dateien in einem Datenträgerabbild auf |
| 93 | `disk_recover_deleted` | Sleuth Kit | Stellt gelöschte Dateien wieder her |
| 94 | `disk_analyze_mft` | Sleuth Kit | Analysiert die NTFS-Master File Table |
| 95 | `disk_extract_file` | Sleuth Kit | Extrahiert eine Datei aus einem Datenträgerabbild |
| 96 | `disk_hash_verify` | Sleuth Kit | Verifiziert die Dateiintegrität per Hash |

**Netzwerk-Forensik (5 Werkzeuge)**

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 97 | `pcap_analyze` | Scapy | PCAP-Analyse: Protokollaufschlüsselung, Anomalien |
| 98 | `pcap_list_connections` | Scapy | Listet alle Netzwerkverbindungen auf |
| 99 | `pcap_extract_dns` | Scapy | Extrahiert DNS-Abfragen und -Antworten |
| 100 | `pcap_extract_c2` | Scapy | Identifiziert potenzielle C2-Kommunikation |
| 101 | `pcap_reconstruct_stream` | Scapy | Rekonstruiert TCP-Streams |

**Artefakt-Analyse (5 Werkzeuge)**

| # | Tool | Backend | Beschreibung |
|---|---|---|---|
| 102 | `artifact_collect` | Eigene Parser | Sammelt Browserverlauf, Registry-Hives, Ereignisprotokolle, Prefetch |
| 103 | `artifact_correlate_ioc` | Eigene Parser | Korreliert Artefakte mit bekannten IOCs |
| 104 | `artifact_generate_yara` | YARA | Erzeugt YARA-Regeln aus Artefaktmustern |
| 105 | `artifact_timeline` | Eigene Parser | Erstellt eine Zeitleiste aus mehreren Artefaktquellen |
| 106 | `artifact_report` | Eigene Parser | Erzeugt einen Artefakt-Analysebericht |

---

### 📝 Plugin zur Berichterstellung (14 Werkzeuge)

| # | Tool | Beschreibung |
|---|---|---|
| 107 | `get_system_time` | Ruft den Server-Zeitstempel ab (verhindert, dass die KI Datumsangaben erfindet) |
| 108 | `set_timezone` | Legt die Zeitzone für die Berichterstellung fest |
| 109 | `get_timezone_info` | Ruft Informationen zur aktuellen Zeitzone ab |
| 110 | `start_report_session` | Startet eine zeitgesteuerte Analysesitzung mit eindeutiger ID |
| 111 | `end_report_session` | Schließt die Sitzung ab: Dauer berechnen, IOC-/ATT&CK-Listen sperren |
| 112 | `get_report_session_status` | Prüft den Sitzungsstatus |
| 113 | `list_report_sessions` | Listet alle aktiven/abgeschlossenen Sitzungen auf |
| 114 | `add_ioc` | Sammelt und taggt IOCs während einer laufenden Sitzung |
| 115 | `add_analysis_note` | Fügt kategorisierte Notizen hinzu (Erkenntnis, Warnung, Verhalten) |
| 116 | `add_mitre_technique` | Dokumentiert MITRE-ATT&CK-Techniken-IDs |
| 117 | `set_severity` | Legt den Schweregrad der Sitzung fest (niedrig/mittel/hoch/kritisch) |
| 118 | `create_analysis_report` | Rendert den Bericht in 4 Modi: `full_analysis`, `quick_triage`, `ioc_summary`, `executive_brief` |
| 119 | `generate_vex_report` | Erzeugt einen VEX-Bericht (Vulnerability Exploitability eXchange) |
| 120 | `generate_sigma_rule` | Erzeugt SIGMA-Erkennungsregeln |

---

## Geführte Analyse-Prompts (22 Modi)

Prompts sind vorgefertigte Analyse-Workflows, die die KI mit einer strukturierten Persona, schrittweisen Werkzeugnutzungs-Sequenzen und Beweisklassifizierungsregeln vorbereiten. Sie aktivieren sie, indem Sie den Prompt-Namen in Ihrem KI-Client referenzieren.

### Malware-Analyse (9 Prompts)

| Prompt | Anwendungsfall |
|---|---|
| `full_analysis_mode` | Umfassende Analyse in 6 Phasen: Triage → Disassemblierung → Verhalten → Netzwerk → Persistenz → Bericht |
| `malware_analysis_mode` | Gezielte Malware-Analyse mit Bedrohungsklassifizierung |
| `basic_analysis_mode` | Schnelle Triage für erste Einschätzung und schnelle Bewertungen |
| `apt_hunting_mode` | APT-spezifische Suche: Lateral Movement, Persistenz, Datenexfiltration |
| `malware_defense_mode` | Verteidigungsorientiert: Erkennungsregeln und Gegenmaßnahmen erzeugen |
| `unpacking_mode` | Analysiert und umgeht Packen/Verschleierung (Themida, VMProtect, UPX) |
| `c2_extraction_mode` | Extrahiert und analysiert C2-Kommunikationsinfrastruktur |
| `ransomware_triage_mode` | Ransomware-spezifische Triage: Verschlüsselungsanalyse, Bewertung der Schlüsselwiederherstellung |
| `code_similarity_mode` | Vergleicht Binärdateien auf Code-Ähnlichkeit und gemeinsame Abstammung |

### Sicherheitsforschung (6 Prompts)

| Prompt | Anwendungsfall |
|---|---|
| `vulnerability_research_mode` | Bug-Jagd: Pufferüberläufe, UAF, Befehlsinjektion |
| `crypto_analysis_mode` | Analyse kryptografischer Implementierungen und Erkennung von Schwächen |
| `firmware_analysis_mode` | IoT-/eingebettete Firmware: binwalk-Extraktion, UART-Zeichenketten, hartcodierte Zugangsdaten |
| `patch_analysis_mode` | Analyse von Sicherheits-Patches und Regressionstests |
| `source_code_audit_mode` | Sicherheitsaudit des Quellcodes (Python, C, C++) |
| `autonomous_vuln_hunt_mode` | Autonome Pipeline zur Schwachstellensuche |

### CVE-Forschung & Exploit-Entwicklung (5 Prompts)

| Prompt | Anwendungsfall |
|---|---|
| `taint_analysis_mode` | Taint-Analyse des Datenflusses: automatische Entdeckung von Pfaden von der Quelle zur Senke |
| `heap_exploit_mode` | Analyse der Heap-Ausnutzung und PoC-Erzeugung |
| `fuzzing_mode` | Einrichtung von Fuzzing-Kampagnen und Crash-Triage |
| `patch_diff_auto_mode` | Automatisierter Patch-Diff für die 1-Day-Schwachstellenforschung |
| `cve_discovery_pipeline_mode` | Vollständige CVE-Entdeckungspipeline: vom Patch-Diff zum funktionierenden Exploit |

### Sonstiges (2 Prompts)

| Prompt | Anwendungsfall |
|---|---|
| `game_analysis_mode` | Analyse von Spiel-Clients: Anti-Cheat-Erkennung, Protokoll-RE, Speicherinspektion |
| `report_generation_mode` | Strukturierter Sitzungs-Workflow mit Zuordnung von MITRE-ATT&CK-Techniken |

> **So funktionieren Prompts:** Jeder Prompt bereitet die KI mit einer strukturierten Analyse-Persona vor. Er enthält Kontrollpunkte für das Chain-of-Thought-Denken (an denen die KI innehalten und bewerten muss, bevor sie fortfährt) und Beweisklassifizierungsregeln, die verhindern, dass die KI Spekulationen als Tatsachen darstellt. Jede Erkenntnis muss als `OBSERVED` (direkt verifiziert), `INFERRED` (logisch aus der statischen Analyse abgeleitet) oder `POSSIBLE` (erfordert weitere Verifizierung) gekennzeichnet werden.

---

## MCP-Ressourcen (11 URIs)

Ressourcen sind schreibgeschützte Datenendpunkte, auf die KI-Clients über URI-Vorlagen zugreifen können. Sie ergänzen die Werkzeuge, indem sie strukturierte Daten bereitstellen, ohne dass explizite Werkzeugaufrufe erforderlich sind.

### Statische Ressourcen

| URI | Beschreibung |
|---|---|
| `reversecore://guide` | Werkzeugnutzungs-Leitfaden mit Dateipfadregeln und Best Practices |
| `reversecore://guide/structures` | Technischer Leitfaden zur Strukturwiederherstellung und Querverweis-Analyse |
| `reversecore://tools` | Vollständige Dokumentation für alle 120 registrierten Werkzeuge |
| `reversecore://logs` | Anwendungsprotokolle (letzte 100 Zeilen) |

### Dynamische Ressourcen (Virtuelles Dateisystem pro Binärdatei)

Diese URIs werden pro Binärdatei aufgelöst und rufen die entsprechenden Analysewerkzeuge bei Bedarf auf:

| URI-Vorlage | Beschreibung |
|---|---|
| `reversecore://{filename}/strings` | Extrahiert alle Zeichenketten aus einer Binärdatei |
| `reversecore://{filename}/iocs` | Extrahiert IOCs (IPs, URLs, E-Mails, Hashes) |
| `reversecore://{filename}/func/{address}/code` | Dekompilierter Pseudo-C-Code für eine Funktion |
| `reversecore://{filename}/func/{address}/asm` | Disassemblierung für eine Funktion |
| `reversecore://{filename}/func/{address}/cfg` | Kontrollflussgraph im Mermaid-Format |
| `reversecore://{filename}/functions` | Liste aller Funktionen in der Binärdatei |
| `reversecore://{filename}/dormant_detector` | Ergebnisse der Dormant-Detector-Analyse |

---

## Schnellstart

### Option 1 — PyPI (Am einfachsten)```bash
pip install reversecore-mcp
reversecore-mcp

Voraussetzungen: Radare2 muss auf Ihrem System installiert sein (r2 --version). YARA wird automatisch über yara-python installiert.

Option 2 — Docker (Empfohlen für volle Funktionalität)

Alle Analyse-Engines (Radare2, r2ghidra, YARA, Binwalk, Sleuth Kit, GDB, etc.) sind vorinstalliert:```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:~
### Option 3 — Aus dem Quellcode erstellen (Docker Compose)```bash
git clone https://github.com/sjkim1127/Reversecore_MCP.git
cd Reversecore_MCP
./scripts/run-docker.sh        # auto-detects Intel / Apple Silicon

Oder manuell:```bash docker compose --profile x86 up -d # Intel/AMD docker compose --profile arm64 up -d # Apple Silicon (M1/M2/M3)

root@kitploit:~
### Option 4 — Python (Lokale Entwicklung)```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

Voraussetzungen für den lokalen Modus: Radare2 muss auf Ihrem System installiert sein (r2 --version). Einzelne Tool-Backends (YARA, LIEF, Capstone usw.) werden über pip installiert. Für volle forensische Unterstützung benötigen Sie außerdem Volatility3, Scapy und Sleuth Kit.


Mit Ihrem KI-Client verbinden

Fügen Sie die Serverkonfiguration zu den Einstellungen Ihres IDE-Clients hinzu (z. B. ~/.cursor/mcp.json oder claude_desktop_config.json).

⚡ Option 1: Docker-Exec-Modus (empfohlen)

Wenn der Container über Docker Compose ausgeführt wird, leitet dieser Modus stdio direkt in den laufenden Container. Null Startlatenz, persistenter Speicher und volle Tool-Verfügbarkeit.```json { "mcpServers": { "Reversecore_MCP": { "command": "docker", "args": [ "exec", "-i", "-e", "MCP_TRANSPORT=stdio", "reversecore-mcp-arm64", "python", "-m", "reversecore_mcp.server" ] } } }

root@kitploit:~
> Ersetze `reversecore-mcp-arm64` durch `reversecore-mcp`, wenn du auf Intel/AMD bist.

---

### 🌐 Option 2: SSE-HTTP-Modus

Für netzwerkbasiertes Streaming (Server-Sent Events):```json
{
  "mcpServers": {
    "Reversecore_MCP": {
      "url": "http://localhost:8000/mcp/sse"
    }
  }
}

📦 Option 3: Stdio Mode (Docker-on-Demand)

Führt für jede Sitzung einen neuen, isolierten Container aus:

🍎 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" ] } } } ```
🪟 Windows```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" ] } } } ```

⚠️ Wichtig — Dateipfade in Docker

Ihr lokaler Ordner wird im Container unter /app/workspace bereitgestellt. Referenzieren Sie Dateien immer nur über den Dateinamen, nicht über Ihren lokalen vollständigen Pfad.

❌ Falsch✅ Richtig
r2_decompile("/Users/john/samples/mal.exe")r2_decompile("mal.exe")

Konfiguration

Alle Einstellungen können über Umgebungsvariablen oder eine .env-Datei bereitgestellt werden (siehe .env.example). Die Einstellungen werden über Pydantic BaseSettings mit dem Präfix REVERSECORE_ verwaltet.

Zentrale Einstellungen

VariableDefaultBeschreibung
MCP_TRANSPORTstdioTransportmodus: stdio oder http
REVERSECORE_WORKSPACE./ (cwd)Analyse-Arbeitsverzeichnis
REVERSECORE_READ_DIRS""Kommagetrennte Liste zusätzlicher schreibgeschützter Verzeichnisse
REVERSECORE_STRICT_PATHSfalseFehler für fehlende Pfade auslösen, anstatt Warnungen auszugeben
REVERSECORE_STRUCTURED_ERRORSfalseStrukturierte Fehlerantworten mit Fehlercodes aktivieren
REVERSECORE_DEFAULT_TOOL_TIMEOUT120Standard-Timeout für die Tool-Ausführung in Sekunden
REVERSECORE_MAX_OUTPUT_SIZE10000000Maximale Ausgabegröße für Tools (Bytes)

Einstellungen für den HTTP-Modus

VariableDefaultBeschreibung
MCP_HOST0.0.0.0Host-Schnittstelle zum Binden (wird automatisch auf 127.0.0.1 überschrieben, wenn kein API-Schlüssel vorhanden ist)
MCP_PORT8000Port für den HTTP-Server
MCP_API_KEY(nicht gesetzt)API-Schlüssel für die HTTP-Authentifizierung (X-API-Key oder Authorization: Bearer)
REVERSECORE_RATE_LIMIT60Maximale Anfragen pro Minute (nur HTTP-Modus, über slowapi)
MAX_UPLOAD_SIZE100000000Maximale Upload-Größe (Standard: 100 MB)
FILE_RETENTION_MINUTES1440Aufbewahrungszeitraum für hochgeladene Dateien (Standard: 24 h)

Radare2-Einstellungen

VariableDefaultBeschreibung
REVERSECORE_R2_POOL_SIZE3Anzahl der Radare2-Verbindungen im Pool
REVERSECORE_R2_POOL_TIMEOUT30Timeout für den Bezug einer Verbindung aus dem Pool
REVERSECORE_R2_EXTENSIONS""Kommagetrennte Liste der r2-Erweiterungsklassen (module:ClassName)
REVERSECORE_GHIDRA_MAX_PROJECTS3Maximale Anzahl zwischengespeicherter r2ghidra-Dekompilierer-Projekte
REVERSECORE_GHIDRA_EXTENSIONS""Kommagetrennte Liste der Ghidra-Erweiterungsklassen
MAX_EMULATION_INSTRUCTIONS1000Maximale Anzahl an ESIL-Emulationsanweisungen

Sandbox-Einstellungen

VariableDefaultBeschreibung
REVERSECORE_SANDBOX_ENABLEDfalseSandbox-Ausführung für dynamische Analysetools aktivieren
REVERSECORE_SANDBOX_MODEautoSandbox-Modus: auto, host, container, disabled
REVERSECORE_SANDBOX_DOCKER_IMAGEreversecore-sandbox:latestDocker-Image für die Sandbox-Ausführung
REVERSECORE_SANDBOX_CPU_LIMIT1.0CPU-Kernlimit für Sandbox-Container
REVERSECORE_SANDBOX_MEMORY_LIMIT512mSpeicherlimit für Sandbox-Container
REVERSECORE_SANDBOX_PIDS_LIMIT100PID-Limit für Sandbox-Container
REVERSECORE_SANDBOX_USERnobodyNicht-Root-Benutzer für die Sandbox-Ausführung

Speicher & Warteschlange

VariableDefaultBeschreibung
REDIS_URLredis://localhost:6379/0Redis-URL für Aufgabenwarteschlange und Ergebnis-Caching
MEMORY_DB_PATH~/.reversecore_mcp/memory.dbPfad zur SQLite-Datenbank des KI-Speichers
REVERSECORE_LIEF_MAX_FILE_SIZE1000000000Maximale Dateigröße für LIEF-Parsing (1 GB)

Protokollierung

VariableDefaultBeschreibung
LOG_LEVELINFOAusführlichkeit der Protokollierung: DEBUG, INFO, WARNING, ERROR
LOG_FILE<tempdir>/reversecore/app.logPfad zur Protokolldatei
LOG_FORMAThumanProtokollformat: human (lesbar) oder json (strukturiert)

Plugins & SAST

VariableDefaultBeschreibung
REVERSECORE_PLUGIN_DIRS""Kommagetrennte Verzeichnisse, die nach Erweiterungs-Plugins durchsucht werden sollen
REVERSECORE_SAST_RULES_PATH""Pfad zu einer benutzerdefinierten YAML-Datei mit SAST-Regeln

Sicherheitsmodell

Sicherheit wird als Defense-in-Depth umgesetzt, mit Schutzmaßnahmen auf mehreren Ebenen:

Eingabe- & Pfadsicherheit

MaßnahmeUmsetzung
Keine Shell-InjectionAlle Subprozess-Aufrufe verwenden Listenargumente, niemals Shell-Strings (execution.py)
Schutz vor Pfad-Traversalvalidate_file_path() und validate_binary_path() lösen Symlinks auf und beschränken den Zugriff auf das Arbeitsverzeichnis (validators.py)
TOCTOU-EntschärfungDas Flag bypass_cache=True validiert Pfade erneut, um Race Conditions zu verhindern
EingabebereinigungAlle Parameter werden vor der Ausführung bereinigt (security.py)
CSRF-SchutzDashboard-Formulare erfordern eine tokenbasierte CSRF-Validierung (dashboard/__init__.py)

Netzwerk & Authentifizierung

MaßnahmeUmsetzung
Timing-Angriff-sichere Authentifizierungsecrets.compare_digest() für den API-Schlüssel-Vergleich (web/auth.py)
Eingeschränkte AuthentifizierungsvektorenNur X-API-Key- und Authorization: Bearer-Header werden akzeptiert; keine Query-Parameter oder Cookies
Loopback-FallbackOhne MCP_API_KEY ist der HTTP-Zugriff auf 127.0.0.1 beschränkt (web/middleware.py)
RatenbegrenzungKonfigurierbare Limits pro Minute über slowapi
Sicherheits-HeaderHSTS, X-Content-Type-Options, X-Frame-Options, CSP auf allen HTTP-Antworten (web/middleware.py)
Minimierter /health-EndpunktDer öffentliche Endpunkt gibt nur {"status": "alive"} zurück; Details hinter der Authentifizierung (web/endpoints.py)

Container & Laufzeit

MaßnahmeUmsetzung
Nicht-Root-AusführungLäuft als appuser (UID 1000) mit minimalen Capabilities
RessourcengrenzenDocker Compose erzwingt CPU-Limits (2.0) und Speicherlimits (4 GB)
Sandbox-IsolationOptionale containerbasierte Sandbox für dynamische Analysetools

CI/CD-Sicherheits-Gates

MaßnahmeUmsetzung
Geheimnis-ScanGitleaks läuft bei jedem Commit (Pre-Commit-Hook + CI)
SASTBandit scannt bei jedem Commit den gesamten Python-Code
CodeQLGitHub-CodeQL-Statikanalyse bei jedem Push auf main
Abhängigkeitsprüfungpip-audit bei jedem Push – keine ungeprüften CVEs
Container-ScanTrivy scannt Docker-Images auf Schwachstellen (LOW bis CRITICAL)
Exploit-Sicherheits-GatePOC-Vorlagen werden mit Bandit gescannt; Hypothesis-DAST-Fuzzing; Container-Isolation wird verifiziert

Strukturierte Fehlerbehandlung

Alle 17 Ausnahmeklassen tragen RCMCP-E*-Fehlercodes für die programmatische Verarbeitung. Die vollständige Hierarchie finden Sie unter Fehlerbehandlung.


Entwicklung

Einrichtung```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:~
### Tests```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

Teststatus:

  • ✅ 1.957 Unit-Tests erfolgreich auf Python 3.10 / 3.11 / 3.12
  • 📊 87 % Codeabdeckung (mindestens 80 % in CI erzwungen)
  • 🔒 Keine Bandit-Befunde
  • ⚡ Vollständig asynchrone Testsuite mit pytest-asyncio

Testmarker:

MarkerZweck
@pytest.mark.unitSchnelle Unit-Tests
@pytest.mark.integrationTests, die Docker oder externe Werkzeuge erfordern
@pytest.mark.slowLange laufende Tests
@pytest.mark.benchmarkLeistungsbenchmarks
@pytest.mark.securityTests zur Validierung von Sicherheitsgrenzen

Codequalität```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-Hooks

Die folgenden Hooks werden bei jedem Commit automatisch ausgeführt:

1. **Ruff** — Linting mit automatischer Korrektur + Formatprüfung
2. **trailing-whitespace** — entfernt Leerzeichen am Zeilenende
3. **end-of-file-fixer** — stellt sicher, dass Dateien mit einer neuen Zeile enden
4. **check-yaml / check-json** — validiert YAML/JSON-Syntax
5. **check-added-large-files** — blockt Dateien > 1 MB
6. **check-merge-conflict** — erkennt ungelöste Merge-Marker
7. **detect-private-key** — verhindert versehentliche Key-Commits
8. **Bandit** — Python-Sicherheitsscan

---

## CI/CD-Pipeline

Jeder Push zu `main` löst 11 Pipeline-Jobs aus. Alle müssen vor der Bereitstellung erfolgreich sein.```
 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

Zero-Bypass-Richtlinie: CI/CD-Fehler werden niemals durch Änderung der Pipeline-Konfiguration behoben. Grundursachen werden immer direkt im Quellcode oder in Abhängigkeiten behoben.


Docker-Build-Architektur

Der Docker-Build verwendet einen zweistufigen Ansatz, um die Build-Zeiten überschaubar zu halten:

Ebene 1: Basis-Image (Dockerfile.base)

Ein Multi-Stage-Build, der alle langsam zu bauenden, sich selten ändernden Abhängigkeiten aus dem Quellcode kompiliert:``` 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:~
Dieses Image wird nur neu erstellt, wenn sich die Tool-Versionen ändern. Build-Zeit: ~12 Minuten.

### Layer 2: Anwendungs-Image (`Dockerfile`)

Erbt vom Basis-Image und kopiert den Anwendungscode:```
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"]

Build time: ~60 seconds.

Docker Compose

Drei Dienste mit architekturspezifischen Profilen:

DienstProfilBeschreibung
reversecore-mcpdefault, x86Intel/AMD x86_64
reversecore-mcp-arm64arm64, macosApple Silicon ARM64
redisalle ProfileRedis 7 Alpine für Aufgabenwarteschlange und Caching

Ressourcengrenzen: 2.0 CPU-Kerne, 4 GB Arbeitsspeicher pro Container.


Systemanforderungen

KomponenteMinimumEmpfohlen
CPU4 Kerne8+ Kerne
RAM8 GB16 GB
Speicher20 GB50 GB SSD
BetriebssystemLinux / macOSDocker-Umgebung (beliebiges Betriebssystem)
Docker20.10+24.0+
Python (lokaler Modus)3.103.11 oder 3.12

Projektstruktur```

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:~
**Andere Verzeichnisse:**```
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

Fehlerbehandlung

Alle benutzerdefinierten Ausnahmen erben von ReversecoreError und tragen strukturierte Fehlercodes:

AusnahmeCodeTypWann
ReversecoreErrorRCMCP-E000UNKNOWN_ERRORBasisklasse für alle Fehler
ValidationErrorRCMCP-E001VALIDATION_ERRORUngültige Eingabe, fehlerhafte Parameter
ExecutionTimeoutErrorRCMCP-E002TIMEOUT_ERRORTool hat das Timeout überschritten
ToolNotFoundErrorRCMCP-E003TOOL_ERRORErforderliches CLI-Tool nicht installiert
OutputLimitExceededErrorRCMCP-E004OUTPUT_ERRORAusgabe hat die maximale Größe überschritten
ToolExecutionErrorRCMCP-E005EXECUTION_ERRORUnterprozess hat einen Status ungleich Null zurückgegeben
BinaryAnalysisErrorRCMCP-E100BINARY_ANALYSIS_ERRORAllgemeiner Binäranalyse-Fehler
DecompilationErrorRCMCP-E101DECOMPILATION_ERRORr2ghidra-Dekompilierung fehlgeschlagen
DisassemblyErrorRCMCP-E102DISASSEMBLY_ERRORRadare2-Disassemblierung fehlgeschlagen
StructureRecoveryErrorRCMCP-E103STRUCTURE_RECOVERY_ERRORC-Struct-Wiederherstellung fehlgeschlagen
SignatureGenerationErrorRCMCP-E104SIGNATURE_GENERATION_ERRORYARA-/Signaturgenerierung fehlgeschlagen

KI-Clients können das Feld error_code verwenden, um Fehler programmatisch zu behandeln und zu entscheiden, ob sie es erneut versuchen, ein alternatives Tool verwenden oder den Fehler dem Benutzer melden sollen.


Hinzufügen neuer Tools

Befolgen Sie dieses Muster, um ein neues MCP-Tool hinzuzufügen:```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:~
Registriere es dann in der `__init__.py` des entsprechenden Plugins und füge Tests in `tests/unit/` hinzu.

---

## Mitwirken

1. Forke das Repository
2. Erstelle einen Feature-Branch: `git checkout -b feat/my-feature`
3. Schreibe Tests zusammen mit deinem Code — die Abdeckung darf nicht unter 80 % fallen
4. Stelle sicher, dass alle Prüfungen bestehen: `pytest`, `ruff check`, `mypy`, `bandit`
5. Eröffne einen Pull Request mit einer klaren Beschreibung

Bitte lies den [Mitwirkungsleitfaden](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/development/contributing.md) für Code-Standards, Docstring-Konventionen (Google-Stil) und die Pull-Request-Checkliste.

---

## Dokumentation

| Dokument | Beschreibung |
|---|---|
| [Installationsanleitung](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/getting-started/installation.md) | Detaillierte Einrichtung für alle Umgebungen |
| [Architekturhandbuch](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/development/architecture.md) | Systemdesign & Komponentendetails |
| [Mitwirkungsleitfaden](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/development/contributing.md) | Code-Standards, Docstrings, PR-Workflow |
| [Testleitfaden](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/development/testing.md) | Testmuster, Fixtures und Abdeckung |
| [API-Referenz](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/api) | Referenz für Tools und Module |
| [Benutzerhandbuch](https://github.com/sjkim1127/reversecore_mcp/blob/main/docs/user-guide) | Analyse-Workflows |

---

## Anwendungsbeispiele

### Beispiel 1: Einfache 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..."

Beispiel 2: Schwachstellenforschung mit Taint-Analyse```

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:~
### Beispiel 3: Digitalforensische Untersuchung```
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

Beispiel 4: Patch-Diffing für 1-Day-Research```

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:~
---

## Unterstützung für mehrere Architekturen

Das Modul `arch_registry.py` ordnet Architekturnamen Radare2-Konfigurationsparametern zu und ermöglicht es Tools, ohne manuelle Konfiguration über verschiedene CPU-Architekturen hinweg zu arbeiten:

| Architektur | Schlüssel | r2 Arch | Bitbreiten | PC-Register | SP-Register |
|---|---|---|---|---|---|
| Intel 32-bit | `x86` | `x86` | 32 | `eip` | `esp` |
| Intel/AMD 64-bit | `x86_64` | `x86` | 64 | `rip` | `rsp` |
| ARM 32-bit / Thumb | `arm32` | `arm` | 16, 32 | `r15` | `r13` |
| ARM 64-bit (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` |

**Alias-Auflösung** erfolgt automatisch:
- `amd64` → `x86_64`
- `aarch64` → `arm64`
- `arm` mit `bits=64` → `arm64`
- `arm` mit `bits=16` oder `bits=32` → `arm32`

Tools wie `Radare2_esil_emulate`, `assemble_instructions` und `r2_simulate_patch` verwenden diese Registrierung, um die Analyseumgebung für jede Ziel-Binärdatei korrekt zu konfigurieren.

---

## Ergebnis-Cache-System

Zwei Cache-Ebenen minimieren redundante Berechnungen:

### Tool-Ergebniscache (`result_cache.py`)

Der `@cache_tool_result`-Dekorator speichert die Ausgabe jedes Tools basierend auf einem SHA256-Hash der Binärdatei und den Schlüsselwortargumenten des Tools im Cache:```
Cache key = SHA256( "<tool_name>::{sorted_json_kwargs}" )

Speicher-Backend: SQLite-Datenbank über r2_db.py, zugänglich über die Tools get_cached_result() und set_cached_result().

Metriken: Cache-Treffer und -Fehlversuche werden über metrics_collector.record_cache_hit() und record_cache_miss() erfasst und sind über das Tool get_tool_metrics sichtbar.

Analyse-Cache (analysis_cache.py)

Ein mehrstufiger Cache speziell für Dekompilierungsergebnisse (die rechenintensiv sind):

EbeneBackendSchlüsselformatTTLZweck
L1Redisghidra:decompile:{file_hash}:{function_address}:{decompiler}1 Stunde (3600s)Schnell, sitzungsübergreifend gemeinsam genutzt
L2SQLiteTabelle decompilation_cacheDauerhaftÜbersteht Redis-Neustarts

Import/Export: Die Tools export_analysis_cache und import_analysis_cache ermöglichen es, den Cache-Zustand in rcpack-Dateien zu speichern und aus diesen zu laden, um ihn zwischen Umgebungen auszutauschen.


KI-Speichersystem

Das KI-Speichersystem (memory_tools.py + core/memory.py) bietet persistenten, abfragbaren Speicher für Analyseergebnisse über Sitzungen hinweg. Dies ermöglicht der KI:

  • Sich merken, was sie zuvor über eine Binärdatei herausgefunden hat
  • Querverweise erstellen zwischen Ergebnissen verschiedener Proben
  • Taggen und durchsuchen von Sitzungen nach Thema, Malware-Familie oder Technik

So funktioniert es```

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:~
**Speicher:** Asynchrone SQLite-Datenbank unter dem Pfad, der durch `MEMORY_DB_PATH` konfiguriert wird (Standard: `~/.reversecore_mcp/memory.db`).

**Portabilität:** Verwenden Sie `export_memory_store` und `import_memory_store`, um die gesamte Speicherdatenbank zwischen Umgebungen zu übertragen.

---

## Web-Dashboard

Bei Ausführung im HTTP-Modus (`MCP_TRANSPORT=http`) ist ein Web-Dashboard unter `http://localhost:8000/dashboard` verfügbar. Es bietet:

- Binärdatei-Upload per Drag-and-drop
- Echtzeit-Analysestatus
- Interaktive Funktionsliste und Disassembly-Ansicht
- Ergebnisse der IOC-Extraktion
- Server-Health-Überwachung

**Technologie-Stack:** FastAPI + Jinja2-Templates + HTMX (lokal aus `dashboard/static/` geladen, keine CDN-Abhängigkeit für CSP-Konformität).

**Sicherheitsfunktionen:**
- CSRF-Token bei allen zustandsändernden Formularen
- Jinja2-Auto-Escaping aktiviert
- Alle Benutzereingaben werden vor der Anzeige über `html.escape()` bereinigt
- Path-Traversal-Schutz über `validate_file_path()`

---

## Deployment

### Produktions-Checkliste

Vor der Bereitstellung in der Produktion:

| Punkt | Vorgehen |
|---|---|
| API-Schlüssel festlegen | `MCP_API_KEY=<strong-random-key>` |
| Nicht-Root-Benutzer verwenden | Integriert: Container läuft als `appuser` (UID 1000) |
| Ressourcenlimits festlegen | Standard: 2 CPU / 4 GB RAM in `docker-compose.yml` |
| Strukturierte Protokollierung aktivieren | `LOG_FORMAT=json` für Log-Aggregation |
| Redis konfigurieren | `REDIS_URL=redis://<host>:6379/0` für Task-Warteschlange und Caching |
| Arbeitsbereichspfad festlegen | `REVERSECORE_WORKSPACE=/path/to/isolated/directory` |
| Ratenlimits überprüfen | `REVERSECORE_RATE_LIMIT=60` (Anfragen/min, nach Bedarf anpassen) |
| Sandbox aktivieren | `REVERSECORE_SANDBOX_ENABLED=true` für die Isolierung der dynamischen Analyse |

### Health-Checks

Der Server stellt HTTP-Health-Check-Endpunkte für die Orchestrierung bereit:```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

Diese Endpunkte sind von der API-Key-Authentifizierung ausgenommen, damit Load Balancer und Container-Orchestratoren sie abfragen können.

Container-Healthcheck

Das Docker-Image enthält eine eingebaute HEALTHCHECK-Anweisung, die alle 30 Sekunden die TCP-Konnektivität zu Port 8000 überprüft. Docker und Kubernetes starten Container, die den Healthcheck nicht bestehen, automatisch neu.


Fehlerbehebung

Häufige Probleme

Tool returns RCMCP-E003: Tool not found

Das erforderliche CLI-Tool ist in der Umgebung nicht installiert.

Lösung: Wenn Sie Docker verwenden, prüfen Sie, ob das Tool im Basis-Image enthalten ist:```bash docker exec reversecore-mcp-arm64 which r2 yara binwalk tsk_recover gdb

root@kitploit:~
Wenn Sie eine lokale Python-Installation verwenden, installieren Sie das fehlende Tool:```bash
# macOS
brew install radare2 yara binwalk sleuthkit

# Ubuntu/Debian
apt install radare2 yara binwalk sleuthkit
Timeout-Fehler (RCMCP-E002 / RCMCP-E200)

Die Analyse hat das konfigurierte Timeout überschritten.

Lösung: Erhöhen Sie das Timeout:```bash export REVERSECORE_DEFAULT_TOOL_TIMEOUT=300 # 5 minutes

root@kitploit:~
Für große Binärdateien (>100 MB) sollten Sie Schnellscan-Varianten in Betracht ziehen:
- `run_capa_quick` anstelle von `run_capa`
- `detect_packer` anstelle von `detect_packer_deep`
</details>

<details>
<summary><b>Pfad-Traversal-Fehler (RCMCP-E302)</b></summary>

Sie haben auf eine Datei außerhalb des Arbeitsverzeichnisses verwiesen.

**Lösung:** Kopieren Sie die Datei zuerst in das Arbeitsverzeichnis:```
copy_to_workspace("/path/to/file.exe")

Oder mounten Sie zusätzliche Verzeichnisse als schreibgeschützt:```bash export REVERSECORE_READ_DIRS=/opt/samples,/mnt/evidence

root@kitploit:~
</details>

<details>
<summary><b>Docker-Container startet nicht auf Apple Silicon</b></summary>

Stelle sicher, dass du das ARM64-Profil verwendest:```bash
docker compose --profile arm64 up -d

Oder verwenden Sie das Auto-Erkennungsskript:```bash ./scripts/run-docker.sh

root@kitploit:~
</details>

<details>
<summary><b>Redis-Verbindung abgelehnt</b></summary>

Die Aufgabenwarteschlange benötigt eine laufende Redis-Instanz.

**Lösung:** Starten Sie Redis zusammen mit dem Hauptdienst:```bash
docker compose --profile arm64 up -d   # Starts both reversecore and redis

Oder deaktiviere Redis-abhängige Funktionen, indem du REDIS_URL nicht setzt.

r2ghidra-Dekompilierung erzeugt leere Ausgabe

Das bedeutet normalerweise, dass die Funktion vorher nicht analysiert wurde.

Lösung: Führe die Analyse vor der Dekompilierung durch:``` Radare2_analyze_binary("sample.exe") Radare2_decompile_function("sample.exe", "main")

root@kitploit:~
</details>

---

## FAQ

<details>
<summary><b>Ersetzt das Ghidra oder IDA Pro?</b></summary>

Nein. Dieses Projekt ist eine Ergänzung und kein Ersatz. Es verwendet r2ghidra (die in Radare2 eingebettete Ghidra-Dekompilierungs-Engine) für die Dekompilierung. Es bietet keine GUI und verfügt nicht über den interaktiven Analyse-Workflow eines vollwertigen Disassemblers. Sein Zweck ist es, KI-Assistenten die programmatische Durchführung von Analyseaufgaben zu ermöglichen.
</details>

<details>
<summary><b>Ist eine separate Installation von Ghidra oder JDK erforderlich?</b></summary>

Nein. Das r2ghidra-Plugin bettet die Ghidra-Dekompilierungs-Engine direkt in Radare2 ein. Kein JDK, keine Ghidra-Installation, keine Ghidra-Projektdateien. Nur `r2` mit eingebautem `r2ghidra`-Plugin.
</details>

<details>
<summary><b>Welche MCP-Clients werden unterstützt?</b></summary>

Jeder Client, der die [Model Context Protocol](https://modelcontextprotocol.io/)-Spezifikation implementiert. Getestet mit: Claude Desktop, Cursor, Windsurf und Google Antigravity. Der Server unterstützt sowohl stdio- als auch HTTP/SSE-Transports.
</details>

<details>
<summary><b>Kann ich Windows-PE-Dateien unter Linux/macOS analysieren?</b></summary>

Ja. Statische Analyse (Disassemblierung, Dekompilierung, String-Extraktion, IOC-Extraktion, YARA-Scanning) funktioniert mit jedem Dateiformat, unabhängig vom Host-Betriebssystem. Dynamische Analyse (Emulation, Fuzzing) kann je nach Zielarchitektur Einschränkungen aufweisen.
</details>

<details>
<summary><b>Wie sicher ist die Analyse von Malware mit diesem Tool?</b></summary>

Der Docker-Container bietet Isolation: Nicht-Root-Benutzer, standardmäßig kein Netzwerk in CI, Ressourcenlimits. Für die Live-Malware-Analyse empfehlen wir, in einer dedizierten VM zu arbeiten oder die Sandbox-Funktion zu verwenden (`REVERSECORE_SANDBOX_ENABLED=true`). Statische Analysetools (r2, YARA, strings) führen die Ziel-Binärdatei niemals aus.
</details>

<details>
<summary><b>Wie groß darf eine Datei maximal sein?</b></summary>

Standardlimits:
- Upload: 100 MB (`MAX_UPLOAD_SIZE`)
- LIEF-Parsing: 1 GB (`REVERSECORE_LIEF_MAX_FILE_SIZE`)
- Tool-Ausgabe: 10 MB (`REVERSECORE_MAX_OUTPUT_SIZE`)

Alle Limits sind über Umgebungsvariablen konfigurierbar.
</details>

---

## Danksagungen

Dieses Projekt baut auf der Arbeit vieler Open-Source-Projekte auf:

| Projekt | Rolle in Reversecore MCP |
|---|---|
| [Radare2](https://radare.org/) | Disassemblierung, Emulation, Binäranalyse |
| [r2ghidra](https://github.com/radareorg/r2ghidra) | Ghidra-Dekompilierungs-Engine für Radare2 |
| [FastMCP](https://github.com/jlowin/fastmcp) | MCP-Server-Framework |
| [YARA](https://virustotal.github.io/yara/) | Musterabgleich zur Malware-Erkennung |
| [LIEF](https://lief-project.github.io/) | Parsing von Binärformaten (PE, ELF, Mach-O) |
| [CAPA](https://github.com/mandiant/capa) | Fähigkeitserkennung von Mandiant FLARE |
| [angr](https://angr.io/) | Symbolische Ausführungs-Engine |
| [Capstone](https://www.capstone-engine.org/) | Disassemblierungs-Framework |
| [Keystone](https://www.keystone-engine.org/) | Assemblierungs-Framework |
| [pwntools](https://github.com/Gallopsled/pwntools) | Exploit-Entwicklungs-Toolkit |
| [ROPgadget](https://github.com/JonathanSalwan/ROPgadget) | ROP-Gadget-Finder |
| [Volatility3](https://github.com/volatilityfoundation/volatility3) | Speicherforensik-Framework |
| [Scapy](https://scapy.net/) | Netzwerkpaket-Analyse |
| [Sleuth Kit](https://sleuthkit.org/) | Forensik-Toolkit für Festplatten |
| [Binwalk](https://github.com/ReFirmLabs/binwalk) | Firmware-Analyse |
| [Detect It Easy](https://github.com/horsicq/DIE-engine) | Packer-/Compiler-Erkennung |

---

## Lizenz

MIT – siehe [LICENSE](https://github.com/sjkim1127/reversecore_mcp/blob/main/LICENSE) für Details.

---

<div align="center">

**[GitHub](https://github.com/sjkim1127/Reversecore_MCP)** · **[PyPI](https://pypi.org/project/reversecore-mcp/)** · **[FastMCP Docs](https://github.com/jlowin/fastmcp)** · **[MCP Spec](https://modelcontextprotocol.io/)** · **[Radare2](https://radare.org/)** · **[YARA](https://virustotal.github.io/yara/)**

</div>
Tool herunterladen
EmulationError
RCMCP-E105
EMULATION_ERROR
ESIL-Emulation fehlgeschlagen
ToolTimeoutErrorRCMCP-E200TOOL_TIMEOUT_ERRORExternes Tool hat das Timeout überschritten
GhidraConnectionErrorRCMCP-E201GHIDRA_CONNECTION_ERRORr2ghidra-Verbindungsproblem
Radare2ErrorRCMCP-E202RADARE2_ERRORRadare2-Befehl fehlgeschlagen
WorkspaceErrorRCMCP-E300WORKSPACE_ERRORFehler beim Zugriff auf die Workspace-Datei
SecurityViolationErrorRCMCP-E301SECURITY_VIOLATIONVerstoß gegen die Sicherheitsrichtlinie
PathTraversalErrorRCMCP-E302PATH_TRAVERSALPfad-Traversal-Versuch erkannt