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
- Site officiel (1423 clics)
- Annonce originale (77 clics)
- Dépôt git (111 clics)
- Capture d'écran (1156 clics)
# comparaison
Posté par Krunch (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 jvoisin (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 Mimoza . Évalué à 5.
Et bien sur vous faites des batteries de tests sur cette fonctionnalité hautement indispensable ^-^'
[^] # Re: La fonctionnalité qui TUE ... le cerveau
Posté par ariasuni . Évalué à 2.
J’attends le débogueur Malbolge avec impatience…
Écrit en Bépo selon l’orthographe de 1990
# Documentation
Posté par chubinou . Évalué à 1.
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 jvoisin (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 programLyrique . É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 ?
[^] # Re: Analyser des formats
Posté par Benoît Sibaud (site web personnel) . Évalué à 6.
Ça me fait penser au proche Hachoir (ça fait un moment qu'il n'a pas donné de nouvelles par ici) https://bitbucket.org/haypo/hachoir/wiki/Home
[^] # Re: Analyser des formats
Posté par programLyrique . Évalué à 1.
Oui, en effet.
Je connais, mais justement, ça a l'air un projet (prometteur) mort.
Alors, je me contente d'un éditeur hexadécimal. Le développeur de wxHexEditor avait l'air partant pour améliorer son système de tags pour qu'il puisse être appliqué sur plusieurs fichiers à la fois.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.