
r2ai v1.4.4
Complemento de Radare2 con IA que utiliza LLM locales o remotos para descompilación, explicación de funciones, detección de vulnerabilidades, renombrado e ingeniería inversa mediante scripts.
R2AI - Reversing aumentado con LLM para radare2
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
Componentes
Este repositorio contiene dos plugins para radare2:
- r2ai - plugin de IA nativo para radare2
- decai - plugin r2js con un enfoque especial en la descompilación
Si buscas usar radare2 con otros agentes mediante MCP:
- r2mcp - el mcp oficial de radare2
- r2copilot - el mcp con enfoque en CTF r2copilot
Si buscas un agente autónomo centrado en radare2:
- r2agent - automatiza flujos de trabajo de radare2 mediante agentes autónomos. r2agent
Características
- Configura distintos roles y personaliza los prompts
- Scriptable mediante r2pipe a través del comando r2ai
- En vivo con modo repl y modo batch desde la CLI o el prompt de r2
- Soporte de modo Automático (ReAct) para resolver tareas mediante function calling
- Usa modelos de lenguaje locales y remotos (ollama, openai, grok, anthropic, ..)
- RAG de markdown, código o archivos de texto mediante su base de datos vectorial nativa
- Incrusta la salida de un comando r2 y resuelve preguntas sobre los datos proporcionados
Prompts definidos por el usuario
[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]>
Instalación
La forma recomendada de instalar cualquiera de los componentes de r2ai es mediante r2pm:
$ r2pm -Uci r2ai
$ r2pm -Uci decai
Usando r2ai
- Añade el comando r2ai al shell de radare2:
r2 -qc r2ai - También puedes ejecutar el wrapper desde $PATH:
r2pm -r r2ai
Coloca tus claves de API en variables de entorno o usa el archivo de configuración:
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
O edita el archivo de claves de API ~/.config/r2ai/apikeys.txt ejecutando:
$ r2ai -K
Guardando la configuración
Puedes personalizar y guardar tu configuración usando el archivo de configuración predeterminado de tu sistema operativo (p. ej. ~/.radare2rc en Linux).
Por ejemplo, la siguiente configuración establece Claude 3.7 por defecto, con un máximo de 64000 tokens de salida.
$ r2ai -E
luego puedes escribir los comandos que quieras ejecutar cuando el plugin r2ai se cargue:
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e max_tokens=64000
Lecturas adicionales
- Hay un capítulo en el r2book oficial
- Publicación de Cryptax sobre lmstudio+gptoss
- Análisis de malware con r2ai por Cryptax y Daniel Nakov
- Análisis del ransomware Linux/Trigona, de la botnet Linux/Prometei y de W32/SkyAI con r2ai