Radare2
logiciel informatique
From Wikipedia, the free encyclopedia
Radare2 (aussi connu sous le nom de r2) est un framework libre destiné à la rétro-ingénierie et à l'analyse de fichiers binaires ; composé d'un jeu d'outils pouvant être utilisés ensemble, ou séparément depuis l'invite de commande. Construit autour d'un désassembleur, il supporte une grande variété de formats de différents processeurs et systèmes d'exploitation.
| Première version | |
|---|---|
| Dernière version | 6.0.7 ()[1] |
| Dépôt | github.com/radare/radare2 et github.com/radareorg/radare2 |
| Assurance qualité | Intégration continue |
| Écrit en | C[2] |
| Interface | Interface en ligne de commande et interface graphique |
| Système d'exploitation | Microsoft Windows, macOS, Linux, list of BSD operating systems (en), Haiku, Android, Solaris, MeeGo, Berkeley Software Distribution, iOS, Firefox OS et QNX |
| Environnement | Microsoft Windows, Mac OS X, Linux, BSD, Haiku, Android, IPhone OS, Solaris, MeeGo |
| Langues | Anglais |
| Type | Désassembleur |
| Licence | LGPL |
| Site web | radare.org |
Historique
Il a été créé en avec comme but de fournir un éditeur hexadécimal libre en ligne de commande supportant des offsets de 64 bit à des fins d'analyse forensique, puis le projet a évolué en un framework complet destiné à l'analyse de binaires, tout en respectant les principes de la philosophie UNIX.
En 2009, la décision fut prise de le réécrire complètement, afin de s'affranchir de limitations de design de la version initiale. Depuis, le projet continue de grandir, attirant régulièrement[3] de nouveaux contributeurs.
Fonctionnalités et usages
Comme radare2 ne possède pas d'interface graphique et s'utilise uniquement en ligne de commande, son apprentissage peut être comparable à celui de vim : une touche pour chaque action, avec une logique de combinaison. Il est également possible de scripter radare2 dans de multiples langages de programmation grâce à ses bindings[4].
Analyse statique
Radare2 est capable d'assembler et de désassembler beaucoup de choses, mais il peut également effectuer des diff[5] sur des fichiers binaires, extraire des informations telles que les symboles, ou encore effectuer des analyses poussées. Pour stocker ses données, il utilise une base de données de type noSQL appelée sdb[6], qui peut également être manipulée directement par l'utilisateur. Grâce à sa capacité à gérer correctement les fichiers malformés/offusqués, il est utilisé par des chercheurs en sécurité[7],[8] pour analyser des malwares ou encore des firmwares.
Analyse dynamique
Bien que possédant un débogueur orienté bas-niveau (au contraire de GDB par exemple, qui est un source-level debugger), il peut s'interfacer avec bon nombre de débogueurs existants, comme GDB, mais aussi WineDBG[9] et WinDBG. Il est également possible de l'utiliser comme un débogueur noyau.
Exploitation de vulnérabilités
Grâce à ses capacités de script, de ses désassembleurs et de son débogueur bas-niveau, radare2 peut être utilisé[10] par des développeurs d'exploits. Il possède des fonctionnalités destinées à en faciliter le développement, comme un moteur de recherche de gadgets ROP, une détection des protections logicielles utilisées, un compilateur de shellcodes similaire à celui de metasploit… Il est également utilisé[11],[12] lors de CTF pour sa souplesse et son support de fichiers exotiques.