Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 19h39   #1
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 140
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2009
Messages : 140
Points : 62
Points : 62
Par défaut Segfault qui se produit pas au meme moment ?

Bonjour à tous,

Alors voila je cherche actuellement à reproduire sur ma machine (un ubuntu 11.04 dans une machine virtuelle VMware) un exemple d'exploitation d'un buffer overflow, ici : http://lasecwww.epfl.ch/~oechslin/advbof.pdf (page 12). En fait je ne comprend pas pourquoi alors que j’exécute la même chose avec la même ligne de commande, le segfault ne se produit pas au même moment.

Voila le code (que je compile en ajoutant -fno-stack-protector pour désactiver la détection et le blocage des segfault)

Code :
1
2
3
4
5
6
7
8
#include <stdio.h>
 
main (int argc, char *argv[])
{
  char buffer[256];
  if (argc > 1)
    strcpy(buffer,argv[1]);
}
Par exemple dans le tuto il fait et obtient

Code :
1
2
ouah@weed:~$ ./vuln1 `perl -e 'print "B"x260'`AAAA
Segmentation fault (core dumped)
Alors que moi avec la même commande je n'ai pas de segfault,
il se produit a partir du moment ou je met 8 A au lieu de 4. Et ce n'est pas un core dumped.

Code :
1
2
3
4
5
6
toto@ubuntu:~$ ./vuln1 `perl -e 'print "B"x260'`AAAA
toto@ubuntu:~$ ./vuln1 `perl -e 'print "B"x260'`AAAAA
toto@ubuntu:~$ ./vuln1 `perl -e 'print "B"x260'`AAAAAA
toto@ubuntu:~$ ./vuln1 `perl -e 'print "B"x260'`AAAAAAA
toto@ubuntu:~$ ./vuln1 `perl -e 'print "B"x260'`AAAAAAAA
Erreur de segmentation
Comment peut on expliquer que le segfault ne se produise pas au même moment ? Car j'utilise une VM ? Car j'ai un proc 64bits ? A cause de Ubuntu ? De la version de gcc ? Bref, je ne comprend pas et m'en remet donc aux pros de linux qui pourraient m'aider a comprendre ceci !

Merci d'avance.
Zarohn.
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 08/08/2011, 20h40   #2
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 140
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2009
Messages : 140
Points : 62
Points : 62
Comme je me disais que ça pouvait venir du fait que j’étais en machine virtuelle avec VMware, j'ai installé ubuntu sur mon pc et le résultat est le même !
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 09/08/2011, 05h46   #3
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 140
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2009
Messages : 140
Points : 62
Points : 62
Héhé c'est drôle j'me répond à moi même
Mais bon ça pourra aider des gens dans le futur.

Je pense que ça vient du fait que j'ai un processeur 64 bits en effet les registres ne sont plus sur 32 bits (4 octets) mais sur 64 bits (8 octets), donc les registres ne sont pas écrasé au même moment. Ceci explique surement cela !
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 09/08/2011, 10h38   #4
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 464
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 464
Points : 9 585
Points : 9 585
Bonjour,

Segmentation fault ou Erreur de segmentation, c'est pareil.

Le "core dumped", c'est une indication de la configuration de ton systeme : ton OS peut etre configure, ou non, pour faire un dump (une copie) de la memoire du processus fautif au moment du probleme. Le fait que tu n'en vois pas ne change rien.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 09/08/2011, 16h46   #5
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 140
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2009
Messages : 140
Points : 62
Points : 62
Bonjour,

Pour le core dumped écrit après le segfault / erreur de segmentation je n'étais pas au courant que le fait qu'il s'affiche ou pas c'est pareil. Merci de cette précision.

Cordialement.
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/08/2011, 13h08   #6
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 464
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 464
Points : 9 585
Points : 9 585
Citation:
Envoyé par zarohn Voir le message
Pour le core dumped écrit après le segfault / erreur de segmentation je n'étais pas au courant que le fait qu'il s'affiche ou pas c'est pareil.
Ce n'est pas pareil : dans un cas, il t'indique la creation d'un fichier "core", qui peut te permettre d'avancer dans le debug de ton programme. Dans l'autre cas, tu n'as aucune information, et n'a donc pas d'aide pour le debug.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/08/2011, 20h43   #7
Membre du Club
 
Avatar de zarohn
 
Inscription : mai 2009
Messages : 140
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2009
Messages : 140
Points : 62
Points : 62
Oui oui, mais je voulais dire pareil du point de vue de l’exécution. Hormis le fait qu'un fichier de plus soit généré, le segfault est le même !

Merci encore pour vos réponses.
Bye
zarohn est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h03.


 
 
 
 
Partenaires

Hébergement Web