Trainer , trainer ( eng. trainer ) - un program conceput pentru a schimba parametrii jocului (de exemplu, „puncte de viață” pentru a face jucătorul „nemuritor”), de obicei lucrează direct cu RAM -ul computerului . Cel mai util pentru jocurile care nu oferă coduri de cheat.
În anii 1980 și 1990, antrenorii erau de obicei încorporați de hackeri direct în codul jocului . La începutul jocului, antrenorul a fost lansat pentru prima dată cu caseta de dialog „Vrei să folosești trucuri ?” Apoi, codul jocului a fost executat. Numele trainerului a folosit semne de adunare (+), câte unul pentru fiecare opțiune a trainerului. De exemplu, „Grupul de hackeri prezintă: Game+++” (3 opțiuni, de exemplu: nemurire, muniție infinită și teleportare).
Antrenorii moderni rulează de obicei ca un program independent (înainte de joc) și folosesc un singur semn de adăugare cu un număr de opțiuni după el în numele lor, cum ar fi Doom 3 Trainer +15 . În plus, antrenorii moderni lucrează cu memoria RAM a jocului și nu cu fișierul executabil, deoarece efectuarea de modificări la fișierul executabil este complicată de sistemele de protecție împotriva copierii.
Pentru a crea antrenori, se folosesc dumperele de memorie, depanatoarele și dezasamblatoarele. Cel mai simplu mod de a crea un antrenor este să cauți în memorie valorile care se potrivesc cu parametrul de joc dorit. Apoi schimbați-l și căutați din nou în lista rezultată. După mai multe iterații , cel mai probabil va apărea o mică listă de adrese , valorile pentru care poți încerca să le schimbi. Există multe utilități ( ArtMoney , Cheat'o'Matic ... ) care automatizează procesul de găsire și modificare a valorilor.
În unele cazuri, valoarea dorită a jocului își schimbă constant poziția în memorie. În acest caz, puteți încerca să găsiți un pointer către acesta (eventual cu o ușoară compensare dacă valoarea jocului este într-o structură de date). Dacă pointerul își schimbă și poziția în memorie, atunci puteți căuta un pointer către acest pointer etc. De asemenea, puteți pune puncte de întrerupere la accesarea adresei valorii jocului și analiza codul care le citește sau le modifică.
Dacă valoarea jocului este un câmp al unei clase, atunci puteți căuta instanțe ale acestei clase arătând către tabelul de metode virtuale. Găsirea tabelelor de metode virtuale nu este dificilă datorită structurii lor specifice. În plus, ele conțin adesea un pointer către numele clasei. Când se caută instanțe ale unei clase, este de dorit să se determine dacă aceasta a fost ștearsă de steaguri ale managerului de memorie (care depinde de limbajul de programare în care este scris jocul).
Formatorii sunt creați în următoarele moduri:
Există 3 tipuri de jocuri pentru care antrenorii pot fi creați în moduri diferite:
Dacă jocul are un clasament oficial sau jocul este online (și nu toate calculele sunt făcute pe partea de server), atunci existența antrenorilor distruge spiritul jocului. În acest caz, trebuie să construiți un sistem de protecție împotriva antrenorilor, deoarece sistemele de protecție împotriva copierii nu fac față acestei sarcini. Pentru a face acest lucru, cei mai importanți parametri ai jocului sunt criptați (și decriptați pentru puțin timp înainte de utilizare) sau se creează o copie criptată (cu care parametrul original este constant comparat). Pentru a ocoli astfel de protecții, nu se poate face fără dezasamblarea programului.
Formatorii pot fi recunoscuți de software-ul antivirus ca un virus/troian sau un program potențial periculos. Acest lucru se datorează faptului că antrenorii sunt de obicei programe care interceptează apăsările de taste și modifică conținutul memoriei altor programe (jocuri) și, în funcție de setările analizorului euristic al unui anumit antivirus, pot fi blocate sau șterse. De regulă, acestea sunt false pozitive, deși există și excepții [1] .