Einzelnen Beitrag anzeigen

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