Nom de domaine

Mentre i videogiochi sono sempre più sofisticati, una battaglia spietata viene giocata nell’ombra: quella degli sviluppatori contro gli imbroglioni. Ed è grazie a una recente e particolarmente dettagliata analisi di ssnoche saremo in grado di immergerci nelle viscere dei moderni sistemi anti-triche.

Cominciamo con la base di una di queste protezioni: Arxan. Questo sistema di offuscamento funge da prima linea di difesa in molti giochi di Call of Duty da Black Ops 3. Il suo ruolo è quello di rendere la vita impossibile per gli ingegneri del retro-design e gli sviluppatori di software imbroglioni.

Si noti che l’arxan non è contento per sfidare il codice: monitora anche l’ambiente di Windows, solo per identificare ad esempio se il sistema è in Test di moda (Una funzione che consente di caricare driver univoci). Questa verifica prevede in particolare NtQuerySystemInformation Per vedere se la firma dei piloti è forzata o meno. Tutto ciò per dire che, se Windows viene avviato in modalità Test, ti esponi a una bandiera dei server di gioco.

Per questo, Arxan utilizza diverse tecniche di protezione:

  • Crittografia dinamica : L’eseguibile del gioco è crittografato e decifrato al volo durante la sua esecuzione
  • Controlli di integrità : Controlli continui per rilevare qualsiasi modifica del codice
  • Offuscamento dei salti : Le funzioni sono frammentate e disperse con le istruzioni di salto
  • Protezione dell’ingresso : Il punto di ingresso del programma è mascherato e protetto
  • Pointers Critty : Gli indirizzi di memoria critica sono crittografati dinamicamente

Coldwar

Ma la vera innovazione risiede nel sistema battezzato Tac (Treyarch Anti-Cheat). Questa soluzione si adatta direttamente all’esecutabile del gioco e implementa tecniche di rilevamento in particolare intelligenti.

TAC Tracks tenta di analizzare il gioco monitorando il Ganci API Con il riconoscimento di firme note, debugger attraverso vari meccanismi come Threadhidefromdebugger ma anche tutto ciò che è sovrapposizioni che potrebbe essere usato per mostrare menu cheat o Console di debug non autorizzato.

Inoltre, ha alcuni trucchi per eliminare i ganci troppo “grossolani”: TAC può chiamare volontariamente NtSetInformationThread Con impostazioni false e verificare che la funzione restituisca l’errore previsto. Se mai risponde OK quando non dovrebbe essere, è un brutto cattivo gancio!

Ora, per contrastare l’iniezione di codice dannoso, TAC utilizza diverse strategie che sono tutte dettagliate qui nella fonte. È abbastanza tecnico ma, vedrai, una delle caratteristiche più sofisticate di TAC è il suo sistema di chiamate di sistema crittografato. Invece di prendere in prestito le funzioni classiche di Windows (tramite ntdll.dll per esempio), TAC cercherà la memoria di sistema altrove per trovare un’istruzione lì syscall E costruisci uno “stub” personalizzato. Questo stub viene quindi mascherato (XOR, crittografato, ecc.) E collocato in un luogo casuale. Improvvisamente, i tentativi di monitorare le chiamate del sistema sono molto più difficili, perché non si sa mai quale API è davvero invocata e dove si trova l’istruzione syscall !

Come bonus, TAC blocca anche il Scansione della firma Creando blocchi di codice resi inaccessibili (PAGE_NOACCESS) al momento giusto. Poiché queste sono zone di codice “morte” che non dovrebbero essere percorse, qualsiasi strumento di scansione che lo trasmetterebbe richiederebbe un buon vecchio crash. Complica seriamente la vita di imbroglioni che sono alla ricerca di schemi di memoria per Patcher.

TAC monitora ancora più cose: per esempio, non gli piace a AllocConsole Essere chiamato nel processo per eseguire il debug o visualizzare le informazioni da un trucco interno. Quindi controlla se una console a manico è apparsa nel ProcessParemeters Peb o if GetConsoleWindow() Restituisce qualcosa. Risultato: la minima console non pianificata = sospetto di imbrogli.

Dal punto di vista delle scansioni di memoria, c’è anche un “miele” di pagine assegnate ma mai utilizzato dal gioco. Sono andato lì. Ben visto per individuare scanner di memoria prematura.

Come puoi vedere, è super acuto. Senza dimenticare che TAC monitora anche le comunicazioni di rete locali che potrebbero tradire la presenza di strumenti di imbrogli. Analizza le connessioni TCP locali, rileva i server di controllo e il controllo e monitora le porte utilizzate da trucchi noti. Inoltre, confronta il Locale Game con altre connessioni sulla stessa macchina per vedere se un cheat non farebbe un “C&C” locale, trasmettendo informazioni interne. L’idea è di identificare una porta della meglia aperta dallo stesso processo (o da un altro) che causerebbe il gioco.

Ora per capire queste protezioni, ricercatori come SSNO devono essere ingegnosità. Devono sviluppare strumenti di analisi personalizzati, ricostruire algoritmi di crittografia, attirare flussi di esecuzione complessi e ovviamente comprendere i meccanismi di protezione nidificati. È stato molto lavoro ma ci consente di vedere che gli sviluppatori sono costantemente innovanti per proteggere le loro creazioni. A proposito, TAC controllerà anche un po ‘più di cose del “sistema” come le Allocationgranularity o l’elenco dei moduli Windows (cosa c’è in InMemoryOrderModuleList) per individuare un osso personalizzato o un sabotaggio della struttura PEB/LDR. Nessun dettaglio è rimasto al caso!

Inoltre, stiamo iniziando a vedere un maggiore utilizzo dell’intelligenza artificiale per il rilevamento di comportamenti sospetti, ma anche l’implementazione della protezione dell’hardware tramite i processori di nuova generazione. E ovviamente tutto ciò che è ulteriori analisi del comportamento o crittografia omomorfica per dati sensibili. È davvero una zona eccitante!

Naturalmente, tutte queste scoperte devono essere usate in modo etico e responsabile, perché i imbrogli, sia nei videogiochi che nelle elezioni, è nulla.

Per un’analisi tecnica completa e dettagliata, consultare il Fonte originale di questo studio. E un grande ringraziamento a Miguel per la condivisione!


Source link

Categorized in: