Format String Attack et Pile d'exécution

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Format String Attack et Pile d'exécution

Messagepar glubby » 26 Mai 2008 11:01

En ce moment, je suis en train de préparer une démonstration de la "format string attack". Le but est de pouvoir lire les valeurs qui sont dans la pile d'exécution du programme. Donc, pour y parvenir j'utilise un petit programme C crée dans ce but (et trouver sur Internet) :

/*
* fmtme.c
* Format a value into a fixed-size buffer
*/
#include <stdio.h>
int main(int argc, char **argv){
char buf[100];
int x;
if(argc != 2)exit(1);
x = 1;
snprintf(buf, sizeof buf, argv[1]);
buf[sizeof buf - 1] = 0;
printf("buffer (%d): %s\n", strlen(buf), buf);
printf("x is %d/%#x (@ %p)\n", x, x, &x);
return 0;
}

Le programme fonctionne bien et voici sa trace d'exécution :

$ ./fmtme "aaaa %x %x %x %x %x %x %x %x %x"
buffer (49): aaaa 0 0 0 bf821020 bf820ff0 8048226 0 1 61616161
x is 1/0x1 (@ 0xbf820f68)

Mon problème est que dans l'exemple que j'ai trouvé, l'affichage des résultats est différent. Dans mon exemple, il a été exécuté sur une BSD/OS 4.1 et en voici le résultat :
% ./fmtme "aaaa %x %x"
buffer (15): aaaa 1 61616161
x is 1/0x1 (@ 0x804745c)

(1 est la valeur de x et 61616161 est l'affichage hexadécimal de aaaa passé en paramètre)

Donc j'aimerais savoir à quoi corresponde ces valeurs : "0 0 0 bf821020 bf820ff0 8048226 0" qui sont affichés avant les éléments de la pile. J'ai fait tous ces tests sur Backtrack 2, Debian 3.1 et fedora 7 (kernel 2.6) et j'obtiens des résultats similaires. Je vous remercie par avance pour votre aide.
glubby
Matelot
Matelot
 
Messages: 1
Inscrit le: 26 Mai 2008 11:00

Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité