Radare2 lance son Radare Summer of Code

Posté par  (site web personnel) . Édité par Nÿco, Xavier Teyssier, Benoît Sibaud, claudex et Bruno Michel. Modéré par claudex. Licence CC By‑SA.
32
19
avr.
2014
Commercial

Radare2 a tenté d'être accepté dans un Google Summer of Code, mais n'a pas été retenu. Au lieu de se lamenter sur son sort, le projet a décidé de lancer son propre Radare Summer of Code !
Pour mémoire, radare2 est un framework d'analyse de binaires déjà évoqué sur Linuxfr.

 image

N'étant pas un gros projet comme Rails, les ambitions sont moindres et les règles différentes :

  • moins de budget ;
  • les mentors ne sont pas payés ;
  • l'intégralité des dons récoltés ira aux participants ;
  • il n'y a pas besoin d'être étudiant pour participer ;
  • les participants repartiront avec un t-shirt des des autocollants.

Radare2, c'est quoi ?

Pour rappel, radare2, c'est un cadriciel complet pour analyser des binaires :

  • multi-architectures : GNU/Linux, Android, *BSD, OSX, iPhoneOS, Windows{32,64} et Solaris ;
  • multi-plateformes : 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 complet ;
  • un (dés)assembleur (récursif !), avec coloration syntaxique ;
  • un débogueur natif, mais il est possible d'utiliser GDB en backend, voir même 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, checksums…
  • un support des disques, processus, fichiers et flux ;
  • de la comparaison de binaires (binary diffing), que ce soit sous forme traditionnelle, ou sous forme de graphes ;
  • analyse de code, au niveau des opcodes, des blocks, ou encore des fonctions ;
  • une machine virtuelle, permettant d'émuler du code ;
  • une interface web permettant de travailler de manière collaborative.

Calendrier :

  • 22 avril - ouverture des inscriptions ;
  • 3 mai - fermeture des inscriptions ;
  • 8 mai - annonce des candidats/tâches sélectionnées ;
  • 17 juin - début de la période de code ;
  • 16 septembre - fin de la période de code ;
  • 27 septembre - le code produit doit être fusionné dans la branche principale.

Organisation du projet

La majorité du développement se déroule sur github, qui sert également de bugtracker. Pour la communication, les pads et IRC sont privilégiés à la liste de discussion. Le projet utilise une suite de tests unitaires, une instance Jenkins ainsi que Coverity , pour éviter les régressions.

Tâches

Bien qu'étant un projet orienté bas-niveau, il y en a pour tout les goûts :

  • améliorer/refactorer l'interface web ;
  • ajouter un support des templates à la 010Editor ;
  • continuer d'intégrer sdb dans radare2 ;
  • améliorer le compilateur de shellcodes ;
  • terminer de concevoir/implémenter l'émulateur de code ;
  • améliorer la compatibilité avec les outils Windows (WinDBG/PDB) ;
  • ajouter le support de nouvelles architectures ;
  • mettre à jour l'interface graphique.

Conclusion

Le projet recherche donc des dons ainsi que des curieux pour participer :).

Aller plus loin

  • # Superbe initiative

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

    Ça va vous demandez pas mal de boulot. Bon courage, pour encadrer du beau monde sur tous ces projets.

    Vous estimez que ça demande combien de temps par jours pour un mentor ?

    Vous pensez que ça demande combien de temps par jours pour un stagiaire ?
    Combien de stagiaires par projet ?

    Autant lire des papiers, des livres en anglais / informatiques, ça va, autant rédiger proprement en anglais, c'est une autre paire de manche. Du coup, quel est le niveau de langue demandé ?

    Vous pensez demander un autre rendu que le projet même ? Une sorte de rapport ou journal de bord. Ça peut être intéressant, si vous souhaitez reconduire l'expérience l'année suivante.

    Anonyme, du coup pas de dossier à monter : lettre de motivation + cv ?

    Est-ce un bon moyen de mettre un pied dans la rétro-ingénierie si on y porte de l'intérêt ou bien, c'est vraiment mort si on n'en n'a pas les bases?

    Il y a plusieurs façon de faire du C; comme on l'apprend à l'école pour découvrir la programmation et faire au cours de notre scolarité deux trois programmes entre minables, inutiles et divertisants et faire du vrai C de manière pro (bref, comme pour tous les langages). Vous allez prendre un peu de temps pour enseigner à travers les projets des bases sereines en C.

    Je trouve votre projet fantastique. Je m'étais pris le bouquin reversing pour mettre un pied dedans, mais je n'ai pas encore trouvé le temps de m'y mettre sérieusement. Voilà, une belle occasion. Je suis de concours mercredi, jeudi, mais du coup, j'essayerai de passer sur irc pour en apprendre un peu plus la semaine prochaine.

    La réalité, c'est ce qui continue d'exister quand on cesse d'y croire - Philip K. Dick

    • [^] # Re: Superbe initiative

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

      Ça va vous demandez pas mal de boulot. Bon courage, pour encadrer du beau monde sur tous ces projets.

      On est préparé :)

      Vous estimez que ça demande combien de temps par jours pour un mentor ?

      Ça dépend de l'étudiant

      Vous pensez que ça demande combien de temps par jours pour un stagiaire ?

      Pour un participant, autant que nécessaire pour accomplir ses objectifs.

      Combien de stagiaires par projet ?

      Il est possible de diviser les tâches s'il y a plusieurs personnes intéressées.

      Autant lire des papiers, des livres en anglais / informatiques, ça va, autant rédiger proprement en anglais, c'est une autre paire de manche. Du coup, quel est le niveau de langue demandé ?

      La plupart des contributeurs n'ont pas l'anglais comme première langue, ça ne pose pas de soucis de ne pas être super fluent. En revanche, il faut être capable d'exprimer ses idées et de papoter :)

      Vous pensez demander un autre rendu que le projet même ?

      Non

      Une sorte de rapport ou journal de bord. Ça peut être intéressant, si vous souhaitez reconduire l'expérience l'année suivante.

      On espère garder les contributeur après le RSoC. Libre à eux de tenir un journal. Les mentors feront bien entendu un compte-rendu. Nous aimons la transparence :)

      Anonyme, du coup pas de dossier à monter : lettre de motivation + cv ?

      Un petit mail avec ce que tu veux faire, et pourquoi tu penses que tu es la bonne personne pour faire ça.

      Est-ce un bon moyen de mettre un pied dans la rétro-ingénierie si on y porte de l'intérêt ou bien, c'est vraiment mort si on n'en n'a pas les bases?

      C'est un bon moyen :)

      Il y a plusieurs façon de faire du C; comme on l'apprend à l'école pour découvrir la programmation et faire au cours de notre scolarité deux trois programmes entre minables, inutiles et divertisants et faire du vrai C de manière pro (bref, comme pour tous les langages). Vous allez prendre un peu de temps pour enseigner à travers les projets des bases sereines en C.

      Si tu ne sais pas faire de C, ça risque d'être compliqué. Mais si tu n'es pas un expert avec 10 ans de C derrière toi, ça n'est pas très grave :)

      Je trouve votre projet fantastique.

      C'est très gentil.

      Je m'étais pris le bouquin reversing pour mettre un pied dedans, mais je n'ai pas encore trouvé le temps de m'y mettre sérieusement.

      N'hésite pas à venir nous voir si tu peux en parler :)

      Voilà, une belle occasion. Je suis de concours mercredi, jeudi, mais du coup, j'essayerai de passer sur irc pour en apprendre un peu plus la semaine prochaine.

      On t'attend :)

Suivre le flux des commentaires

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