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

 Delphi Discussion :

trainer acces memoire


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 254
    Par défaut trainer acces memoire
    Bonjour
    je voudrai faire un trainer pour un jeu
    Avec le code ci dessous jarrive a trouver mon jeu

    GetWindowThreadProcessId(FindWindow(nil, 'Mon jeu'), @ProcessID);
    OpenHandle := OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessID);
    Je voudrais trouver ensuite adresse de depart de la memoire du jeu
    et de sa longueur pour rechercher une certaine valeur et ensuite la modifier
    Merci d avance de vouloir m'aider

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 123
    Par défaut
    Cherche sur le forum l'utilisation de l'API WriteProcessMemory
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 254
    Par défaut Trainer acces memoire
    Bonjour
    Merci deja pour votre aide
    je voudrais ecrire a une adresse donner
    le chiffre 80077 en hexa $138CD donc en memoire
    a adresse voulue comme ces inverse je dois avoir
    avec un editeur Hexa
    CD 38 01
    je fais ce code mais il m'ecris pas la valeur demande
    pourquoi
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    var
    Fentr : integer;
      PrcID : integer;
      ProID : integer;
      Opnpr : integer;
      Wrtpr : cardinal;
      Buf   : pchar;
      NumberOfBytes :byte;
      PokeValue     : dword;
      PokeAddress   : dword;
     
     
     
     
    procedure Tform1.trouve_process;
    begin
    ListBox1.Clear;
    form1.Cursor:=crhourglass;
     
     
      PokeAddress   := $8DAC48;       // Adresse
     
      NumberOfBytes := 3;             // Nombre de byte à écrire
      Fentr := FindWindow(nil,'Monjeu');
      if fentr<>0 then begin
      PrcID := GetWindowThreadProcessId(Fentr,@ProID);
      Opnpr := OpenProcess(PROCESS_ALL_ACCESS,False,ProID);
      GetMem(Buf,1);
    PokeValue     :=80077;
    {PokeValue     :=$0138CD;}
    buf^ := chr(pokevalue);
    WriteProcessMemory(Opnpr, ptr(PokeAddress),Buf,NumberOfBytes,Wrtpr);
     FreeMem(Buf);            
      closehandle(Opnpr);
       end;
    end;
    avec ce code sa marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    PokeValue     :=$CD;
    buf^ := chr(pokevalue);
    WriteProcessMemory(Opnpr, ptr(PokeAddress),Buf,NumberOfBytes,Wrtpr);
     
    PokeValue     :=$38;
    buf^ := chr(pokevalue);
    WriteProcessMemory(Opnpr, ptr(PokeAddress+1),Buf,NumberOfBytes,Wrtpr);
      PokeValue     :=$01;
    buf^ := chr(pokevalue);
    WriteProcessMemory(Opnpr, ptr(PokeAddress+2),Buf,NumberOfBytes,Wrtpr);
    Comment faut il faire pour simplifier ce code

    Merci avance pour votre aide

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 254
    Par défaut trainer acces memoire
    Bonjour
    viens de trouver
    jai declare une variable en integer
    et jai utiliser @ pour ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
    value:integer;
    begin
    .... 
    ......
    NumberOfBytes:=3;
    value:=80077;
    WriteProcessMemory(Opnpr, ptr(PokeAddress),@value,NumberOfBytes,Wrtpr);
    +++

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

Discussions similaires

  1. optimisations accés memoire
    Par yan dans le forum C++
    Réponses: 21
    Dernier message: 13/02/2009, 12h56
  2. Violation droit d'accès memoire
    Par muadhib dans le forum Langage
    Réponses: 6
    Dernier message: 20/08/2008, 14h43
  3. Acces memoire d'un processus
    Par geekrider dans le forum Langage
    Réponses: 7
    Dernier message: 23/07/2007, 11h51
  4. Acces memoire video
    Par Mercenary Developer dans le forum C
    Réponses: 8
    Dernier message: 22/06/2007, 03h27
  5. Acces et vitesse des memoires caches.
    Par baygon_vert dans le forum Composants
    Réponses: 3
    Dernier message: 29/06/2006, 19h43

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