Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Delphi] Cheat problem z podstawieniem losowej liczby


Rekomendowane odpowiedzi

Opublikowano

Witam

 

Nie wiem jak z pola edit1 odczytać zawartość do cheata oczywiście liczba w edit1 się zmienia co jedną sekundę

 

Oto kod

procedure TForm1.Button1Click(Sender: TObject);
var
WIN : integer;
PID : integer;
TID : integer;
HND : integer;
WRT : cardinal;
BUF : pchar;
const
// nalezy dopasowac zmienne stale do swoich potrzeb
Caption = 'Live For Speed';
Addr0 = $00623BBB;
Poke0 = 100;

Bytes = 1;
begin
 // wyszukujemy okna o zadanym tytule w belce tytulowej, w naszym przypadku Caption := 'Saper'
 // jezeli znajdziemy okno o takiej nazwie, to otrzymamy uchwyt do tego okna, ktory przechowujemy w zmiennej WIN
 WIN := FindWindow(nil,Caption);
 // jezeli uchwyt jest zerowy to oznacza, ze nie udalo znalezc sie okna o podanej nazwie, wyrzucamy informacje o tym i wyskakujemy z procedury
 if WIN = 0 then
 begin
 MessageBox(0, 'Gra nie jest uruchomiona', 'Error', MB_OK);
 Abort;
 end;
 // teraz pobieramy ID procesu (PID), przy okazji otrzymujemy rowniez ID glownego watku (TID), ale z niego nie bedziemy korzystac
 TID := GetWindowThreadProcessId(WIN,@PID);
 // otwieramy proces z odpowiednimi uprawnieniami (zawsze wybieraj tylko te uprawnienia, ktore sa konieczne do wykonania danej akcji)
 HND := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_WRITE,False,PID);
 // alokujemy bufor o dlugosci 1, w tym buforze bedziemy trzymac wartosc, ktora chcemy zapisac do innego procesu
 // jest wiele sposobow i funkcji alokujacych pamiec, ja przedstawilem ta, pomimo, ze jest juz rzadko uzywana
 GetMem(BUF, Bytes);
 // do zaalokowanej pamieci wpisujemy teraz bajt, ktory ma byc zapisany w innym procesie
 BUF^ := Chr(Addr0);
 // teraz zapisujemy go pod podany adres w procesie, ktory otworzylismy
 WriteProcessMemory(HND,ptr(Addr0),BUF,Bytes,WRT);

 // tutaj powtarzamy ta sama czynnosc
 //BUF^ := Chr(Poke1);
 //WriteProcessMemory(HND,ptr(Addr1),BUF,Bytes,WRT);
 // ostatecznie zwalniamy pamiec i zamykamy uchwyt do procesu
 FreeMem(BUF);
 closehandle(HND);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
i:byte;
begin
for i:= 1 to 6 do
edit1.text:=(inttostr(random(250)));
end;

 

Tam gdzie jest zmienna stała Poke0 = 100; chciałem to zrobić tak Poke0 := edit1.text; ale nie wiem jak bo jak daje to gdzieś indziej nie w stałych nie działa kombinuje i nic z tego nie wychodzi jak mam to zrobić proszę o szybką odpowiedz.

 

Pozdrawiam serdecznie.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...