Autor Beitrag
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Di 10.08.04 00:51 
Hallo!

Kann mir jemand sagen wo ich mich über Read bzw. Writeprocessmemory kundig machen kann? In der Delphihilfe steht komischerweise nichts dazu! Und im msdn? Das hat ja nichts mit Windows zu tun! Jedenfalls blick ich denen ihre Seite nicht so ganz...

danke im vorraus.

edit
Suche im MSDN READPROCESSMEMORY bringt ja ein gutes Ergebniss. Leider kann ich nicht wirklich gut Englisch...wäre nett wenns da vielleicht auch was auf Dt. gäb. Wenn nicht ist es aber auch nicht so schlimm.


Moderiert von user profile iconMotzi: Topic aus Sonstiges verschoben am Mi 11.08.2004 um 19:42
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 10.08.04 00:58 
Nichts mit Windows? :gruebel: Eigentlich gehört das hier in WinAPI.

msdn.microsoft.com/l...eadprocessmemory.asp

Da stehts doch.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
var
 Read: DWORD;
 OldProtect: DWORD;
 Buf: Pointer;
begin
 // Lese & Schreibrechte holen
 if VirtualProtectEx(Prozess, Adresse, Groesse, PAGE_EXECUTE_READWRITE, OldProtect) then
 begin
  // Speicher reservieren
  getmem(Buf, Groesse);
  try
   // Daten lesen
   if ReadProcessMemory(Prozess, Adresse, Buf, Groesse, Read) then
    if Read = Groesse then
    begin
     // Spaß haben
    end;
  finally
   // Wieder alte Rechte setzen
   VirtualProtectEx(Prozess, Adresse, Groesse, OldProtect, OldProtect)
   freemem(Buf);
  end;
 end;
end;


Ich hoffe das stimmt so, ich habs kein Delphi an :?
WriteProcessMemory funktioniert genauso.
Karlson Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Di 10.08.04 01:46 
ah, danke dir! das bringt mich schonmal viel weiter! Aber es sind die (für dich) einfachen dinge die ich nicht kann/kapiere. Wie bekomme ich z.B. die Adresse raus? Und kann ich mir den Speicher irgendwo anzeigen lassen? Auf deutsch: Was gehört bei "Spass haben" rein :)
obbschtkuche
Gast
Erhaltene Danke: 1



BeitragVerfasst: Di 10.08.04 11:36 
Was willst Ddu überhaupt lesen wenn Du nichtmal die Adresse weißt? :P

Du könntest es zum Beispiel einfach als sehr langes Byte-Array casten:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type
 PMyArray = ^TMyArray;
 TMyArray = array[0..maxint] of byte;

// Spaß haben geht dann (zum Beispiel :mrgreen:) so 
for i := 0 to Groesse-1 do
 Memo1.Text := Memo1.Text + IntToHex(PMyArray(Buf)^[i], 2);


Wieder ungetestet