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
0
Witam
- Napisz kawalek kodu co i jak robisz.
- Chcesz czytać z pamięci pod offsecie pliku? Musisz sobie napisać funkcję konwertującą Offset na VA (Virtual Address);
- 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;
- 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...