Нашел как прочитать значение из определенной ячейки памяти (код прилагаю) , но задача усложнилась надо сделать поиск ячеек по значению (по аналогу артмани)...как организовать цикл перебора в ReadProcessMemory ?
| Код | function GetIDProcess(AName : PChar ) : Cardinal; StdCall; var lSnapHandle, lProcHandle: THandle; ProcStruct : PROCESSENTRY32; lProcessPath : Pchar; PID : Cardinal; begin Result := 0; lSnapHandle := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0); if lSnapHandle = 0 then exit; ProcStruct.dwSize := sizeof( PROCESSENTRY32 ); if Process32First(lSnapHandle, ProcStruct) then begin try repeat lProcessPath := ProcStruct.szExeFile; if uppercase(lProcessPath) = uppercase(AName) then begin PID := ProcStruct.th32ProcessID; Result := PID; Break; end; until not Process32Next(lSnapHandle, ProcStruct); finally CloseHandle(lSnapHandle); end; end; end;
procedure TForm1.Timer1Timer(Sender: TObject); var ProcessID,hProcess,HandleWindow : cardinal; ipBase: Pointer; IpBuf : integer; numberRead: DWORD; N1:integer; begin ProcessID:= GetIDProcess('RF_Online.bin'); hProcess := OpenProcess(PROCESS_VM_read or PROCESS_VM_OPERATION, False, ProcessID); ipBase:=ptr($2C32BED8); ReadProcessMemory(hProcess, ipBase, Addr(ipbuf), 4, numberRead); form1.Caption:=floatToStr(ipbuf); N1:=ipbuf; CloseHandle(hProcess); end;[quote]
[/quote]
|
|