Odczyt z pamieci procesu

0

Musze odczytac z pamieci aplikacji dane pod wybranym offsetem. Uchyt procesu musze pobrac na podst. nazwy modulu np. 'notepad.exe' nie na podst. nazwy okna!
Mam problem z napisaniem dzialajacego kodu, gdyz zwraca mi jakies "smieci" a nie to co jest pod danym adresem w pamieci aplikacji. Jezeli ktos by mogl przedstawic kod to bym byl wdzieczny z gory dziekuje.

0

Witam

  1. Napisz kawalek kodu co i jak robisz.
  2. Chcesz czytać z pamięci pod offsecie pliku? Musisz sobie napisać funkcję konwertującą Offset na VA (Virtual Address);
  3. ID Procesu możesz zdobyć np. tak:
//Zmienne
var
  hSnapshot: THandle;
  ProcInfo: tProcessEntry32;
  Next:Boolean;
  ProcessID: Cardinal; 
//Kod
  //Do uses trzeba dodac TLHelp32
  ProcessID:= 0;
  hSnapshot:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if hSnapshot <> 0 then
  begin
    ProcInfo.dwSize:=SizeOf(ProcInfo);
    Next:= Process32First(hSnapshot, ProcInfo);
    while Next do
    begin
      if UpperCase(ExtractFileName(ProcInfo.szExeFile)) = 'NOTEPAD.EXE' then
      begin
        ProcessID:= ProcInfo.th32ProcessID;
        break;
      end;
      Next:=  Process32Next(hSnapshot, ProcInfo);
    end;
    CloseHandle(hSnapshot);
  end;
  if ProcessID > 0 then
  begin
     //Znaleziono proces
  end; 
  1. Do odczytu z pamięci procesu możesz użyć: OpenProcess, ReadProcessMemory.

Pozdrawiam</delphi>

0

Wiem ze do odczytu moge uzyc ReadProcessMemory ale chodzi o to ze nie dziala i czeklame na kodzik z wykorzystaniem tej funkcji a nie napisanie ze moge jej uzyc co danow już wiem...

1 użytkowników online, w tym zalogowanych: 0, gości: 1