Trouver le setup et le main sur l’arduino…

Suite a une question de mon unique lecteur :) voici quelque précisions concernant le loading et les routines de base d’un code arduino dans IDA.

Loader un binaire

Donc je ne revient pas sur le setup d’IDA et la création du fichier de RAM de votre programme (non il n’y a toujours pas de script magique :)… voir ici et faire le setup avant de continuer ici…

Petites précisions pour loader le binaire dans IDA;

Premièrement choisir AVR dans la grande liste de CPU

ida_a

 

Choisir uniquement ROM

 

ida_b

 

Choisir le cpu, si ca couine …. on dit ok hein :)

 

ida_c

 

Et enfin a la rom dire cancel…

ida_d

Vous pouvez alors suivre la procédure pour créer votre ram et la loader….

Trouver le main

Bon si on regarde juste après la procédure de recopie de la “rom” en “ram” expliqué dans notre précédent article on vois toujours la même structure de code par après. Un call et Un jmp.

ida_e

le jmp envois le code dans une loop infinie pour tanker le programme, le call sub_200 juste avant, c’est lui le main() “arduino”. main() que l’on ne vois jamais dans le code source et qui s’occupe d’appeler notre “setup()” et lancer le fameux “loop()”.

Le 1er call (sub_12D ici) s’occupe lui aussi d’initialiser des choses dont on n’a même pas conscience :)

ida_f

 

Voila bon RE

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

6 Responses to Trouver le setup et le main sur l’arduino…

  1. the-maux says:

    Tu n’as pas qu’un seul lecteur ! :D

  2. Greg says:

    4. D’ailleurs c’est un peu complique les additions dans le CAPTCHA, j ai pas failli pas mettre de comms

Leave a Reply

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

AlphaOmega Captcha Classica  –  Enter Security Code