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

VB.NET Discussion :

Acceder à la mémoire allouée à un autre processus Windows


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 68
    Points : 45
    Points
    45
    Par défaut Acceder à la mémoire allouée à un autre processus Windows
    Bonjour,

    j'ai un problème de taille, ça fait une semaine que je cherche une solution en VB[.NET] mais je ne trouverais pas tout seul, j'ai besoin de votre aide si vous voulez bien

    J'ai fait un utilitaire (VB / Visual Studio 2005) associé à un jeu vidéo. Cet utilitaire est basé sur un OCX fourni gracieusement par un programmeur mais malheureusement il ne s'en occupe plus trop et les sources ne sont pas dispo.

    L'utilitaire (l'OCX plutot) consiste à aller lire des zones mémoires allouées à un jeu qui tourne sous XP (GTR2.EXE pour être précis). Mon programme ne fait que mettre en forme ses données pour épauler le pilote lors des courses de simulation et les afficher sur un 2eme écran en dualview ou sur un autre PC puisque j'ai implémenté le mode réseau (screenshoot ci-dessous).



    J'ai déjà repéré certaines zones de mémoire de GTR2.EXE qui me donneraient les infos dont j'ai besoin pour me passer de l'OCX (grâce à IDA Pro etc...), mais avant d'aller plus loin dans mes recherches j'aurais besoin de tester et donc d'acceder effectivement à ces zones RAM à partir de mon programme.

    J'ai les Offset... ma question est : comment, à partir de VB, obtenir la partie l'adresse de chargement en ram de l'autre programme pour pouvoir la lire ?

    à l'époque du DOS j'aurais sauter sur mon éditeur favori et j'aurais compilé avec TASM, ou encore j'aurais tapé du code asm dans TP6

    par contre dans la structure windows je suis à la rue, gravement :/

    Si vous pouviez m'indiquer la façon de faire, une piste, etc... je vous en serais très reconnaissant

    désolé pour la longueur du message, j'ai préféré être précis sur la forme parce que quand on parle d'aller lire la mémoire d'un autre process windows ce n'est pas toujours pour la bonne cause...
    Dans mon cas c'est pour faire plaisir à une communauté de pilotes, déjà plus de 800 personnes utilisent mon soft, j'aimerais bien aller plus loin, et en particulier arrêter d'être dépendant d'un OCX.

    Merci.

    Alek.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 68
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    j'ai une piste en VB : ProcessThread.StartAddress

    Le problème c'est que j'ai listé quelques processus en collectant StartAdress pour chacun d'eux et.... cette méthode m'indique la même adresse pour quasi tous les process en cours sur ma machine :/

    Or dans l'aide Visual Studio je lis ceci :

    Chaque thread Windows commence en réalité par s'exécuter dans une fonction fournie par le système, plutôt que par l'application. Par conséquent, l'adresse de départ du thread principal est identique (car elle représente l'adresse de la fonction fournie par le système) pour tous les processus Windows du système. Cependant, la propriété StartAddress vous permet d'obtenir l'adresse de la fonction de démarrage spécifique à votre application.
    Il se trouve que non... ou alors j'ai mal compris ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 68
    Points : 45
    Points
    45
    Par défaut
    C'est bon, j'ai trouvé : API windows... notamment "ReadProcessMemory" et tout le bastringue

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Augmenter la mémoire allouée aux .jar sous windows
    Par newbeewan dans le forum Général Java
    Réponses: 2
    Dernier message: 09/04/2009, 10h47
  2. Réponses: 4
    Dernier message: 20/11/2006, 01h02
  3. Peut on acceder à une image d'une autre application sous windows?
    Par pointer dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 19/04/2006, 12h17
  4. Réponses: 9
    Dernier message: 21/12/2005, 17h33
  5. Réponses: 2
    Dernier message: 06/04/2004, 08h39

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