MCP-Server für Reverse Engineering von Windows-Executables und Binärformaten. Kombiniert statische Triage, Ghidra-gestützte Funktionsanalyse, plugin-gesteuerte Werkzeuge, Artefaktverwaltung und optionale isolierte Windows-Laufzeitausführung.
Rikune ist ein MCP-Server für das Reverse Engineering von Windows-Ausführungsdateien und verwandten Binärformaten. Er kombiniert Sample-Aufnahme, statische Triage, Ghidra-gestützte Funktionswiederherstellung, plugin-gesteuerte Spezialwerkzeuge, Artefaktverwaltung und optionale isolierte Windows-Laufzeitausführung hinter einer Model Context Protocol-Schnittstelle.
Der aktuelle KI-orientierte Server-Workflow ist um eine minimale Gateway-Oberfläche organisiert:
workflow.search, um passende Profile, Workflows und spezialisierte Fähigkeiten für den Dateityp und das Benutzerziel zu bewerten.workflow.run action=request_upload für das Hochladen von Host-Dateien, oder lasse workflow.search Legacy-Clients auf versteckte Sample-Aufnahme-Kompatibilitätswerkzeuge verweisen.workflow.run action=start mit der zurückgegebenen sample_id.workflow.run action=status und workflow.run action=promote, um den gestuften Durchlauf zu überwachen und zu vertiefen.artifact.read für vollständige persistierte Artefakte, wenn die kompakte Workflow-Ausgabe nicht ausreicht.sample.*, workflow.analyze.*, workflow.triage, tools.discover und task.status bleiben für Kompatibilität oder Low-Level-Inspektion registriert, aber neue Clients sollten workflow.search, workflow.run und artifact.read bevorzugen.
Bei Verbindung über das Remote-rikune-agent-Gateway sehen MCP-Clients stabile Transportnamen:
workflow_search, workflow_run, artifact_read, rikune_tool_call und die
rikune_connection_*-Steuerungen. rikune_connection_refresh aktualisiert nur den internen Upstream-Fähigkeits-Cache; es erweitert nicht die MCP-Werkzeugliste. Verwende rikune_tool_call nur, nachdem workflow_search ein bestimmtes internes Analysator-Subwerkzeug identifiziert hat, das nicht durch die primären Workflow- oder Artefakt-Gateways abgedeckt wird.
stdio-Server für KI-Clients und Agenten-Laufzeiten.workflow.search verwendet Sample-Typ, Ergebnisse und Profilmetadaten, um zu spezialisierten Fähigkeiten weiterzuleiten, ohne alle Werkzeuge vorab zu exponieren.Statisches Docker ist die sicherste Standardeinstellung. Es führt keine Samples aus.
.\rikune.ps1 install -Profile static -DataRoot "D:\Docker\rikune"
./rikune.sh install --profile static --data-root "$HOME/.rikune"
Manuelles Äquivalent:
npm install
npm run build
npm run docker:generate:all
docker compose --env-file .docker-runtime.env -f docker-compose.analyzer.yml up -d --build analyzer
Der Hybrid-Modus führt den Analyzer in Docker aus und delegiert Live-Windows-Arbeiten an einen Windows Host Agent. Der Host Agent kann Windows Sandbox bei Bedarf starten oder eine konfigurierte Hyper-V-VM steuern.
.\rikune.ps1 install -Profile hybrid -InstallRuntime
Von Linux/macOS mit einem entfernten Windows-Runtime-Host:
./rikune.sh install --profile hybrid --windows-host <windows-host> --windows-user <windows-user>
Das Verbinden eines MCP-Clients startet weder Windows Sandbox noch führt es ein Sample aus. Live-Runtime-Arbeiten beginnen nur, wenn ein Werkzeug dies explizit anfordert, z.B. runtime.debug.session.start, runtime.debug.command, sandbox.execute oder eine hochgestufte dynamische Ausführungsstufe.
npm install
npm run build
npm test
node dist/index.js
Das Root-Paket benötigt Node.js 22 oder neuer. Einige Runtime-Subpakete können auf älteren Node-Versionen laufen, aber die Repository-Entwicklung und die veröffentlichte Root-CLI sollten Node 22+ verwenden.
Beginne mit workflow.search, wann immer der angeforderte Workflow, Dateityp oder das Backend unklar ist. Es bewertet passende Profile und gibt kompakte Bereitschafts-/Routing-Hinweise zurück, ohne versteckte Spezialwerkzeuge zu aktivieren.
Für Host-Dateien rufe workflow.run action=request_upload auf, POSTe die rohen Bytes an die zurückgegebene Upload-URL und lies dann sample_id aus der HTTP-Antwort. sample.request_upload und sample.ingest sind Kompatibilitätshilfen und nicht der normale KI-orientierte Pfad.
Für Remote-Analyzer- oder rikune-agent-Bereitstellungen setze API_PUBLIC_BASE_URL, RIKUNE_API_PUBLIC_BASE_URL oder RIKUNE_ANALYZER_PUBLIC_URL auf die für den Client erreichbare HTTP-API-Basis, z.B. http://159.195.136.226:18080. Upload-Sitzungen geben dann öffentliche upload_url-/status_url-Werte anstelle von containerlokalen localhost-URLs zurück. Das Remote-Gateway normalisiert auch Localhost-Upload-URLs von älteren Analyzern auf seinen konfigurierten Analyzer-Endpunkt.
Wenn die HTTP-API aktiviert ist, ist POST /api/v1/samples weiterhin für Nicht-MCP-Integrationen verfügbar. Erfolgreiche Aufnahme gibt eine sample_id zurück; die Analyse sollte nach dem Import die sample_id und nicht einen lokalen Pfad verwenden.
Rufe workflow.run action=start mit der sample_id auf. Die erste Stufe führt ein schnelles Profil durch und erstellt oder verwendet eine Analyseausführung wieder. Die zurückgegebene plan_id ist der persistierten Analyseausführung zugeordnet.
Verwende workflow.run action=promote, um tiefere Stufen anzufordern. Die Pipeline modelliert derzeit diese Stufen:
fast_profileenrich_staticfunction_mapreconstructsemantic_reviewsdynamic_plandynamic_executesummarizeLanglaufende Arbeiten werden über das Job-System in die Warteschlange gestellt. Frage den kompakten Stufenstatus mit workflow.run action=status ab.
workflow.run action=status ist die primäre Ansicht für gestufte Ausführungen. Große Payloads historischer Stufen können mit einer Top-Level-Warnung gekürzt werden; verwende artifact.read für vollständige Artefakte. task.status ist eine rohe Queue/Prozess-Kompatibilitätsansicht und enthält external_active_*-Speichertelemetrie für Analyzer-Subprozesse.
Nützliche Folgemaßnahmen:
workflow.searchworkflow.runanalysis.context.getartifact.read, sowie Kompatibilitäts-Artefakt-Hilfen wie artifact.list, artifact.diff und artifact.downloadreport.summarize, report.generate, workflow.summarizeworkflow.semantic_name_reviewworkflow.function_explanation_reviewworkflow.module_reconstruction_reviewtool.help, tool.readiness und tools.discover für Kompatibilitäts-/Debug-InspektionDer aktuelle Codepfad ist: