Radare2
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.
Dernière version | 2.0.1[1] () |
---|---|
Dépôt | github.com/radare/radare2 |
Assurance qualité | Intégration continue |
Écrit en | C[2] |
Système d'exploitation | Microsoft Windows, macOS, Linux, list of BSD operating systems (en), Haiku, Android, Solaris et MeeGo |
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.
Notes et références
- https://github.com/radare/radare2/releases
- Git repository
- « radare/radare2 », sur GitHub (consulté le )
- « radare/radare2-bindings », sur GitHub (consulté le )
- Alejandro Hernández H, « Chatsubo [(in)Security Dark] Labs: "Binary Diffing" visual en Linux con Radare2 » (consulté le )
- « Everything is a string », sur Medium (consulté le )
- « OSX/Leverage.a Analysis », sur www.alienvault.com (consulté le )
- (en) Anton Kochkov, « Application of radare2 illustrated by Shylock/Caphaw.D and Snakso.A analysis », PHDays,
- « Toolchain to work with binary files », sur comments.gmane.org (consulté le )
- « .:: Phrack Magazine ::. », sur phrack.org (consulté le )
- « Dragon Sector: Plaid CTF 2014 - Tiffany writeup », sur blog.dragonsector.pl (consulté le )
- « DEFCON2K12 Prequals: pwn300 writeup - LSE Blog », sur blog.lse.epita.fr (consulté le )
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Radare2 » (voir la liste des auteurs).