Tendu comme un slip
Il n’y a qu’un fichier exécutable, sans aucune autre information pour ce challenge. Premier réflexe à avoir quand on télécharge un chall pour du reverse : utiliser la commande strings
. Elle permet d’afficher plein d’informations intéressantes comme les strings enregistrés en mémoire par l’assembleur ainsi que des informations de compilations. Je rajoute un petit grep pour me faciliter la tâche.
strings tendu | grep PHACK
No strings
Comme pour le chall précédent, je ne reçois qu’un fichier exécutable sans informations. Cependant, le nom laisse sugérer qu’il n’y a pas de flags trouvable avec la commande strings
. Si je reproduis la commande précédente, je ne trouve rien.
Ouvrons alors le fichier dans Cutter. C’est un outil qui va nous montrer le code assembleur du fichier avec des informations intéressantes en plus, comme l’arbre d’appel des fonctions, la liste des fonctions, etc. Je vois directement une fonction display_flag
dans la liste.
Cependant, si j’ouvre l’abre d’appel du main
, je ne vois aucun appel à display_flag
.
Je vais alors regarder dans le main
pour faire quelque chose de tout simple : modifier un appel pour mettre la fonction voulue. Je copie alors l’adresse de la fonction display_flag
et modifie un call pour la mettre.
Avant :
Après :
Je ferme Cutter et lance le programme. Le flag apparait alors…