[C++/Delphi] Dostęp do pamięci

Witam!

Chciałbym się dowiedzieć w jaki sposób są tworzone trainery / cheaty do gier. Programem Cheat Engine mogę bez problemu dostać się do pamięci, i w taki sposób mógłbym niby pobrać adres pamięci, ale… adresy są zmienne. Jak mogę się do nich odwołać w kodzie C++ lub Delphi? Szukałem cheatów / trainerów z sourcem, ale znalazłem właściwie tylko poradnik jak zrobić bota do Tibii… jest tam odwołanie do pamięci, ale tam są stałe wartości, chociaż jak próbowałem przez Cheat Engine i tak były zmienne.

Więc:

  1. Jak się odwołać do pamięci programu / jak pobrać poprawny adres

  2. Jaki kod w C++ / Delphi za to odpowiada? ( a - pobranie wartości, b - zmiana wartości )

Z góry dzięki :wink:

Aby dostać się do pamięci obcego programu musisz włączyć tryb jego debugowania nie jest to prosta spawa i jeżeli nie znasz się dobrze na systemach operacyjnych (przynajmniej na tym w którym chcesz zrobić cheata) i na programowaniu, to radze już sobie odpuścić.

C/C++ - zapis odczyt zmiennej.

void *wyliczony_adres_zmiennej= … ;

int &x=*(int*)wyliczony_adres_zmiennej;

x=3; // <= wpisujesz

Delphi - zapis odczyt zmiennej.

var wyliczony_adres_zmiennej:Pointer;

wyliczony_adres_zmiennej:= … ?

var x:PInteger;

x:=wyliczony_adres_zmiennej;

x^:=3; // <= wpisujesz

Hmmm, ale jak wyliczyć ten adres? Bo przy każdym uruchomieniu gry / aplikacji adres jest inny.

Oczywiście że inny bo system ładuje program w innym miejscu, bo program dynamicznie przydziela pamięć.

Powtarzam:

jeżeli nie znasz się dobrze na systemach operacyjnych i na programowaniu, to radze już sobie odpuścić

Heh, odpuścić… gdybym sobie odpuszczał wszystko za każdym razem, myślę że nigdy i niczego bym się nie nauczył :stuck_out_tongue_winking_eye:

Jak by ci to wytłumaczyć, chcesz podjąć się budowy statku kosmicznego nie znając matematyki ani fizyki.

Jedyna rada - odpuść.

Najpierw podstawy programowania, potem rzeczy bardziej zaawansowane, później rzeczy mocno zaawansowane, a potem dopiero budowa cheatera.