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

C++ Discussion :

Accéder à de la mémoire


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 12
    Par défaut Accéder à de la mémoire
    Bonjour,

    Je cherche désespéremment comment lire une section de ma mémoire en C++.
    En fait là je chercherai à regarder ce qui se trouve à l'adresse 0x859e1820.
    Je vois ma valeur avec LiveKD, mais j'aimerais construire un outils l'automatisant.

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Que veux-tu faire exactement ? Pourquoi cette adresse en particulier ? Quel outil veux-tu faire ? Je te demande cela car ton problème est peut-être avant et que cette adresse peut très bien changer demain.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 12
    Par défaut
    Oui ma valeur change.

    En fait, quand je demarre un Windows au chargement celui ci place en mémoire des informations que j'aimerais recuperer.
    Ces informations sont précédé d'une suite d'octets:
    2C00 0500 0100 0000 ....
    je veux recuperer les 128 bits qui suivent cet entete.
    Mais dans un premier temps, je voulais pouvoir me placer à un endroit particuilier, et commencer ma recherche.
    Mais je suis d'accord que l'adresse de l'information change à chaque fois que je redemarre mon Windows.


    Voilà

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Est-ce que memcpy pourrait suffir à ton bonheur ? Mais je ne suis pas très convaincu. Auras-tu le droit d'aller y lire ?

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    unsigned char const* ptr = (unsigned char const*)0x859e1820;
    est ce qui a le plus de chance de marcher. Evidemment non portable. Ne pas oublier non plus que la memoire est normalement pas partagee entre process et que certaines zones peuvent ne pas etre lisible.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 12
    Par défaut
    ok, ca semble passer, mais je n'arrive pas à accéder au contenu pointé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    unsigned char const* ptr = (unsigned char const*)0x859e1820;
     
    PCHAR pAdresse = (PCHAR)*ptr;
     
    if (*(PUSHORT)(pAdresse)==0x2c00)
    {
         ....
    Lorsque j'execute ca, j'ai une sorte de segfault.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Relis le message de Jean-Marc.Bourguet.
    Ne pas oublier non plus que la memoire est normalement pas partagee entre process et que certaines zones peuvent ne pas etre lisible.
    Tu ne peux pas lire n'importe quelle adresse de ta mémoire. Il va falloir que tu débrouilles autrement mais ce n'est plus vraiment une question de C++. Windows doit bien te fournir un moyen de lire ce fameux entête.

Discussions similaires

  1. accéder a la mémoire interne d'un téléphone mobile
    Par ibrahimCA dans le forum Mobiles
    Réponses: 0
    Dernier message: 16/04/2012, 20h57
  2. Accéder directement à la mémoire graphique
    Par raphael_kindt dans le forum OpenGL
    Réponses: 6
    Dernier message: 24/03/2009, 17h10
  3. Eclipse GMF : accéder aux objets en mémoire.
    Par rodbeck dans le forum Eclipse Platform
    Réponses: 9
    Dernier message: 08/12/2008, 14h04
  4. Comment accéder à la mémoire vidéo ?
    Par Jérôme.O[76] dans le forum PureBasic
    Réponses: 16
    Dernier message: 16/03/2008, 13h54
  5. Accéder à un espace mémoire sous XP
    Par keny dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 02/08/2002, 12h37

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