AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ramadresse auslesen

Ein Thema von michback · begonnen am 23. Nov 2007 · letzter Beitrag vom 7. Dez 2007
Antwort Antwort
michback

Registriert seit: 23. Nov 2007
35 Beiträge
 
#1

Ramadresse auslesen

  Alt 23. Nov 2007, 13:18
Gibt es ein tutorial mit dem ich erlernen kann wie ich eine bestimmte Speicher Adresse auslesen kann?

Und wenn Auch möglich würde gern eine exe im Ram auslesen und darin nach bestimmten Werten suchen. z.B. Der Spieler des Spieles XY hat 10000 Goldeinheiten.
  Mit Zitat antworten Zitat
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#2

Re: Ramadresse auslesen

  Alt 23. Nov 2007, 14:21
Ein Integer an Adresse $00400000 im eigenen virtuellen Speicherraum (nur in der selben Exe) auslesen und ausgeben.

ShowMessage(IntToStr(Pinteger($00400000)^)); Den Wert $12122323 im Prozess mit der PID (1012) im Addressbereich von $00401000 bis $00401200 absuchen und die Addresse, des Wertes, wenn gefunden, ausgeben.

Delphi-Quellcode:
function FindValueInProcess(hProcess: THandle; Value: DWORD; Offset, SearchLen: DWORD): Pointer;
var
  i: Integer;
  buffer: DWORD;
  written: DWORD;
begin
  result := nil;
  For i := Offset To OffSet+SearchLen Do
    begin
      If ReadProcessMemory(hprocess,Pointer(i),@buffer,4,written) and
        (buffer = Value) Then
        begin
          result := Pointer(i);
          Break;
        end;
    end;
end;

Anwendung:

var
  hprocess: Thandle;
  address: Pointer;
begin
  hProcess := OpenProcess(PROCESS_VM_READ,False,1012);
  address := FindValueInProcess(hProcess,$12122323,$00401000,$200);
  CloseHandle(hProcess);
  If address <> nil Then
    ShowMessage(Format('Value found at address %x',[DWORD(address)]));
end;
  Mit Zitat antworten Zitat
michback

Registriert seit: 23. Nov 2007
35 Beiträge
 
#3

Re: Ramadresse auslesen

  Alt 23. Nov 2007, 14:28
Habe mit dem Programm Ram cheat Die Adressen herausgefunden.
Und kann eine .pos (winHex Positions datei) datei auslagern. Die Adresse ist jedesmal anders denoch finden beide tools die Adresse wieder.



sagt euch das was?


Anbei mal die exportierte Datei



DANKE schon mal für die Hilfe, leider muss mein Programm aber aus anderen Programmen z.B. Spielen werte auslesen. Oder habe ich das falsch verstanden?
Angehängte Dateien
Dateityp: txt speicherstellen_von_neues_projekt.pos_306.txt (65 Bytes, 11x aufgerufen)
  Mit Zitat antworten Zitat
Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#4

Re: Ramadresse auslesen

  Alt 23. Nov 2007, 15:00
Hast du dir mein zweites Beispiel angesehen?
Damit kannst du aus einem fremden Prozess einen beliebigen Wert finden und die Adresse dieses Wertes wird zurückgegeben.
Wenn du verstanden hast, was dort passiert, weisst du auch wie du an den ausgelesenen Wert kommst. (buffer).

Die beiden Adressen der Werte, die du angehängt hast, bringen dir herzlich wenig, wenn sie, wie du sagtest, immer woanders stehen.
Beobachte mal in welchen Bereichen die beiden Werte ungefähr auftauchen. Falls das vollkommen unterschiedlich ist jedesmal, kannst du versuchen fixe Adressen zu finden, an denen Pointer stehen, die auf diese Werte zeigen, was oft der Fall ist, damit das Spiel auch auf diese Werte zugreifen kann.
  Mit Zitat antworten Zitat
michback

Registriert seit: 23. Nov 2007
35 Beiträge
 
#5

Re: Ramadresse auslesen

  Alt 23. Nov 2007, 15:32
danke ich bastel gleich mal herum.

Wo kann man ersehen von welcher bis welcher Speicher Adresse eine Anwendung arbeitet ?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Ramadresse auslesen

  Alt 23. Nov 2007, 18:50
Moin michback,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Für das Ermitteln aller belegter Speicherbereiche hatte ich hier mal ein Beispiel gepostet (AFAIR)
(ich denke mal in der Windows-Sparte).
Als Suchbegriff käme da, u.a. VirtualQueryEx in Frage.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
elliott

Registriert seit: 3. Apr 2006
17 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Ramadresse auslesen

  Alt 7. Dez 2007, 17:53
oder schau die funktion createtoolhelp32snapshot bei msdn an!
die toolhelp funktionen kann man über die delphi-unit TLHelp32 einbinden!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz