Einzelnen Beitrag anzeigen

Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#4

Re: ReadProcessmemory-Schleife funktioniert nicht

  Alt 7. Feb 2005, 15:30
Zitat von The-Fox:
Ich wandle zunächst mal in STring um, weil ich dieses $ brauche.
Nein, brauchst du nicht!
Zitat von The-Fox:
Wenn ich einfach so einen Integer übergebe, dann bringt er ja einen Fehler bei z.B. FF.
Dann machst du was falsch ...

So, ich hab nen bissl gecoded:
Delphi-Quellcode:
function ReadMem(c_addr : Cardinal; h_phandle : THandle) : integer;
var
  c_bytesread : Cardinal;
begin
  if not(ReadProcessMemory(h_phandle, Pointer(c_addr), @Result, SizeOf(Result), c_bytesread) and (c_bytesread = SizeOf(Result)))then
    ShowMessage('ReadProcessMemory Fehler bei $' + IntToHex(c_addr, 8));
end;

procedure ka(c_start, c_end : Cardinal; str_wname : string);
var
  h_whandle : THandle;
  c_PID : Cardinal;
  h_phandle : THandle;
  c_raddr : Cardinal;
begin
  h_whandle := FindWindow(nil, PChar(str_wname));
  if(h_whandle = 0)then
  begin
    ShowMessage('FindWindow Fehler, Fenstername: ' + str_wname);
    Exit;
  end;

  GetWindowThreadProcessId(h_whandle, @c_PID);

  h_phandle := OpenProcess(PROCESS_ALL_ACCESS, false, c_PID);
  if(h_phandle = 0)then
  begin
    ShowMessage('OpenProcess Fehler, PID: ' + IntToStr(c_PID));
    Exit;
  end;

  c_raddr := c_start;
  while(c_raddr <= c_end)do
  begin
    ShowMessage('$' + IntToHex(ReadMem(c_raddr, h_phandle), 8));
    Inc(c_raddr, SizeOf(integer));
  end;

  CloseHandle(h_phandle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ka($00010000, $07FFFFFF, 'MineSweeper');
end;
Das sollte funktionieren, allerdings ist zu beachten, dass die wenigsten Prozesse den gesamten adressraum von $00010000 - $07FFFFFF haben, genau gesagt, weis ich nicht besonders viel darüber.
(Informier dich dazu mal über VirtualQueryEx)

Die Frage die sich mir stellt, ist, warum machst du das? Hinterher kommt ja eh nur Blau raus ... außerdem ist das relativ sinnlos, wenn du nicht weist, nach was du wo suchst ... naja ... aber das is ja deine sache ...

Vielleicht hilft dir ja ein Spieletrainer weiter ... such mal nach "Generic Game Trainer" hier im Forum, ich hab dessen Quellcode schon mind. 1x gepostet ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat