title: Radare2
text: # 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.
  
  ## Historique
  
  Il a été créé en février 2006 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 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.
  
  ### Analyse statique
  
  Radare2 est capable d'assembler et de désassembler beaucoup de choses, mais il peut également effectuer des diff 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, 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é^,$ 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 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é 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é^,$ lors de CTF pour sa souplesse et son support de fichiers exotiques.
  
  