Radare2

logiciel informatique

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.

Radare2
Description de l'image Radare2.svg.
Description de l'image Radare2 webui.png.
Informations
Première version Voir et modifier les données sur Wikidata
Dernière version 5.9.8 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/radare/radare2Voir et modifier les données sur Wikidata
Assurance qualité Intégration continueVoir et modifier les données sur Wikidata
Écrit en C[2]
Interface Interface en ligne de commande et interface graphiqueVoir et modifier les données sur Wikidata
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 QNXVoir et modifier les données sur Wikidata
Environnement Microsoft Windows, Mac OS X, Linux, BSD, Haiku, Android, IPhone OS, Solaris, MeeGo
Langues AnglaisVoir et modifier les données sur Wikidata
Type Désassembleur
Licence LGPL
Site web radare.org

Historique

modifier

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

modifier

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

modifier

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

modifier

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

modifier

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

modifier
  1. « Release 5.9.8 », (consulté le )
  2. Git repository
  3. « radare/radare2 », sur GitHub (consulté le )
  4. « radare/radare2-bindings », sur GitHub (consulté le )
  5. Alejandro Hernández H, « Chatsubo [(in)Security Dark] Labs: "Binary Diffing" visual en Linux con Radare2 » (consulté le )
  6. « Everything is a string », sur Medium (consulté le )
  7. « OSX/Leverage.a Analysis », sur www.alienvault.com (consulté le )
  8. (en) Anton Kochkov, « Application of radare2 illustrated by Shylock/Caphaw.D and Snakso.A analysis », PHDays,‎
  9. « Toolchain to work with binary files », sur comments.gmane.org (consulté le )
  10. « .:: Phrack Magazine ::. », sur phrack.org (consulté le )
  11. « Dragon Sector: Plaid CTF 2014 - Tiffany writeup », sur blog.dragonsector.pl (consulté le )
  12. « DEFCON2K12 Prequals: pwn300 writeup - LSE Blog », sur blog.lse.epita.fr (consulté le )

Liens externes

modifier