Jak w c++ odczytać dane z pamięci innego programu podając adres interesującej mnie danej..?
wiem jak zrobić to w delphi:
chodzi o cos takiego, pisze sie 2 funkcje, 1 aby mozna bylo odczytac liczby(integer) i druga aby mozna było odczytać tekst (string).. w delphi wyglądają one tak:
odczytywanie tekstu:
function MemReadString(Address: Integer): String;
var
NB : LongWord;
Temp : ARRAY [1..255] OF Byte;
I : Byte;
IDProcess, proc_ID : Cardinal;
begin
GetWindowThreadProcessID(FindWindow('Nazwa programu', nil), @proc_ID);
IDProcess := OpenProcess(PROCESS_ALL_ACCESS, false, proc_ID);
Result := '';
ReadProcessMemory(IDProcess, Ptr(Address), @Temp[1], 255, NB);
for I := 1 to 255 do
begin
if ((Temp[I] = 0) or (Temp[I] = $0F)) then
Break;
Result := Result + Chr(Temp[I]);
end;
end;
odczytywanie liczb:
function ReadMemInteger(Address: Cardinal): Cardinal; //Read adress:value
var
ProcId: Cardinal;
tProc: THandle;
NBR: Cardinal;
value:integer;
begin
GetWindowThreadProcessId(FindWindow('Nazwa programu', Nil), @ProcId);
tProc:= OpenProcess(PROCESS_ALL_ACCESS, False, ProcId);
ReadProcessMemory(tProc, Ptr(Address), @value, 4, NBR);
CloseHandle(tProc);
Result:=value;
end;
Następnie przypisuje sie adres z pamięci do zmiennej:
Zmienna_X = $66EA66;
i aby uzyskac ta zmienna np w labelu uzywałem kodu:
label1.Caption:=inttostr(ReadMeminteger(Zmienna_X));
z c++ jestem troche zielony, dlatego prosze, zeby ktos mi to przełozyl z delphi na c++ lub tez napisał cos innego, ale dzialajacego tak samo
yol