Перейти к содержанию

Чтение значения по адресу


Рекомендуемые сообщения

procedure TForm1.Button4Click(Sender: TObject);

var

HP:THandle;

wread:Cardinal;

bb:LongInt;

begin

HP := OpenProcess(PROCESS_VM_READ,False,StrToInt(LabeledEdit1.Text) {PID});

LabeledEdit3.Text := IntToStr(HP);{Хэндл}

ReadProcessMemory(HP,Ptr($21292BD8){найденный адрес},@bb,4,wread);

Edit2.Text := IntToStr(bb);

end;

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

 GameID: Cardinal;Const No_Reload = $00491E4F;implementation{$R *.dfm}function GetProcess(ProcessName: string): Cardinal;var hSnap: THandle; prEntry: PROCESSENTRY32;begin Result := 0; hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); prEntry.dwSize := SizeOf(prEntry); If Process32First(hSnap,prEntry) then begin  While Process32Next(hSnap,prEntry) do  Begin   If prEntry.szExeFile = ProcessName then      Result := Cardinal(prEntry.th32ProcessID);  End; end; CloseHandle(hSnap);end;procedure WriteSig(GameID: Cardinal; Address: Integer; Value: array of Byte);var pHandle: LongInt; NumWritten: SIZE_T;begin pHandle := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION,False,GameID); WriteProcessMemory(pHandle,Ptr(Address),@Value,SizeOf(Value),NumWritten); CloseHandle(pHandle);end;procedure TForm1.SpeedButton1Click(Sender: TObject);const No_ReloadOn: array[0..2] of Byte = ($90, $90, $90);//Байты для записи в процесс игры No_ReloadOFF: array[0..2] of Byte = ($8B, $47, $24);//Байты для записи в процесс игрыbegin WriteSig(GameID,No_Reload,No_ReloadOn);//Пример записи байт в памятьEnd;procedure TForm1.SpeedButton2Click(Sender: TObject);begin GameID := GetProcess('PlantsVsZombies.exe');//Получаем ID процесса по названию процесса Label1.Caption := IntTostr(GameID);end; 

Вот исходник трейнер

Нужно прочитать значение с этого адреса 00491E4F

Мне кто нибудь поможет ? 

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...
function readInteger(GHandle: THandle; Address: Pointer): Integer;var  read: SIZE_T;begin  ReadProcessMemory(GHandle, Pointer(Address), @Result, SizeOf(Result), read);end;
procedure onTest;var  value: integer;  begin  value := readInteger(Gamehandle, Pointer($FFFFFFFF));  ShowMessage(inttostr(value)); end;
Изменено пользователем ∟DarkPan
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.