
r2ai v1.4.4
Plug-in AI per Radare2 che usa LLM locali o remoti per decompilazione, spiegazione delle funzioni, rilevamento delle vulnerabilità, rinomina e reverse engineering scriptato.
R2AI - Reversing potenziato con LLM per radare2
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
Componenti
Questo repository contiene due plugin per radare2:
- r2ai - plugin AI nativo per radare2
- decai - plugin r2js con particolare attenzione alla decompilazione
Se stai cercando di usare radare2 con altri agenti tramite MCP:
- r2mcp - il mcp ufficiale di radare2
- r2copilot - il mcp focalizzato sul CTF r2copilot
Se stai cercando un agente autonomo incentrato su radare2:
- r2agent - automatizza i workflow di radare2 tramite agenti autonomi. r2agent
Funzionalità
- Configura ruoli diversi e personalizza i prompt
- Scriptabile tramite r2pipe usando il comando r2ai
- Funziona dal vivo con modalità REPL e batch dalla CLI o dal prompt di r2
- Supporta la modalità Automatic (ReAct) per risolvere task usando function calling
- Usa modelli linguistici locali e remoti (ollama, openai, grok, anthropic, ..)
- RAG di markdown, codice o file di testo usando il suo database vettoriale nativo
- Integra l'output di un comando r2 e risolvi domande sui dati forniti
Prompt definiti dall'utente
[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]>
Installazione
Il metodo consigliato per installare uno qualsiasi dei componenti di r2ai è tramite r2pm:
$ r2pm -Uci r2ai
$ r2pm -Uci decai
Utilizzo di r2ai
- Aggiunge il comando r2ai alla shell di radare2:
r2 -qc r2ai - Puoi anche eseguire il wrapper nel $PATH:
r2pm -r r2ai
Inserisci le tue chiavi API nelle variabili d'ambiente oppure usa il file di configurazione:
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
Oppure modifica il file delle chiavi API ~/.config/r2ai/apikeys.txt eseguendo:
$ r2ai -K
Salvataggio delle impostazioni
Puoi personalizzare e salvare le tue impostazioni di configurazione usando il file di impostazioni predefinito del tuo sistema operativo (ad es. ~/.radare2rc su Linux). Ad esempio, la seguente configurazione imposta Claude 3.7 come predefinito, con un massimo di 64000 token di output.
$ r2ai -E
quindi puoi digitare i comandi che vuoi eseguire quando il plugin r2ai viene caricato:
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e max_tokens=64000
Ulteriori letture
- C'è un capitolo nel r2book ufficiale
- Cryptax sul post del blog lmstudio+gptoss
- Analisi di malware con r2ai di Cryptax e Daniel Nakov
- Analisi del ransomware Linux/Trigona, della botnet Linux/Prometei e di W32/SkyAI con r2ai