Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
ndhquals2015:superman [2015/04/05 16:43] angel_killah créée |
ndhquals2015:superman [2017/04/09 15:33] (Version actuelle) |
||
---|---|---|---|
Ligne 20: | Ligne 20: | ||
On peut déterminer rapidement le prototype de cette fonction, elle prend en premier argument l'adresse de la chaine chiffrée (à [esi+x], en 2ème argument la taille et en 3ème argument un buffer de sortie (on remarque d'ailleurs que c'est toujours le même buffer qui est utilisé) | On peut déterminer rapidement le prototype de cette fonction, elle prend en premier argument l'adresse de la chaine chiffrée (à [esi+x], en 2ème argument la taille et en 3ème argument un buffer de sortie (on remarque d'ailleurs que c'est toujours le même buffer qui est utilisé) | ||
- | En argument de la fonction de chiffrement (80775F6), on voit un argument intéressant : [esi+1633] et 0x3B6, ce doit surement être une chaîne chiffrée intéressante ! | + | En argument de la fonction de chiffrement (80775F6), on voit un argument intéressant : [esi+1633] et 0x3B6, ça doit surement être une chaîne chiffrée intéressante ! |
- | Du coup, on va tricher un peu, dans notre premier call à la fonction de "déchiffrement/décodage du brainfuck/ affichage d'une chaine" qui nous affichait le message si on était root ou pas, on va modifier les arguments sur gdb pour faire pointer le 1er argument par [esi+1633] et le deuxieme argument par 0x3B6 | + | Du coup, on va tricher un peu, dans notre premier call à la fonction de "déchiffrement/décodage du brainfuck/ affichage d'une chaine" qui nous affichait le message si on était root ou pas, on va modifier les arguments dans gdb pour faire pointer le 1er argument par [esi+1633] et le deuxieme argument par 0x3B6 |
voici la call stack au moment du premier appel à la fonction de déchiffrement/affichage : | voici la call stack au moment du premier appel à la fonction de déchiffrement/affichage : |