
r2ai v1.4.4
Plugin de IA para Radare2 que utiliza LLMs locais ou remotos para descompilação, explicação de funções, detecção de vulnerabilidades, renomeação e engenharia reversa por scripts.
R2AI - Reversing aprimorado com LLM para radare2
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
Componentes
Este repositório contém dois plugins para radare2:
- r2ai - plugin de IA nativo para radare2
- decai - plugin r2js com foco especial em descompilação
Se você procura usar radare2 com outros agentes via MCP:
- r2mcp - o mcp oficial do radare2
- r2copilot - o mcp com foco em CTF r2copilot
Se você procura um agente autônomo focado em radare2:
- r2agent - automatize fluxos de trabalho do radare2 por meio de agentes autônomos. r2agent
Recursos
- Configure diferentes papéis e personalize prompts
- Scriptável via r2pipe através do comando r2ai
- Ao vivo com modo repl e batch a partir da cli ou do prompt do r2
- Suporte ao modo Automático (ReAct) para resolver tarefas usando function calling
- Use modelos de linguagem locais e remotos (ollama, openai, grok, anthropic, ..)
- RAG de markdown, código ou arquivos de texto usando seu banco de dados vetorial nativo
- Incorpore a saída de um comando r2 e responda perguntas sobre os dados fornecidos
Prompts definidos pelo usuário
[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]>
Instalação
A forma recomendada de instalar qualquer um dos componentes do r2ai é via r2pm:
$ r2pm -Uci r2ai
$ r2pm -Uci decai
Usando r2ai
- Adiciona o comando r2ai ao shell do radare2:
r2 -qc r2ai - Você também pode executar o wrapper no $PATH:
r2pm -r r2ai
Coloque suas chaves de API em variáveis de ambiente ou use o arquivo de configuração:
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
Ou edite o arquivo de chaves de API ~/.config/r2ai/apikeys.txt e execute:
$ r2ai -K
Salvando configurações
Você pode personalizar e salvar suas configurações usando o arquivo de configurações padrão do seu SO (por exemplo, ~/.radare2rc no Linux).
Por exemplo, a seguinte configuração define Claude 3.7 como padrão, com máximo de tokens de saída de 64000.
$ r2ai -E
então você pode digitar os comandos que deseja executar quando o plugin r2ai for carregado:
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e max_tokens=64000
Leitura adicional
- Há um capítulo no r2book oficial
- Post de Cryptax sobre lmstudio+gptoss
- Análise de malware com r2ai por Cryptax e Daniel Nakov
- Análise de ransomware Linux/Trigona, botnet Linux/Prometei e W32/SkyAI com r2ai