Cheat Engine (CE) este un scaner și depanator de memorie gratuit, cu sursă deschisă, creat de Eric Heijnen („Dark Byte”) pentru sistemul de operare Windows. Programul este utilizat în principal pentru modificarea valorilor din memorie în jocurile pe calculator, în scopul obținerii unor avantaje în joc. Unele versiuni sunt modificate și recompilate pentru a evita detectarea de către sistemele anti-cheat. Cheat Engine este similar cu alte programe de editare a memoriei, precum TSearch sau ArtMoney. Aplicația caută valorile introduse de utilizator în memoria sistemului și oferă numeroase opțiuni pentru filtrarea și sortarea rezultatelor. De asemenea, poate genera programe autonome de tip trainer care funcționează independent de Cheat Engine, frecvent distribuite pe forumuri ale comunității.
Caracteristici Cheat Engine poate vizualiza memoria unui proces pe segmente și permite modificarea valorilor din joc pentru a oferi avantaje precum viață infinită, timp nelimitat sau muniție nelimitată. Include și unele , care pot permite, de exemplu, efecte precum „wallhack” (vizualizare prin pereți) sau modificarea câmpului vizual (FOV). În configurații avansate, programul poate controla mișcarea cursorului pentru a centra anumite texturi pe ecran, fiind uneori utilizat la crearea -urilor. Cu toate acestea, utilizarea principală a Cheat Engine vizează jocurile single-player, iar folosirea sa în jocurile video multiplayer este descurajată.
Cheat Engine poate injecta cod în alte procese și, din acest motiv, este adesea identificat eronat ca program malițios de către programele antivirus. Există versiuni care reduc aceste identificări false prin eliminarea unor funcții bazate pe injectarea de cod. Identificările euristice apar deoarece aplicația utilizează tehnici similare cu cele întâlnite în rootkit-uri și troieni pentru a accesa zone sensibile ale sistemului. Versiunile mai noi sunt mai puțin susceptibile de a fi blocate de software-ul antivirus, permițând utilizarea funcțiilor avansate fără restricții majore.
Începând cu versiunea 6.1, Cheat Engine poate genera traineri din tabele de cheat. Deși acești traineri sunt, de regulă, mai voluminoși decât ar fi necesar, fiind utilizați în principal în scopuri de testare, unii au fost distribuiți ca versiuni finale de către grupuri specializate. Popularitatea acestora a dus la apariția unor site-uri dedicate trainerilor creați cu Cheat Engine. Dezvoltarea generatorului de traineri nu a mai fost actualizată semnificativ după introducerea sa în versiunea 6.1, accentul fiind pus pe utilizarea limbajului Lua pentru generarea trainerilor.
Implementări Există două ramuri principale ale proiectului: Cheat Engine bazat pe Delphi și Cheat Engine bazat pe Lazarus. Versiunea Delphi este destinată în principal sistemelor pe 32 de biți (în special Windows XP), în timp ce versiunea Lazarus este proiectată pentru sistemele pe 32 și 64 de biți moderne, precum Windows 7 și versiunile ulterioare. Cu excepția modulului kernel, Cheat Engine este scris în Object Pascal.
Programul expune o interfață către driverul său de dispozitiv prin biblioteca dbk32.dll, care gestionează încărcarea, inițializarea driverului și apelarea unor funcții alternative ale nucleului Windows. Din cauza unor probleme legate de gestionarea excepțiilor în Lazarus, versiunea Lazarus a eliminat utilizarea directă a dbk32.dll și a integrat funcțiile driverului în executabilul principal.
Modulul kernel, deși nu este necesar pentru utilizarea obișnuită, poate fi folosit pentru setarea de puncte de întrerupere hardware și pentru ocolirea unor mecanisme de interceptare API la nivel de Ring 3 și, în anumite cazuri, Ring 0. Acesta este compilat cu kitul de dezvoltare Windows Driver și este scris în C.
Cheat Engine dispune și de o arhitectură de pluginuri, destinată dezvoltatorilor care nu doresc să își distribuie codul sursă în mod public. Pluginurile sunt utilizate frecvent pentru funcții specifice unor jocuri, întrucât scopul declarat al aplicației este acela de instrument generic de modificare a memoriei.
Versiunea Lazarus poate încărca driverul său nesemnat pe 64 de biți în Windows Vista și versiunile ulterioare de Windows x64, folosind DBVM, o mașină virtuală dezvoltată de aceiași autori, care permite accesul la spațiul kernel din modul utilizator. Aceasta este utilizată, de exemplu, pentru alocarea în modul kernel și încărcarea manuală a imaginii executabile, urmată de crearea unui fir de execuție la punctul DriverEntry.
Tabele de trișaj („Cheat Tables”) Cheat Engine permite utilizatorilor să partajeze adrese de memorie și locații de cod prin intermediul așa-numitelor tabele de trișaj (Cheat Tables). Acestea sunt fișiere care stochează date precum adrese, scripturi (inclusiv scripturi Lua) și locații de cod, având de obicei extensia „.CT”. Utilizarea unui astfel de tabel implică deschiderea fișierului în Cheat Engine și activarea opțiunilor dorite.
Posibilitatea de a salva și distribui tabele de trișaj a dus la formarea unei comunități online extinse, în care acestea sunt distribuite prin forumuri dedicate, precum Fearless Revolution.
Pe lângă simplele adrese de memorie, tabelele de trișaj pot extinde funcționalitatea aplicației prin utilizarea limbajului de scripting Lua. Majoritatea funcțiilor Cheat Engine sunt scriptabile, iar utilizatorii pot crea chiar și interfețe personalizate pentru interacțiunea cu scripturile.
Controversă În 2017, Entertainment Software Association (ESA) a trimis o notificare de încălcare a drepturilor de autor către dezvoltatorul cunoscut sub numele de Dark Byte, susținând că programul permite ocolirea sistemelor anti-cheat și accesarea conținutului DLC sau a microtranzacțiilor din jocuri. Ca răspuns, dezvoltatorul a închis secțiunea publică de tabele de trișaj de pe site-ul oficial și a cerut ca acestea să fie găzduite pe platforme externe, ajungând ulterior la un acord cu ESA. O parte a comunității s-a mutat pe site-ul Fearless Revolution, unde au fost arhivate și distribuite în continuare tabelele de trișaj, în timp ce site-ul oficial Cheat Engine s-a concentrat în principal pe dezvoltarea instrumentului în sine.
Note
Legături externe
Categorie:Category:Limbaj de programare Pascal Categorie:Category:Limbaj de programare Lua Categorie:Category:Unelte de programare pentru Windows Categorie:Category:Trișare în jocurile video Categorie:Software liber Categorie:Pagini cu traduceri nerevizuite