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
Choisir uniquement ROM
Choisir le cpu, si ca couine …. on dit ok hein :)
Et enfin a la rom dire cancel…
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.
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 :)
Voila bon RE
Tu n’as pas qu’un seul lecteur ! :D
2 !!! exceptionnel ! :)
3 ;)
Houla il va bientôt falloir que j’étançonne la boite a comments !
4. D’ailleurs c’est un peu complique les additions dans le CAPTCHA, j ai pas failli pas mettre de comms
Bon j’avoue c’est le but caché.