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.
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
- Site officiel (455 clics)
- Site du RSoC (60 clics)
- Page de dons (29 clics)
- Chan IRC (83 clics)
# Superbe initiative
Posté par Thom (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 jvoisin (site web personnel) . Évalué à 5.
On est préparé :)
Ça dépend de l'étudiant
Pour un participant, autant que nécessaire pour accomplir ses objectifs.
Il est possible de diviser les tâches s'il y a plusieurs personnes intéressées.
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 :)
Non
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 :)
Un petit mail avec ce que tu veux faire, et pourquoi tu penses que tu es la bonne personne pour faire ça.
C'est un bon moyen :)
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 :)
C'est très gentil.
N'hésite pas à venir nous voir si tu peux en parler :)
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.