Cheat Engine

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Cheat Engine je koristan program za pronalaženje gde su važne vrednosti sačuvane u memoriji pokrenute igre i za njihovu promenu. Kada ga preuzmete i pokrenete, bićete upoznati sa tutorialom o tome kako koristiti alat. Ako želite da naučite kako koristiti alat, veoma je preporučljivo da ga završite.

Šta tražite?

Ovaj alat je veoma koristan za pronalaženje gde je neka vrednost (obično broj) sačuvana u memoriji programa. Obično se brojevi čuvaju u 4 bajta formi, ali ih možete pronaći i u formatima double ili float, ili možda želite tražiti nešto različito od broja. Iz tog razloga morate biti sigurni da izaberete šta želite tražiti:

Takođe možete naznačiti različite vrste pretraga:

Takođe možete označiti polje da zaustavite igru dok skenirate memoriju:

Prečice

U Edit --> Settings --> Hotkeys možete postaviti različite prečice za različite svrhe kao što je zaustavljanje igre (što je korisno ako u nekom trenutku želite skenirati memoriju). Druge opcije su dostupne:

Modifikovanje vrednosti

Kada pronađete gde se nalazi vrednost koju tražite (više o tome u sledećim koracima) možete je modifikovati dvostrukim klikom na nju, zatim dvostrukim klikom na njenu vrednost:

I na kraju označite polje da bi modifikacija bila izvršena u memoriji:

Promena u memoriji će biti odmah primenjena (imajte na umu da dok igra ne koristi ovu vrednost ponovo, vrednost neće biti ažurirana u igri).

Pretraga vrednosti

Dakle, pretpostavićemo da postoji važna vrednost (kao što je život vašeg korisnika) koju želite poboljšati, i tražite tu vrednost u memoriji)

Kroz poznatu promenu

Pretpostavljajući da tražite vrednost 100, izvršite skeniranje tražeći tu vrednost i pronađete puno podudaranja:

Zatim, uradite nešto da se vrednost promeni, i zaustavite igru i izvršite sledeće skeniranje:

Cheat Engine će tražiti vrednosti koje su prešle iz 100 u novu vrednost. Čestitamo, pronašli ste adresu vrednosti koju ste tražili, sada je možete modifikovati. Ako i dalje imate više vrednosti, uradite nešto da ponovo modifikujete tu vrednost, i izvršite još jedno "sledeće skeniranje" da biste filtrirali adrese.

Nepoznata vrednost, poznata promena

U scenariju kada ne znate vrednost ali znate kako je promeniti (čak i vrednost promene) možete potražiti svoj broj.

Dakle, počnite sa izvođenjem skeniranja tipa "Nepoznata početna vrednost":

Zatim, promenite vrednost, naznačite kako se vrednost promenila (u mom slučaju smanjena je za 1) i izvršite sledeće skeniranje:

Biće vam prikazane sve vrednosti koje su modifikovane na izabrani način:

Kada pronađete svoju vrednost, možete je modifikovati.

Imajte na umu da postoji mnogo mogućih promena i možete raditi ove korake koliko god želite da biste filtrirali rezultate:

Nasumična adresa memorije - Pronalaženje koda

Do sada smo naučili kako pronaći adresu koja čuva vrednost, ali je veoma verovatno da je u različitim izvršenjima igre ta adresa na različitim mestima u memoriji. Zato saznajmo kako uvek pronaći tu adresu.

Koristeći neke od pomenutih trikova, pronađite adresu gde vaša trenutna igra čuva važnu vrednost. Zatim (zaustavljajući igru ako želite) uradite desni klik na pronađenu adresu i izaberite "Saznajte šta pristupa ovoj adresi" ili "Saznajte ko piše na ovoj adresi":

Prva opcija je korisna da znate koje delovi koda koriste ovu adresu (što je korisno za više stvari kao što je znati gde možete modifikovati kod igre). Druga opcija je konkretnija, i biće korisnija u ovom slučaju jer nas zanima odakle se piše ova vrednost.

Kada izaberete jednu od tih opcija, debuger će biti povezan sa programom i pojaviće se nova prazna prozor. Sada, igrajte igru i modifikujte tu vrednost (bez ponovnog pokretanja igre). Prozor bi trebalo da bude popunjen sa adresama koje modifikuju vrednost:

Sada kada ste pronašli adresu koja modifikuje vrednost, možete modifikovati kod po vašem nahođenju (Cheat Engine vam omogućava da ga brzo modifikujete za NOPs):

Sada možete modifikovati tako da kod ne utiče na vaš broj, ili će uvek pozitivno uticati.

Nasumična adresa memorije - Pronalaženje pokazivača

Prateći prethodne korake, pronađite gde se nalazi vrednost koja vas zanima. Zatim, koristeći "Saznajte šta piše na ovoj adresi" saznajte koja adresa upisuje ovu vrednost i dvaput kliknite na nju da biste dobili prikaz rastavljanja:

Zatim, izvršite novu pretragu tražeći heksadecimalnu vrednost između "[]" (vrednost $edx u ovom slučaju):

(Ako se pojavi više njih, obično vam je potrebna ona sa najmanjom adresom) Sada smo pronašli pokazivač koji će menjati vrednost koja nas zanima.

Kliknite na "Dodaj adresu ručno":

Sada kliknite na polje za potvrdu "Pokazivač" i dodajte pronađenu adresu u polje za unos teksta (u ovom scenariju, pronađena adresa na prethodnoj slici bila je "Tutorial-i386.exe"+2426B0):

(Pogledajte kako je prva "Adresa" automatski popunjena iz adrese pokazivača koju unosite)

Kliknite na OK i biće kreiran novi pokazivač:

Sada, svaki put kada promenite tu vrednost, menjate važnu vrednost čak i ako je adresa memorije gde se vrednost nalazi drugačija.

Umetanje koda

Umetanje koda je tehnika gde ubacujete deo koda u ciljni proces, a zatim preusmeravate izvršenje koda da prolazi kroz vaš sopstveno napisani kod (kao što vam daje poene umesto oduzimanja).

Dakle, zamislite da ste pronašli adresu koja oduzima 1 životu vašeg igrača:

Kliknite na Prikaz rastavljača da biste dobili rastavljeni kod. Zatim, pritisnite CTRL+a da biste pozvali prozor za automatsko sastavljanje i izaberite Šablon --> Umetanje koda

Popunite adresu instrukcije koju želite da izmenite (ovo je obično automatski popunjeno):

Biće generisan šablon:

Zatim, ubacite svoj novi montažni kod u odeljak "newmem" i uklonite originalni kod iz odeljka "originalcode" ako ne želite da se izvrši**.** U ovom primeru, ubačeni kod će dodati 2 poena umesto oduzimanja 1:

Kliknite na izvrši i tako dalje i vaš kod treba da bude umetnut u program menjajući ponašanje funkcionalnosti!

Reference

  • Cheat Engine tutorijal, završite ga da biste naučili kako da počnete sa Cheat Engine-om

Last updated