Einzelnen Beitrag anzeigen

Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Suche nach bestimmten Integern im Speicher einer Anwendu

  Alt 10. Jan 2009, 11:11
der komplette Programmspeicher umfasst direkt nach dem Start 400MB. Also ne ganze Menge Asche. Bisher nutz ich folgenden Code um im Speicher rumzulesen

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
Gibt es da noch schnellere Variante.
Der andere Knackpunkt ist, dass alle Variablen 0 sind beim Start.
Die Variablen können einen Wert von 1 bis 7 annehmen.
Ich könnte den User bitten einen Key zu drücken der die erste Variable auf 7 legt, dann die Zweite auf 6, die Dritte auf 5 usw. aber nach Möglichkeit möchte ich das umgehen.

Das Programm wurde in C++ geschrieben, welcher Compiler weiß ich jedoch nicht.
Globale Variablen kann ich mir auch nicht vorstellen, da es ein großes Programm ist und es ja so leicht schlechten Code gibt.
  Mit Zitat antworten Zitat