Mars@Hack 2022 — Break safe code — 2 Easy Write-up

TL;DR

En m’aidant du fichier flowchart.png, je pouvais déduire les fonctions dans le programme.

Introduction

Le challenge fournit :

Schéma Électronique du système d’ouverture de la boîte
Flowchart du programme d’ouverture de la boîte.

Bypass ?

La première idée que j’ai eue est de couper l’alimentation électrique du boîtier pour rentrer mon propre code et ensuite ouvrir la boîte avec celui-ci. Cependant, l’alimentation du boîtier étant dans la boîte, il m’est impossible de réaliser ce trick. Il va donc falloir reverse.

Compréhension du programme

Lorsque j’essaye d’ouvrir le programme depuis Ghidra, celui-ci ne reconnaît pas le langage utilisé. Il faut alors lui spécifier le langage AVR8 pour avoir un code lisible (s/o @Hackdaddy).

Ouverture du binaire dans Ghidra.

Function where is you ?

En me basant sur le flowchart, je sais qu’une interaction avec le bouton * est réalisée au démarrage pour initialiser le code. La fonction Reset réalise un appelle à la fonction FUN_code_0192 qui un peu plus loin dans le code effectue une comparaison entre un registre et le caractère *.

Fonction permettant d’initialiser le code de la boîte.
Fonction permettant de retourner au format ASCII le bouton utilisé par l’utilisateur.
Call Tree de la fonction read_input.

Décodage de l’EEPROM

En regardant de plus près la fonction FUN_code_0110 et FUN_code_0167, je remarque que la fonction FUN_code_0167 est plus intéressante, car elle boucle tant que le bouton # n’est pas pressé. Si je me réfère au flowchart, je sais que c’est le bouton attendu pour terminer l’initialisation du code.

Fonction permettant de renseigner le code.

Récupération du code

Avec un rapide script python, je peux récupérer le code depuis la mémoire EEPROM.

Décodage de la mémoire EEPROM pour en extraire le code.

Live

Le moment de l’ouverture du coffre peut être visionné en live (de loin) via ce lien: https://www.youtube.com/watch?v=VbB3HouG5Mo&t=16540s

--

--

French CTF team

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store