Anti-Cheat per problemi e soluzioni di MMO? [chiuso]


14

La maggior parte dei giochi online soffre di questo problema e ci sono alcune società di software là fuori per coprirlo, ma recentemente da quello che ho visto la maggior parte delle aziende sta cercando di evitare che quei programmi creino il proprio sistema (bufera di neve con guardiano, aion con il proprio controllo, ecc. ...) ma è un caso molto difficile prevenire tale ...

Volevo solo dire che ho fatto un altro argomento di domanda come wiki specifico della comunità per la pubblicazione di applicazioni ed è caratteristiche e le idee alla base di questa domanda non sono di elencarle ma invece di sapere di più su quali sono stati i tuoi tentativi, problemi lungo la strada e possibili soluzioni , pezzo di codice se applicazione e così via.

Che tipo di protezione usate voi ragazzi per (tentare di) prevenire tali atti:

  1. Software anti-cheat? (indica quali, perché e possibili problemi che hai riscontrato, ad esempio aion ha smesso di usare GameGuard in fase beta a causa di un'enorme quantità di problemi di compatibilità e lamentele da parte dei suoi utenti)
  2. Il tuo codice? (che tipo di verifica esegui di solito per assicurarti dei giocatori in malafede, ad esempio speedhack, verificare la nuova posizione rispetto alla velocità + ultima posizione, ecc ...)
  3. Nessuno, non mi interessa?(qualsiasi motivo o input personale che ti è piaciuto condividere?)

Qualche pezzo interessante di codice relativo al problema che vorresti pubblicare?

Sentiti libero di rielaborare il mio testo il mio inglese inst così bene? **


1
Tag realizzato. Se ti aspetti che questo abbia una grande quantità di risposte, fallo diventare wiki della community. Permetterà a più persone di modificare le risposte individuali anziché le persone che le riaffermano costantemente.
Jesse Dorsey

1
Per un esempio di come questo potrebbe essere utile. Dai un'occhiata a
Jesse Dorsey

Grazie per il commento e i collegamenti, lo controllerò ora e vedrò, dal mio punto di vista, questo tipo di domanda per lo sviluppo del gioco è un ottimo punto di discussione, ma la maggior parte dei giochi MMO credo quindi non sono sicuro, anche il la comunità è piuttosto piccola al momento e avevo paura di essere negativato per una domanda del genere, quindi non sono sicuro, grazie per aver creato il tag :)
Prix

Risposte:


22

Sfortunatamente è davvero difficile impedire alle persone di barare, motivo per cui software come Punkbuster è stato creato per cercare di catturarne alcuni.

Per un MMO, la cosa più grande che puoi fare è non fidarti di nulla che il client ti mandi . Il client non dovrebbe essere in grado di dirti dove si è trasferito il giocatore, quanti danni hanno inflitto a chi, ecc. Invece, è necessario inviare un input di controllo al server, confermare che sia pratico (premendo il pulsante "attacco" 1000 volte in 1 secondo, ad esempio, non è valido), quindi aggiorna la simulazione sul server. In seguito, invieresti al cliente le parti pertinenti del nuovo stato del gioco.

Durante la convalida dell'input dell'utente, è anche possibile cercare tendenze nei loro input. Se non consenti le macro, puoi prenderle qui notando che l'utente ha fatto clic sullo stesso pulsante con le stesse coordinate pixel esatte a intervalli di 1 secondo perfetti negli ultimi 30 minuti.

Il client stesso è il luogo principale in cui le persone possono imbrogliare, quindi programmi come Punkbuster possono abbattere wallhacks, aimbot, ecc. Oltre a ciò, non fidarsi del client e convalidare qualsiasi cosa ti venga inviata dal client aiuterà a ridurre i cheat.


Grazie per il tuo contributo spero di vedere più persone fare il loro contributo; In effetti questo è un problema molto difficile da contrastare ... C'è anche chi abbatte il gioco per disabilitare il motore anti-cheat ed è una sua chiamata ... che rende le cose ancora più difficili ... a meno che tu non abbia un online GM per verificare quella determinata persona o altre verifiche come hai dichiarato. cosa pensi di questa domanda per il wiki della community? dovrei mantenere lo stato o cambiare qualcosa per adattarlo;
Prix

Probabilmente wiki della comunità a meno che non stia cercando una risposta specifica.
Sean James,

Ulteriori dettagli su come funziona Punkbuster per una risposta più completa?
Chris Lloyd,

Buona risposta - non esiste una "soluzione per dominarli tutti" - la maggior parte dei giochi ha più "vettori di attacco". Spesso si tratta della valutazione del rischio più di ogni altra cosa, cioè qual è l'impatto sulla comunità se qualcuno può imbrogliare il sistema X ecc.
zebrabox

Credo che l'hacking sia inevitabile, anche con il più forte programma anit-cheat. Cheating va bene se offline tecnicamente ma non online. Giocare online è più sull'equità. È così?
David Dimalanta,

8

Registrazione. Tutto ciò che accade sul server dovrebbe essere registrato e idealmente tutto ciò che proviene dal client. Il client è intrinsecamente inaffidabile, ma anche la registrazione di dati non attendibili può essere illuminante.

Una volta registrato tutto, il rilevamento dei cheat diventa una questione di analisi dei dati. Alcuni trucchi saranno evidenti (valori al di fuori di intervalli accettabili, ad esempio essere in grado di spostarsi tra i punti molto più velocemente di quanto l'avatar consenta normalmente), altri sono più insidiosi (come i mirini che consentono il targeting perfetto dei pixel in tempi artificialmente brevi). Alcuni sono ancora più difficili da rilevare (come i wallhack), ma la registrazione il più possibile consente il rilevamento sia automatico che manuale. Ci sono vari articoli su di esso, ma generalmente i trucchi sono individuati molto facilmente nel rilevamento automatico perché sono così prevedibili / ripetibili, esattamente come non lo sono i giocatori umani.

Dal momento che la registrazione di ogni cosa è molto probabilmente impossibile, la registrazione su più livelli è utile. Ad esempio, i rapporti di truffa da parte degli utenti o la semplice registrazione di base che rileva la possibilità di barare (punteggio che è molto al di sopra della curva statistica), sarebbe sufficiente per contrassegnare un particolare client / account / chiave CD per una registrazione più dettagliata, che potrebbe quindi essere usato per dimostrare oltre ogni ragionevole dubbio che un trucco è in uso.

Quello che fai quando rilevi un trucco è completamente un'altra cosa. Il divieto dell'account dopo il fatto è positivo, specialmente quando si dispone di un meccanismo di rilevamento automatico sufficientemente affidabile. Il divieto anticipato avvisa entrambi i trucchi che vengono rilevati e corre anche il rischio di falsi positivi a causa di meccanismi di rilevazione inconcludenti. Vietare troppo tardi rischia di rovinare l'esperienza di gioco per gli altri. Questa è un'area molto grigia e richiede agli sviluppatori di effettuare il giudizio.


2

Supponendo che tutto il lavoro importante nel tuo gioco avvenga sul lato server, dovrebbe esserci poco o nessun imbroglio possibile. Se si desidera limitare la macro o rendere noiosa la modifica dei pacchetti da parte delle persone, fare in modo che il programma esegua periodicamente la ricerca dei moduli attivi nel suo processo. Se trovi ad esempio WpeSpy.dll, saprai che hanno WPE collegato. Fallo per gli altri strumenti comuni. Questo può essere aggirato, ed è una corsa agli armamenti e una causa persa, ma se il tuo gioco è relativamente piccolo, puoi facilmente ridurre il numero di persone che vanno in giro di circa un fattore dieci ... e questo potrebbe essere buono abbastanza per te.


Grazie per il contributo, hai usato qualche software anti-cheat o hai avuto questo tipo di problema di cui ti sei dovuto occupare? in tal caso sarebbe bello sentirne parlare.
Prix

2
Non ho usato alcun software anti-cheat di terze parti, no. Quando ho iniziato a programmare un gioco di ruolo online, tuttavia, il mio server ha appena chiamato "attacco" quando il client ha inviato "attacco", invece di mettere la richiesta in coda, cose del genere. Questi sono i più importanti per prevenire gli imbrogli. Accelera gli hack, esegui tutte le tempistiche sul server in modo da ottenere pochi vantaggi, ma invia anche timestamp e, se ottieni troppa deriva, saprai che ne stanno usando uno. Contrassegna il loro account, ma non prenderli a calci immediatamente: il feedback immediato è un ottimo modo per qualcuno di sapere cosa rileva il tuo software.
James Bellinger,

1
Mi piace questa parte che but also send timestamps, and if you get too much drift, you'll know they are using one. Mark their account, but don't kick them immediately -- immediate feedback is a great way for someone to know what your software detects.recentemente ho cercato di implementare un timestamp e avvisare il sistema dagli utenti contrassegnati, attualmente quello che ho messo il giocatore in un elenco su cui sto lavorando ora è che se alcuni hanno un alto uso di abusi invierà un avviso a un GM online per la verifica ...
Prix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.