Dumper un Arduino.

Bon, je pense que pas grand monde connais le Arduino, c’est un contrôleur autonome qui à la particularités d’être super simple d’utilisation. On branche le cable USB, on code un genre de programme en C dans son l’IDE et on pousse. A partir de là, le bitonio est autonome. Il peut alors commander 14 Entrées/Sorties et 5 Entrées analogique, bref le pied pour tout petit montage électronique funky qui détecte et réagit. Et le fer à souder n’est même pas sollicité.

Bon, ok… mais comment on reverse le code. C’est un processeur ATmel qui est le coeur du bitonio, pour le Arduino modèle Uno c’est même précisément un Atmega 328,  rien à voir avec un Mips ni un X86, c’est encore autre chose. Pour ceux que ca intéresse voir Ici : http://www.atmel.com/Images/doc0856.pdf

On peut donc le désassembler avec un IDA évidemment mais aussi avec du libre comme vavrdisasm.

Mais avant de désassembler, faut le dumper ce programme de la chip vers un fichier. Pour cela on peut utiliser avrdude qui est fournis par l’ide de m. Arduino. Petit example sur mon MachinTosh.

Et hop, on se retrouve avec un fichier au format i-hex. Mais voila c’est le format ascii de M. Intel utilisé généralement pour flasher toutes puces de tous poils, IDA l’aime pas !

Pour ceux que ca intéresse, ce format est fortement documenté sur wikipedia. Nous, pour le passer à la moulinette on veut une image de la puce bit à bit. Pour convertir celui ci, on va utiliser avr-objcopy qu’on trouve dans tout bonne distrib généralement comme compagnon de avr-libc.

Et voila, tout est prêt désormais pour passer à la phase torture du cerveau sur un désassembleur.

 

This entry was posted in Hacking, Reverse and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code