![]() |
gesamten Speicher eines fremden Prozesses fix durchsuchen!
Suche in einem fremden Prozess (ca. 400MB Speicher) nach einem Integer-Wert.
Besser gesagt beim 1. Mal durchsuchen soll eine Liste mit den Treffern erstellt werden und beim erneuten durchsuchen in diesen Ergebnissen soll diese auf 1 Möglichkeit reduziert werden. Gibt es dafür eine elegantere (oder schnellere) Variante als alles mit der folgenden Funktion abzugrasen?:
Delphi-Quellcode:
function LeseSpeicher(adresse,size:integer):integer;
var p : pointer; puffer : array[0..1] of DWord; BytesRead: DWord; ProcessId,ThreadId,HandleWindow : integer; begin p := ptr(adresse); //Adresse umwandeln: ThreadId := GetWindowThreadProcessId(ProgrammHandle,@ProcessId); //ProgrammHandle = globale Variable HandleWindow := OpenProcess(PROCESS_ALL_ACCESS,False,ProcessId); ReadProcessMemory( HandleWindow, p , @puffer[0], size, BytesRead ); closehandle(HandleWindow);//close LeseSpeicher := Puffer[0]; end;//von LeseSpeicher |
Re: gesamten Speicher eines fremden Prozesses fix durchsuche
Zum einen könntest du, um es schneller zu machen, nicht andauernd unnötige prozeduren /funktionen aufrufen. (dh zB Handle nicht immer neu holen)
Weiterhin brauchst du nur bestimmte Sections durchlaufen. Und nicht jedesmal Readprocess für einen Integer aufrufen. |
Re: gesamten Speicher eines fremden Prozesses fix durchsuche
Zitat:
Zitat:
|
Re: gesamten Speicher eines fremden Prozesses fix durchsuche
VirtualQueryEx hilft dir dabei
|
Re: gesamten Speicher eines fremden Prozesses fix durchsuche
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz