Renverse la tour 2/2 (Reverse) - 404CTF 2022

Renverse la tour 2/2 (Reverse) - 404CTF 2022

Fichiers du challenge Principe:
Trouver la logique liant deux constantes d'un fichier assembleur (qu'on peut reverse, mais ce n'est pas nécessaire)

Le challenge

Le challenge demande de retrouver encore une fois un mot de passe, mais dans un fichier "assembleur" ASM (dispo ici)

Le fichier ASM

En ouvrant le ASM, on voit qu'il s'agit de pseudo-instructions assembleur. Une constante LOAD_CONST ressort, et sera sûrement intéressante

Python assembly

En cherchant l'une des instructions, on tombe sur la documentation Python: cet ASM est donc un fichier d'instructions compilées de Python

Les constantes

Une seconde constante, plus longue, sera également intéressante, on va donc isoler les deux (qui nous donne du verbiage si on les traduit en ASCII)

On peut s'apercevoir que d n'est constitué que de valeurs uniques, ce qui est hautement improbable sauf si d représente une permutation de la table ASCII

Je me suis alors aperçu que si on lit f à l'envers, on a 187 132 187 ce qui peut correspondre à 404 de 404CTF{...}

En cherchant la position de 187 et 132 dans d, on voit qu'elles sont proches et leur écart (4) correspond à l'écart dans la table ASCII! on a trouvé la logique!

Cette logique est: "lire f en partant de la fin, et pour chaque valeur K, chercher la position de K dans d; cette position donnera la valeur (ASCII) du i-eme caractère du flag

En terminant cette logique, on trouve le flag:
404CTF{L3s4pp4rencesS0ntTr0mp3uses}
j'avais essayé de reverse l'assembleur Python mais bon, c'est instructif certes, mais très rébarbatif

En pratique, cela se reverse assez bien, puisqu'il s'agit juste de pop/push sur une stack et d'utiliser des ord/chr

Fichiers du challenge

↩ Retour à la liste des challenges

⇇ Retour à l'accueil