{ FIT-HACK#2017 } - Binary 100 - Random
Binary 100 - Random
Pour ce challenge on a un binaire (ELF 64). On essaie de l'exécuter une première fois, et on voit qu'il y a 10 round, et on suppose qu'à chaque round on doit trouver le nombre aléatoire.
On utilise alors GDB pour comprendre le fonctionnement du programme: On peut voir que valeur que l'on entre est comparée à l'instruction qui se trouve à l'adresse 0x0000000000400783 (main+134):
On met alors un breakpoint à cette instruction, on démarre le programme et on entre une valeur au hasard. Arrivé au breakpoint, on affiche la valeur en $rbp-0x88 :
Pour être sur que la valeur généré par le programme est bien aléatoire, on lance le programme, on entre la même valeur que précédemment et on regarde la valeur en $rbp-0x88 :
La valeur est la même!
On met alors la valeur dans la variable EAX et on continue le programme.
On affiche de nouveaux la valeur de $rbp-0x88 et on l'assigne à EAX. On effectue ces actions pour les 10 rounds en notant les valeurs générées par le programme. On converti ensuite ces 10 valeurs en décimal. Puis on exécute le programme normalement en entrant ces valeurs :
Et on obtient le flag !
Commentaires
Enregistrer un commentaire