alors commençons !
D’abord nous allons lancer le programme sans arguments, nous obtiendrons la chose suivante qui nous indique qu’il faut mettre un premier argument :
Nous pouvons donc nous imaginer que la » string » que nous mettrons sera comparer avec le VRAI passe ..
allons donc désassembler la fonction mais a l’aide de GDB (debugger sous Linux):
Examinons un peu les fonctions utilisé en C !
Il y a strcmp ici :
Cette fonction en C, permet de comparer 2 chaîne de caractères, donc ici la comparaison du premier argument donné et du vrai password !
allons donc mettre un breakpoint sur l’appel de cette fonction a l’aide de la commande : « b *adressedelappel ». tel que :
Donc maintenant exécuter le programme avec la commande « r » et donner un argument aléatoire au programme come par exemple : »123456″.
Nous voyons que le programme bloque sur la fonction de comparaison « strcmp ».On voit aussi que la fonction est comme ceci : « strcmp(argv[1],pass) »
C’est le moment le plus important du cracking de ce crackme fastidieux. Il faut à présent aller regarder nos variables dans le registre ESP !
Pour ceci, exécuter la commande : « x/2x $esp » dans GDB encore ! :)
Cette commande sert à aller afficher les 2 premier octet d’ESP !
Après avoir exécuté cette commande, 3 adresses mémoire s’affiche !
( Nous nous occuperons pas de la première ! )
Donc ouvrons les chaînes de caractères qu’elles contiennent ! ;)
Comment ? grâce à la commande : « x/s adressememoire » !
Pour la première adresse, nous trouverons notre faux passe que l’on a entré avant de breaker !
Et pour la deuxième ? ;)
Aller je vous laisse regarder !
Merci d’avoir lut et bonne chance pour vos prochains CrackMe !!
No comments:
Post a Comment