
r2ai v1.4.4
Plugin IA pour Radare2 utilisant des LLM locaux ou distants pour la décompilation, l'explication de fonctions, la détection de vulnérabilités, le renommage et la rétro-ingénierie scriptée.
R2AI - Reverse augmenté avec LLM pour radare2
╭─────────────────────────────────╮
│ ,______ .______ .______ ,___ │
╭──╮ │ : __ \ \____ |: \ : __| │
│ _│_ │ | \____|/ ____|| _,_ || : | │
│ O O < | : \ \ . || : || | │
│ │╷ │ | |___\ \__:__||___| || | │
│ ││ │ |___| : |___||___| │
│ ─╯│ ╰─────────────────────────────────╯
╰───╯
Composants
Ce dépôt contient deux plugins pour radare2 :
- r2ai - plugin IA natif pour radare2
- decai - plugin r2js avec un accent particulier sur la décompilation
Si vous cherchez à utiliser radare2 avec d'autres agents via MCP :
- r2mcp - le mcp officiel de radare2
- r2copilot - le mcp axé sur le CTF r2copilot
Si vous cherchez un agent autonome axé sur radare2 :
- r2agent - automatisez les flux de travail radare2 grâce à des agents autonomes. r2agent
Fonctionnalités
- Configurer différents rôles et personnaliser les invites
- Scriptable via r2pipe à l'aide de la commande r2ai
- En direct avec mode REPL et mode batch depuis la CLI ou l'invite r2
- Prise en charge du mode automatique (ReAct) pour résoudre des tâches via l'appel de fonctions
- Utiliser des modèles de langage locaux et distants (ollama, openai, grok, anthropic, ..)
- RAG pour fichiers markdown, code ou texte à l'aide de sa base de données vectorielle native
- Intégrer la sortie d'une commande r2 et répondre aux questions sur les données fournies
Invites définies par l'utilisateur
[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
La méthode recommandée pour installer l'un des composants de r2ai est via r2pm :
$ r2pm -Uci r2ai
$ r2pm -Uci decai
Utilisation de r2ai
- Ajoute la commande r2ai au shell radare2 :
r2 -qc r2ai - Vous pouvez également exécuter le wrapper dans $PATH :
r2pm -r r2ai
Placez vos clés API dans des variables d'environnement ou utilisez le fichier de configuration :
$ export ANTHROPIC_API_KEY=sk-ant-api03-CENSORED
$ export OPENAI_API_KEY=sk-proj-6rlSPS-zN1v...
Ou modifiez le fichier des clés API ~/.config/r2ai/apikeys.txt puis lancez :
$ r2ai -K
Sauvegarde des paramètres
Vous pouvez personnaliser et enregistrer vos paramètres de configuration à l'aide du fichier de paramètres par défaut de votre système d'exploitation (par exemple ~/.radare2rc sous Linux).
Par exemple, la configuration suivante définit Claude 3.7 par défaut, avec un maximum de 64000 jetons de sortie.
$ r2ai -E
vous pouvez ensuite saisir les commandes que vous souhaitez exécuter lorsque le plugin r2ai est chargé :
r2ai -e api=anthropic
r2ai -e model=claude-3-7-sonnet-20250219
r2ai -e max_tokens=64000
Pour aller plus loin
- Un chapitre est disponible dans le r2book officiel
- Article de blog de Cryptax sur lmstudio+gptoss
- Analyse de malware avec r2ai par Cryptax et Daniel Nakov
- Analyse du rançongiciel Linux/Trigona, du botnet Linux/Prometei et de W32/SkyAI avec r2ai