Posts: 1
Threads: 1
Joined: Mar 2018
Reputation:
0
Cześć wszystkim, jestem nowy; Zaczynam ostatnio uczyć się podstaw hackowania gier. Mam małe pytanie dotyczące adresów pamięci: Załóżmy, że znajduję adres pamięci o wartości takiej jak X, Y, Z Coords i są one przechowywane dynamicznie, mogę dinamically znaleźć ich adres poprzez znalezienie wskaźników. Ale co powiesz, jeśli nie znajdę żadnego wskaźnika? Pytanie brzmi: Obecność wskaźników jest związana z kodem programisty lub jest generowana automatycznie? np .: Kod: int a = 10; int * pointer = & a; Mogę znaleźć adres "a" pamięci za pośrednictwem adresu wskaźnika w prawo? Ale na wypadek, gdyby wskaźnik nie istniał? UWAGA : Nigdy wcześniej nie próbowałem hackowania gier, więc nie płoncie mnie w tej głupiej wątpliwości. Proszę
Posts: 1
Threads: 0
Joined: Apr 2018
Reputation:
0
Wskaźniki wskazują przestrzeń w pamięci, która została przydzielona dynamicznie w czasie wykonywania. Jeśli nie możesz znaleźć statycznego wskaźnika, jesteś zbyt głęboki, cofnij się o krok (umieść na nim punkt przerwania, aby zobaczyć, skąd się go nazywa). Prawie zawsze będzie stałe odniesienie do wybranego obiektu. W twoim przykładzie nie powinno być problemu ze znalezieniem wskaźnika (zakładając, że jest to globalne, a nie wbudowane), ponieważ kompilator skompiluje ten shiz up i otrzymasz statyczny wskaźnik do "a" w stosunku do bazy modułu. Teraz, aby dostać się od wskaźnika do samego obiektu, musisz wyłuskać wskaźnik tak: Kod: int a = 10; int * pointerToA = & a; int valueOfA = * pointerToA; Jeśli chcesz debugować "valueOfA", zobaczysz, że jest 10. W wyniku dereferencji podążyłeś za wskaźnikiem i uzyskałeś wartość samego "a".
Posts: 1
Threads: 0
Joined: Apr 2018
Reputation:
0
Zacytować: Originally Posted by shakai Jeśli nie możesz znaleźć statycznego wskaźnika, jesteś zbyt głęboki, cofnij się o krok Nie sądzę, żeby to była całkowita prawda, można przydzielić pamięć Kod: int * pNumber = reinterpret_cast (malloc (5 * sizeof (int))); i nie mają żadnych statycznych wskaźników do niego
Posts: 2
Threads: 0
Joined: Mar 2018
Reputation:
0
Zacytować: Napisał IChooseYou Nie sądzę, żeby to była całkowita prawda, można przydzielić pamięć Kod: int * pNumber = reinterpret_cast (malloc (5 * sizeof (int))); i nie mają żadnych statycznych wskaźników do niego Jeśli podany przez Ciebie przykład ma charakter globalny, możesz z pewnością znaleźć adres samego wskaźnika, który możesz następnie znaleźć, aby znaleźć rzeczywisty obiekt.
Posts: 1
Threads: 0
Joined: Apr 2018
Reputation:
0
Zacytować: Originally Posted by shakai Jeśli podany przez Ciebie przykład ma charakter globalny, możesz z pewnością znaleźć adres samego wskaźnika, który możesz następnie znaleźć, aby znaleźć rzeczywisty obiekt. Myślę, że możesz go użyć tylko po wstrzyknięciu kodu ...