
r2ai v1.4.4
Radare2-KI-Plugin, das lokale oder entfernte LLMs für Dekompilierung, Funktionserklärung, Schwachstellenerkennung, Umbenennung und skriptgesteuertes Reverse Engineering nutzt.
R2AI - Erweitertes Reversing mit LLM für radare2
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
Komponenten
Dieses Repository enthält zwei Plugins für radare2:
- r2ai - natives KI-Plugin für radare2
- decai - r2js-Plugin mit besonderem Fokus auf Dekompilierung
Wenn du radare2 über MCP mit anderen Agenten verwenden möchtest:
- r2mcp - der offizielle radare2-MCP
- r2copilot - der MCP mit Fokus auf CTF r2copilot
Wenn du nach einem radare2-fokussierten autonomen Agenten suchst:
- r2agent - automatisiere radare2-Workflows durch autonome Agenten. r2agent
Funktionen
- Verschiedene Rollen konfigurieren und Prompts anpassen
- Über r2pipe mittels des r2ai-Befehls scriptbar
- Live mit REPL- und Batch-Modus von der CLI oder der r2-Eingabeaufforderung
- Unterstützt den automatischen (ReAct-)Modus zur Lösung von Aufgaben mittels Function Calling
- Lokale und entfernte Sprachmodelle verwenden (ollama, openai, grok, anthropic, ..)
- RAG für Markdown, Code oder Textdateien mithilfe der nativen Vektordatenbank
- Die Ausgabe eines r2-Befehls einbetten und Fragen zu den gegebenen Daten beantworten
Benutzerdefinierte Prompts
[0x00000000]> r2ai -q
explain: Explain the current function -
devices: Find and explain devices used -
libs: Group imports by Libraries -
varnames: Better variable names -
autoname: Automatically suggest a better name for this function -
vulns: Find vulnerabilities or bugs in the current function -
signature: Suggest an improved function signature -
dlopen: List libraries loaded with dlopen - Some libraries are loaded
decompile: Augmented decompilation based on LLM -
[0x00000000]>
Installation
Die empfohlene Methode, um eine der r2ai-Komponenten zu installieren, ist über r2pm:
$ r2pm -Uci r2ai
$ r2pm -Uci decai
Verwendung von r2ai
- Fügt den r2ai-Befehl zur radare2-Shell hinzu:
r2 -qc r2ai - Du kannst den Wrapper auch über $PATH ausführen:
r2pm -r r2ai
Lege deine API-Schlüssel in Umgebungsvariablen ab oder verwende die Konfigurationsdatei:
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
Oder bearbeite die API-Schlüsseldatei ~/.config/r2ai/apikeys.txt und führe aus:
$ r2ai -K
Einstellungen speichern
Du kannst deine Konfigurationseinstellungen über die Standardeinstellungsdatei deines Betriebssystems anpassen und speichern (z. B. ~/.radare2rc unter Linux).
Zum Beispiel setzt die folgende Konfiguration standardmäßig Claude 3.7 mit maximal 64000 Ausgabe-Tokens.
$ r2ai -E
danach kannst du die Befehle eingeben, die beim Laden des r2ai-Plugins ausgeführt werden sollen:
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e max_tokens=64000
Weiterführende Literatur
- Es gibt ein Kapitel im offiziellen r2book
- Cryptax hat einen Blogbeitrag über lmstudio+gptoss veröffentlicht
- Malware-Analyse mit r2ai von Cryptax und Daniel Nakov
- Analyse von Linux/Trigona-Ransomware, Linux/Prometei-Botnet und W32/SkyAI mit r2ai