IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

[Ollydbg] Adresse de retour en hexa et non en ascii


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [Ollydbg] Adresse de retour en hexa et non en ascii
    Voilà j'ai tout essayé et chercher un moment sur notre ami Google mais je ne trouve rien qui puisse m'aider alors j'espère que l'un d'entre vous pourra.
    J'étudie les failles applicatives ou du moins j'essaye d'apprendre. Je connais le C et maintenant les bases en asm. J'ai simulé volontairement un buffer overflow dans le petit programme c de façon à pouvoir developper un petit exploit toujours dans l'idée d'apprendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    int bof(char* string) 
    {
    	char buffer[10];
    	strcpy(buffer, string);
    	return 1;
    }
     
    int main(int argc, char* argv[])
    {
    	bof(argv[1]);
    	printf("Done..\n");
    	return 1;
    }
    J'utilise ollydbg pour débugguer et lorsque je souhaite passer un argument au programme (pour simuler le débordement du buffer), je n'arrive pas à écrire une adresse de retour en hexa. Tout ce que je tape en tant qu'argument est écrit en ascii normal. Vous allez me dire c'est une chaîne de caractères.
    Alors j'aimerais savoir de quelle façon continuer à simuler mon buffer en pouvant rentrer une adresse de retour sans qu'elle soit prise au format ascii mais hexa.
    Parce que là je n'avance plus du tout, merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 145
    Points : 170
    Points
    170
    Par défaut
    L'ascii n'existe pas en tant que tel, il ne s'agit que d'une représentation d'un code hexa. Autrement dit, tout ce que tu fournis en argument à ton programme... c'est de l'hexa !
    Ceci étant dit, pour réellement exploiter un buffer overflow en obtenant autre chose qu'un segfault, le code hexa passé en paramètre doit correspondre à autre chose que des caractères

    L'article de référence sur le sujet Smashing The Stack For Fun And Profit:

Discussions similaires

  1. [OL-2003] Changer l'adresse de retour avec champs "DE"
    Par Mariquiqui dans le forum VBA Outlook
    Réponses: 0
    Dernier message: 07/01/2011, 15h38
  2. Recupérer valeur hexa dans une chaine ASCII
    Par OjBarbare dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/04/2009, 09h50
  3. [REGEX] Récupérer tous les caractères non US-ASCII
    Par nonhosonno dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/08/2006, 10h02
  4. [MySQL] Retour d'une requête non voulue
    Par gregal dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/04/2006, 15h57
  5. retour a la ligne non voulu dans mes tableaux ????
    Par cedre22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/03/2006, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo