Buonasera, ho trascorso 3 mesi a fare reverse enginering di cheats senza source code presi da posti a caso su google, ma si rivelano essere malware fatti da pagliacci che si spacciavano per developers (malware fatti anche coi piedi). Questa gente non mi ha aiutato a capire come funziona il lato oscuro del gaming. Sono qui in cerca di supporto con tre domande:
1) come posso creare un cheat che bypassi il sistema di sicurezza di Steam, easy anti cheat?
2) come mai l'inserimento di una funzione illegale (cheat) può comportare il triggerarsi di bug nel gameplay?
3) Esiste un linguaggio di programmazione specifico per i cheats, oppure bisogna svilupparli nello stesso linguaggio di programmazione del gioco che dovrebbero alterare?
Se mi potete chiarire bene questi dubbi, fatemi sapere per favore. Qualche cheat developer.
Cominciando dalla domanda più semplice:
3) Specifico no, puoi scriverli in ciò che ti pare, però siccome nel tuo caso stai parlando di EAC (Easy Anti Cheat) il che è un anti-cheat noto per essere un driver, se hai intenzione di averci a che fare scordati di usare qualsiasi linguaggio interpretato, EAC è un driver che gira nel kernel quindi se vuoi interagire con l'anti-cheat ti toccherà usare linguaggi nativi come C o C++ e dovrai anche saper scrivere driver.
In più, siccome stai parlando di EAC avrai anche notato che gli sviluppatori di cheat specificano anche per quale versione di windows i loro cheat funzionano (es:
windows 10 20h2
,
windows 10 21h1
,
ecc
), il motivo risiede nel fatto che per bypassare i controlli di EAC i loro cheat usano strutture non documentate del kernel, che sono molto spesso soggette a cambiamenti nel rilascio delle varie build.
2) Questa domanda è un pò banale, i programmi hanno i loro bug e questa regola vale anche per i cheat, uno dei fattore maggiori sta nel modificare una funzione su cui sai ben poco, per esempio: supponiamo di aver trovato in un gioco la funzione che decrementa le nostre monete quando compriamo un oggetto, potremmo semplicemente riempire con dei
nop
l'istruzione che aggiorna il valore delle nostre monete, ma sei sicuro che quella funzione agisca solo ed esclusivamente sulle monete e non su altre variabili critiche del gioco? oppure che quell'istruzione sia l'unica a modificare il valore delle monete? ecco, meno sai su una funzione che andrai a modificare più è probabile che scaturisca qualche bug.
1) Per "il sistema di sicurezza di steam" presumo tu ti riferisca al VAC (Valve Anti Cheat), innanzi tutto devi sapere come funziona l'anti-cheat, nel caso del VAC le cose si semplificano siccome ci sono state molte persone che lo hanno già reversato e documentato in più gira anche in user mode, imposta degli hook su alcune funzioni del gioco per assicurarsi che vengano chiamate in contesti leggittimi, e usa anche alcune api per evitare che qualcuno mappi all'interno del processo moduli non consentini, documentati nel dettaglio su come agisce e saprai automaticamente come evitare di farti scoprire.
EAC è diverso, certamente ho visto gente documentarne il funzionamento, ma è strettamente inerente al kernel di windows su cui so ancora ben poco, perciò eviterò di parlarene.