Sortie de radare2 0.9.6

40
12
nov.
2013
Science

Si vous avez déjà utilisé GDB et objdump pour analyser des binaires dont vous n'aviez pas les sources, vous avez déjà dû pester. En effet, les outils GNU ne sont pas vraiment fait pour ça. Mais que faire d'autre ? Céder aux sirènes d'IDA Pro ? Que nenni, car voici la nouvelle version de radare2 !

Radare2, c'est un framework complet pour analyser des binaires :

  • Multi-architectures : GNU/Linux, Android, *BSD, OSX, iPhoneOS, Windows{32,64} et Solaris
  • Multi-platformes : 8051, x86{16,32,64}, dalvik, avr, arc{4,compact}, arm, aarch64, c55x+, java, powerpc, sparc, mips, bf, pe{32,64}, te, [fat]mach0{32,64}, elf{32,64}, bios/uefi, dex and java classes
  • Scriptable en : Vala, Go, Python, Guile, Ruby, Perl, Lua, Java, JavaScript, sh, ..
  • Un éditeur hexadécimal
  • Un (dés)assembleur (récursif !), avec une coloration syntaxique
  • Un débogueur natif, mais il est possible d'utiliser GDB en backend, ou un débogueur brainfuck !
  • La possibilité d'afficher des données sous de multiples formats: int, float, désassemblé, timestamps, …
  • La possibilité de faire des recherches par patterns, des checksums, …
  • Un support des disques, processus, fichiers et flux.
  • Du binary diffing (comparaison de binaires), que ce soit sous forme traditionnelle, ou sous forme de graphes
  • Analyse de code, que ce soit niveau opcodes, blocks, ou fonctions
  • Une machine virtuelle basique, permettant d'émuler du code
  • Une interface web !

Les nouveautés

En chiffres

  • 1 développeur
  • 8 mois
  • 18 contributeurs
  • 215 tests en plus
  • 603 commits
  • 33272 lignes de code en plus

En fonctionnalités:

  • De nouvelles architectures supportées: ARM aarch64, TI c55x+, 8051, Javascript (emscripten), ARCcompact
  • De multiples améliorations sur les assembleurs/désassembleurs pour ARM, ARC, X86, Dalvik, Java (dont la v7) et Brainfuck.
  • Support de l'ASLR
  • Les ROM PC BIOS et UEFI sont maintenant correctement reconnues
  • Il est possible de définir des structures et des énumérations en C (avec la commande "t"), et des les importer dans radare2. Mieux encore, il sera bientôt possible de faire de même pour les fonctions et des structures conditionnelles.
  • De nouveaux bindings: support des ctypes Python, de Java JNI, et même de D.
  • Un support complet de l'UTF8, qui apporte une plus belle interface.
  • Plus de raccourcis à la vim !
  • Les signaux peuvent maintenant être capturés et passés (ou non) au processus débogué.
  • Il est maintenant possible de déboguer des binaires 32 bits sur du x86-64
  • Pas mal de restructurations internes.
  • Un serveur web intégré est maintenant présent, ce qui permet de profiter plus simplement de l'interface web.
  • La commande "pxa" permet d'afficher d'annoter/colorier/commenter/définir des structures dans un hexdump.
  • Beaucoup de bugs ont été corrigés.

Les tests, c'est chouette

Il s'agit de la première version à faire un usage intensif de la suite de tests, ce qui va permettre d'éviter bon nombre de régressions. D'ailleurs, vous êtes encouragés à fournir un test avec vos rapports de bugs :)

Support

Radare2 étant développé rapidement, il n'a pour l'instant qu'une maigre documentation, mais elle commence doucement à prendre forme, et des tutoriels sont publiés de temps en temps. N'hésitez pas à venir sur #radare (sur freenode) pour poser des questions si vous avez du mal.

Aller plus loin

  • # comparaison

    Posté par  (site web personnel) . Évalué à 4.

    Et comparé à metasm, ça donne quoi ?

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: comparaison

      Posté par  (site web personnel) . Évalué à 2. Dernière modification le 12 novembre 2013 à 16:26.

      Radare2 est maintenu ;)

      Plus sérieusement, ce sont de proches cousins, mais radare2 supporte plus de choses (architectures, OS) et a plus de fonctionnalités. Par contre, metasm a metabot !

  • # La fonctionnalité qui TUE ... le cerveau

    Posté par  . Évalué à 5.

    un débogueur brainfuck !

    Et bien sur vous faites des batteries de tests sur cette fonctionnalité hautement indispensable ^-^'

  • # Documentation

    Posté par  . Évalué à 1.

    tutoriels sont publiés de temps en temps.

    J'avais essayé de prendre en main ce logiciel il y a quelque temps, et j'avoue avoir été pas mal perdu, au final je m'étais tourné vers IDA, plus facile a prendre en main (à mon avis).

    Du coup je suis preneur de tutoriels sur le sujet. la section du site étant malheureusement assez maigre.

    • [^] # Re: Documentation

      Posté par  (site web personnel) . Évalué à 3.

      Tu peux tenter mon blog, j'essaye de publier régulièrement des writeup avec radare2.
      Dans radare2, il est possible d'obtenir de l'aide avec la commande "?".

  • # Analyser des formats

    Posté par  . Évalué à 1.

    Ca a l'air surtout fait pour analyser des exécutables ; est-ce que c'est aussi adapté à l'analyse de formats de fichier dont les spécifications sont inconnues ? Par exemple, peut-on afficher des sortes de masque de fichier pour souligner la structure d'un fichier, pour ensuite plus facilement faire des comparaisons ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.