Challs hardware pour un softeux Ce billet de blog est disponible au format plaintext, MarkDown, org et HTM. Il est disponible uniquement en français, si vous voulez le traduire, envoyez-moi un mail avec pour sujet "traduction [article] [langue]" avec ou dans le corp du mail ou en pièce jointe la traduction au format de votre choix. --- Avec [Whiterose](https://whiterose-infosec.super.site), on discutait des multiples façons de résoudre un chall lors d'un CTF. Cela est partie d'une anecdocte où une personne lui a refusé un drapeau parce qu'elle n'avait pas fait "de la bonne manière", ce que l'on trouve stupide. Il n'y a pas de bonnes manières pour résoudre un challenge. Elle en a réalisé [quelques uns](https://whiterose-infosec.super.site/challenge-created) qui doivent se faire avec une carte hardware à flasher (avec un firmware de sa conception). Je n'ai, malheureusement, pas ce genre de matériel chez moi. Je suis un développeur et l'hardware me fait peur. Je sais par contre faire de la rétro-ingénierie. ## Reverse moi le cul Ses challs sont des fichiers `.hex` qui contiennent les informations pour la carte en hexadécimal. En consultant le fichier des spécifications, il est indiqué que l'architecture est de l'AVR. Après une rapide recherche, je tombe sur un article écrite par des étudiants de l'UBS : [Reverse a Binary Code with Ghidra](https://ubs_csse.gitlab.io/secu_os/_downloads/4bf923b421cb7bca9bb678b505ed3f8c/CSAW19_ESC_qualif_paper_UBS_BZH.pdf). Ils ont indiqué une commande pour convertir les fichiers `.hex` en fichier binaire. Et qui dit fichier binaire, dit `strings` pour pouvoir trouver des informations utiles, codées en brut. Et ça ne loupe pas, il me suffit ensuite de décoder le flag trouvé, en base 64 ou en code ASCII. J'ai utilisé une image docker Ubuntu toute simple pour installer simplement le packet nécessaire pour pouvoir faire cette conversion. docker run -v .:/opt/challs -ti ubuntu bash apt update && apt install -y binutils-avr && cd /opt/challs avr-objcopy -I ihex chall.hex -O binary chall.bin exit strings chall.bin ## Conclusion Eh oui, c'est déjà la fin. En conclusion, ce genre de chall n'est pas fait pour être RE. Et j'ai une envie de Monster maintenant.