English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flagGerman flagFrench flag
Spanish flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flag
Czech flagCroat flagDanish flagFinnish flagHindi flagPolish flagRumanian flag
Swedish flagNorwegian flag     
By N2H
Benvenuti a Raph Koster del sito web personale: MMO, giochi, scrittura, arte, musica, libri.

How to hack an MMO Come un MMO hack

April 17th, 2008 Aprile 17,

Given the recent hack to the blog , and also given the recent news of the decompiled Eve Online client, it seemed like a good time to go over some of the ways in which a virtual world gets hacked. Data la recente hack per il blog, e anche in seguito alla recente notizia della decompilato Eve Online cliente, è sembrato come un buon momento per andare oltre alcuni dei modi in cui un mondo virtuale diventa hacked.

The interesting thing, of course, is that all the hacks I am going to talk about are actually not hacking the virtual world at all; they instead attack the client , which is your window into the world, and also your waldo , your means of exercising control over what happens in that world. La cosa interessante, naturalmente, è che tutti gli hack mi accingo a parlare sono in realtà non l'hacking il mondo virtuale a tutti, che invece attacca il cliente, che è la tua finestra nel mondo, e anche il tuo Waldo, il tuo mezzo di che esercitano il controllo su ciò che accade in questo mondo. And that’s because… E questo è perché ...

The client is in the hands of the enemy. Il cliente è nelle mani del nemico.

The Laws of Online World Design - Le disposizioni legislative del mondo on-line design

You’ve probably heard that before — I wasn’t the first one to say it, but it constantly gets misattributed to me. Hai sentito che probabilmente prima - non sono stato il primo a dirlo, ma viene costantemente misattributed a me. That particular phrasing may have originated with Kelton Flinn , but I am sure many of us came up with it independently. Particolare formulazione che può avere origine con Kelton Flinn, ma sono sicuro che molti di noi si avvicinò con essa indipendente.

The first thing to realize is that encryption of the data stream isn’t going to stop anyone serious . La prima cosa da capire è che la crittografia del flusso di dati non è in corso per fermare chiunque grave.

Here’s the diagrammatic way to look at it. Ecco i diagrammi modo di vedere le cose.

  • You generate data. È generare dati.
  • You put it in a packet. Hai messo in un sacchetto.
  • You encrypt the packet. È crittografare il pacchetto.
  • You send it over the wire. Di inviare nel corso del filo.
  • It gets to a user’s computer. Si arriva a un utente del computer.
  • The client reads the encrypted packet. Il client legge il pacchetto codificato.
  • The client decrypts the packet. Il cliente decodifica il pacchetto.
  • The client does something. Il cliente fa qualcosa.

Really, anything after “it gets to a user’s computer” is in the hands of the enemy. Davvero, nulla dopo "si arriva a un utente del computer" è nelle mani del nemico. So that means that you are encrypting the packets, handing the user a decrypter called a client , and thinking that encryption helps. Quindi, ciò significa che si sta criptando i pacchetti, consegna all'utente un decrypter chiamato un cliente, e pensare che la crittografia aiuta.

The hackers can choose to do is read the incoming packets out of client memory after decryption, instead of sniffing the stream directly. L'hacker può scegliere di fare è leggere i pacchetti in entrata di client di memoria dopo la decrittazione, invece di sniffing del flusso direttamente. But really, all this does is raise the bar a bit on the hacking skills required. Ma davvero, tutto questo non fa altro che sollevare la barra un po 'di hacking sul competenze richieste.

To top it off, encryption can be slow, if you’re talking a real-time sort of situation. In cima alla pagina è disattivata, la cifratura può essere lenta, se si sta parlando in tempo reale tipo di situazione. You may not want to spend the time in encrypting if you need a fast response. Potrebbe non vuole trascorrere il tempo in crittografia se avete bisogno di una risposta veloce.

Packet stream sniffing: getting more info than you should Packet sniffing flusso: ottenere più informazioni di quanto deve

This one was a problem early on in EverQuest and is still an issue in many FPSes. Questo è stato un problema fin dalle prime fasi Everquest ed è ancora un problema in molti FPSes. In short, you should not rely on the client to filter information. In breve, non si dovrebbe fare affidamento sul client di filtraggio delle informazioni. Assume that anything that comes down the wire is visible to them. Si supponga che tutto ciò che scende il filo è visibile a loro. We speak of “culling” the data that is sent down, basically reducing the set. Si parla di "abbattimento" i dati che vengono inviati verso il basso, riducendo sostanzialmente il set. Even on the client, we do culling, so that we don’t draw everything in the dataset the client knows about. Anche sul client, fare abbattimento, in modo che non trarre in tutto il set di dati il cliente conosce. In an FPS, you typically cannot do a lot of server-side culling — everyone on the map is “visible” to the client, because everyone is moving so fast that you can’t really do any line of sight culling on the server. In un FPS, è in genere non possono fare un sacco di server-side abbattimento - tutti sulla mappa è "visibile" al cliente, perché tutti si muove così velocemente che non si può veramente fare qualsiasi linea di vista abbattimento sul server.

In EQ, the way this manifested was every mob in the zone was sent to the client. In EQ, il modo in cui questo è stato manifestato ogni mob nella zona è stato inviato al client. This meant a hack could make a minimap that showed every mob. Ciò significava un hack potrebbe fare una minimappa dimostrato che ogni cell. You could see repops at a distance. Si potrebbe vedere repops a distanza. But wait, it gets worse. Ma aspetta, c'è di peggio. You could also see everything they carried . Si può anche vedere tutto ciò di cui viene esercitata. So you could cherry-pick the good loot in advance. Così si potrebbe ciliegio scegliere il buon bottino in anticipo.

Packet filtering: dropping stuff you shouldn’t Packet filtering: in roba non si deve

Sometimes the server tells you things you just don’t want to hear. A volte il server ti dice le cose che hai appena non vogliono sentire. One such thing might be “no, you can’t go there.” This is the classic wall hack. Uno di questi cosa potrebbe essere "no, non puoi andare là." Questo è il classico muro hack. Usually, you move, and do a local client-side collision check. Di solito, ci si sposta, e fare un locale sul lato client controllo collisione. You also send off a request to the server for your movement, so that the server can verify whether you can go there (after all, you might have — horrors — hacked your client to not do collision checks). Potete anche inviare una richiesta via al server per il vostro movimento, in modo che il server può verificare se si può andare lì (dopo tutto, si potrebbe avere - orrori - hacked il tuo client di non fare controlli collisione). The server will send back a “no, you are still over here” message, resulting in being rubberbanded back to where you were. Il server invia di nuovo un "no, voi siete ancora qui" messaggio, in fase di rubberbanded indietro al punto in cui siete stati.

Unless you simply ignore that message, and merrily keep going. A meno che non sia semplicemente ignorare il messaggio, e allegramente andare avanti. This will allow you to explore all of the static dataset that your client has loaded. Questo vi permetterà di esplorare tutti i dati statici che il vostro cliente ha caricato. You won’t see any newly streamed objects in the right place, of course, because as far as the server is concerned, you didn’t move. Non si vedranno nuovi oggetti in streaming nel posto giusto, ovviamente, perché per quanto riguarda il server è in questione, l'avete fatto non si muove.

Simply dropping packets can be pretty powerful if the engineers were sloppy and relied on the client to correct itself after being told it was naughty. Basta abbandonare i pacchetti possono essere molto potente se gli ingegneri sono stati sciatto e invocato il cliente stesso a correggere dopo essere stato detto che era cattivo. A common way you can use this to greater advantage relies on the fact that we often do let the client be semi-autonomous about movement. Un modo comune è possibile utilizzare questo vantaggio di una maggiore si basa sul fatto che noi spesso non lasciare che il client di essere semi-autonomi circa circolazione. You can move around on the client with far more granularity and with much more rapid changes in direction than you can on the server. È possibile spostarsi sul client con granularità molto di più e con molto più rapidi cambiamenti in direzione di quello che ti puoi sul server. Instead of tracking your every move, we instead subsample it, basically. Invece di monitoraggio di ogni vostra mossa, noi invece sottocampione che, fondamentalmente. We rely on simple metrics like “you can’t move that far that fast” to verify whether or not you are in fact cheating in your movement. Ci basiamo sui parametri semplici come "non è possibile spostare che molto veloce che" al fine di verificare se è o non sono in realtà barare nel vostro movimento.

But if you collided with something, were told to bounce back, but then moved to a position on the other side of the wall, the next movement might fall within acceptable parameters, and then you may have moved through the wall. Ma se in collisione con qualcosa, è stato detto a rimbalzo indietro, ma poi spostata in una posizione sull'altro lato del muro, il prossimo movimento potrebbe rientrare parametri accettabili, e quindi si possono avere spostato attraverso il muro.

Packet altering: changing what you hear Packet modifica: cambiare ciò che voi udite

Alternatively, you could actually alter the packet before it gets interpreted. In alternativa, si potrebbe effettivamente modificare il pacchetto prima che venga interpretato. This basically lets you get the client to dance to your tune. Ciò consente di ottenere il client di danza per l'esecuzione di un brano. Maybe you want a nice big waypoint on top of your quest target. Forse si vuole una bella grande waypoint in cima ai vostri ricerca bersaglio. Maybe you want to change what zone the client thinks it is loading you into in order to let you tour somewhere you normally cannot get to. Forse si vuole cambiare zona di ciò che il cliente ritiene che il carico è in voi, al fine di farvi visita da qualche parte che normalmente non si possono ottenere al.

Representation altering: changing what you see Rappresentanza modifica: cambiare ciò che voi vedete

Messing with the data stream isn’t the only thing within your power. Messing con il flusso di dati non è l'unica cosa in suo potere. Lots of folks in FPSes did things to change the visibility level of what was around them. Un sacco di gente in FPSes fatto cose per cambiare il livello di visibilità di ciò che è intorno a loro. Replace all the walls with transparent textures, and you will have a much better idea of where everyone is. Sostituire tutte le pareti trasparenti con texture, e avrete una migliore idea di dove ognuno è. Replace small meshes with big ones, or camo-colored textures with bright pink ones, and everything gets easier to spot. Sostituire con maglie piccole grandi, o Camo-texture di colore rosa brillante con quelli, e tutto diventa più facile da individuare.

Triggering Trigger

Of course, why give yourself the work? Naturalmente, il motivo per cui dare te il lavoro? Just have the client automatically send back responses instantly when it gets a particular packet or message. Basta avere il client di inviare automaticamente le risposte immediatamente indietro quando si riceve un particolare pacchetto o di un messaggio. This form of automated triggers is, of course, a key element in building bots. Questa forma di trigger automatico è, ovviamente, un elemento chiave nella costruzione di bot. In an FPS, autoaim is an example. In un FPS, autoaim è un esempio. The accuracy of something happening with a trigger is far far higher than what it is when a mere human is at the wheel. La precisione di cosa succede con un trigger è di gran lunga molto più elevato di quello che è semplice quando un uomo è al volante.

Spamming Spamming

A lot of times, the servers aren’t hardened properly against receiving more commands in a given span of time than they expect. Un sacco di volte, i server non sono indurito adeguatamente contro la ricezione di più comandi in un determinato lasso di tempo di quello che si aspettano. Letting the client handle cooldown timers would be an example of a mistake like this; if you can control the upstream, you can bypass the cooldowns. Autorizzo il cliente di gestire cooldown timer sarebbe un esempio di un errore come questo, se è possibile il controllo a monte, è possibile bypassare il cooldowns.

The Warden and other tricks Il Warden e altri trucchi

Of course, there’s countermeasures. Naturalmente, c'è contromisure. The countermeasure used by Blizzard (and by Steam, for that matter) is to run a separate process that monitors whether the main app is being messed with. La contromisura utilizzati da Blizzard (e da vapore, se è per questo) è quello di eseguire un processo separato che controlla se la principale applicazione è in corso con messed. This is a common practice in Korea as well, and there’s FPS servers that require you to run Punkbuster , etc. From the WoW TOS: Questa è una pratica comune in Corea, come pure, e non c'è FPS server che richiedono l'esecuzione di Punkbuster, ecc Dal WoW TOS:

# WHEN RUNNING, THE PROGRAM MAY MONITOR YOUR COMPUTER’S RANDOM ACCESS MEMORY (RAM) AND/OR CPU PROCESSES FOR UNAUTHORIZED THIRD PARTY PROGRAMS RUNNING CONCURRENTLY WITH WORLD OF WARCRAFT. # Durante l'esecuzione, il programma può controllare il computer della memoria ad accesso casuale (RAM) e / o della CPU per i processi di terze parti non autorizzate programmi in esecuzione in concomitanza con World of Warcraft. AN “UNAUTHORIZED THIRD PARTY PROGRAM” AS USED HEREIN SHALL BE DEFINED AS ANY THIRD PARTY SOFTWARE, INCLUDING WITHOUT LIMITATION ANY “ADDON” OR “MOD,” THAT IN BLIZZARD’S SOLE DETERMINATION: (i) ENABLES OR FACILITATES CHEATING OF ANY TYPE; (ii) ALLOWS USERS TO MODIFY OR HACK THE WORLD OF WARCRAFT INTERFACE, ENVIRONMENT, AND/OR EXPERIENCE IN ANY WAY NOT EXPRESSLY AUTHORIZED BY BLIZZARD; OR (iii) INTERCEPTS, “MINES,” OR OTHERWISE COLLECTS INFORMATION FROM OR THROUGH THE PROGRAM. Una "parte di terzi non autorizzati programma", come utilizzato nel presente documento deve essere definito come qualsiasi software di terze parti, inclusi, senza limitazione alcuna "addon" o "mod", che in blizzard sola determinazione: (i) consente o facilita l'inganno di qualsiasi tipo; (ii) consente agli utenti di modificare o hack il World of Warcraft interfaccia, l'ambiente, e / o esperienza in alcun modo non espressamente autorizzato da blizzard o (iii) intercetta, "mine", o altrimenti raccoglie le informazioni da o attraverso il programma. IN THE EVENT THAT THE PROGRAM DETECTS AN UNAUTHORIZED THIRD PARTY PROGRAM, BLIZZARD MAY (a) COMMUNICATE INFORMATION BACK TO BLIZZARD, INCLUDING WITHOUT LIMITATION YOUR ACCOUNT NAME, DETAILS ABOUT THE UNAUTHORIZED THIRD PARTY PROGRAM DETECTED, AND THE TIME AND DATE THE UNAUTHORIZED THIRD PARTY PROGRAM WAS DETECTED; AND/OR (b) EXERCISE ANY OR ALL OF ITS RIGHTS UNDER SECTION 6 OF THIS AGREEMENT, WITH OR WITHOUT PRIOR NOTICE TO THE USER. In caso che il programma rileva un utente non autorizzato programma di terze parti, può blizzard (a) comunicare informazioni torna alla blizzard, compresi, senza alcuna limitazione il tuo nome account, dettagli sulla parte di terzi non autorizzati programma rilevato, e l'ora e la data in cui la parte di terzi non autorizzati programma È stato rilevato, e / o (b) esercitare qualsiasi parte o la totalità dei suoi diritti ai sensi dell'articolo 6 del presente accordo, con o senza preavviso per l'utente.

How does it do this? In che modo farlo? Well, actually, by using many of the same techniques as described above . Beh, effettivamente, utilizzando molte delle stesse tecniche come descritto sopra. Basically, it kind of hacks you . Fondamentalmente, essa tipo di hack voi. It checks to see if stuff is running in WoW’s memory space. Si controlli per vedere se è roba in esecuzione in WoW spazio della memoria. It checks the title bars of any window you have open and compares the text of that window title (hashed) against a blacklist of cheating programs titlebars (also hashed). Essa controlla il titolo barre di qualsiasi finestra che hai aperto e lo raffronta con il testo della finestra che titolo (hashed) nei confronti di una lista nera delle truffe programmi titlebars (anche hashed). And it actually checks some of the code of every program you have running and checks to see if that code is on its blacklist too. Ed è effettivamente alcuni controlli del codice di ogni programma che si hanno in esecuzione e controlli per vedere se il codice che si trova sulla sua lista nera troppo.

Needless to say, the Warden is also in the hands of the enemy ; although I wouldn’t have the slightest clue on how to do it, you could theoretically either hack the Warden itself, or hack the apps that the Warden is checking, so that they display false or different information. Inutile dire che la Warden è anche nelle mani del nemico, anche se non avrei il minimo indizio su come farlo, si potrebbe in teoria sia il trucco Warden stessa, o il trucco che le applicazioni Warden è il controllo, in modo che essi false o visualizzare informazioni differenti. At that point, it’s an arms race. A quel punto, si tratta di una corsa agli armamenti.

There’s already programs to watch the Warden watching you , for example. C'è già programmi per guardare il Warden guardando a voi, per esempio. And Blizzard’s response was to make a bunch of different versions of Warden , so it’s harder to find and watch; and also to — surprise, encrypt the stuff sent back. Blizzard e la risposta è stata a fare un mucchio di diverse versioni di Warden, in modo che sia più difficile da trovare e guardare, e anche - a sorpresa, crittografare il materiale inviato indietro. Of course, you could go back to square one, packet sniff, and filter out the Warden reports… la di da. Naturalmente, si potrebbe tornare al punto di partenza, annusare pacchetto, e filtrare le relazioni Warden ... Là di DA. Or make the cheat app polymorphic itself. O fare circa imbrogliare il polimorfo stessa. Or… O ...

It’s all very Orwellian — but players seem to value a game environment with less cheats more than they value their privacy, though admittedly, freaking out over an app reading window titlebars and then not actually telling anyone about it unless it finds a match may seem a bit paranoid. E 'tutto molto orwelliana - ma i giocatori sembrano valore di un gioco con ambiente più Trucchi meno di quello che il valore della loro privacy, anche se è vero, Freaking su uno app lettura titlebars finestra e poi in realtà non dice qualcuno al riguardo a meno che non trova una corrispondenza maggio sembrano un po 'paranoico. Then again, what if someone hacked a popular WoW fansite or guide site and stuck a banned string in the titlebar? Poi ancora, cosa succede se qualcuno hacked un popolare WoW fansite guida o sito e bloccato uno vietato stringa nella barra del titolo? Could happen… Potrebbe accadere ...

In the end, you just cannot trust the client . Alla fine, si può non solo la fiducia del cliente. Everything Warden protects against fundamentally needs to be guarded against on the server. Tutto Warden protegge contro fondamentalmente ha bisogno di essere protetti contro sul server. In the Web world, you just have to assume that the browser could be any damn thing at all — after all, I could write a simple web browser in about five minutes. Nel mondo del Web, è sufficiente per ritenere che il browser potrebbe essere qualsiasi cosa accidenti a tutti - dopo tutto, ho potuto scrivere un semplice browser web in circa cinque minuti. And in the future, we may well have to design our games with this sort of capability in mind. E in futuro, potremmo avere a progettare i nostri giochi con questo tipo di capacità in mente.

Take the example of the small herb to harvest. Prendiamo l'esempio delle piccole piante di raccolto. The hacks described would do things like auto-detect that the herb is around, auto-collect it, pick it out of a crowded area. L'hack descritto come fare le cose rilevare automaticamente che l'erba è di circa, l'auto-raccolta, venire a ritirarlo di una zona affollata. The “game” lies in it being hard to find or see. Il "gioco" che si trova in fase di difficili da trovare o vedere. In the security world, this is called “security through obscurity,” and it’s generally assumed to be a waste of time. Nel settore della sicurezza mondiale, questo si chiama "sicurezza attraverso l'oscurità", ed è generalmente assunta per essere uno spreco di tempo. (This also raises the question of why we are building games out of something like herb-finding.) The secure way is for the client to not even know. (Questo solleva anche la questione del perché stiamo costruendo giochi di qualcosa come erbe di ricerca.) Il modo sicuro è per il cliente di non sapere. Have real herbs and fake herbs use the exact same client-side representation in every way. Sono reali e falsi erbe erbe utilizzare lo stesso client-side di rappresentanza in ogni modo. Only the server knows the difference. Solo il server conosce la differenza.

We don’t generally do this because, well, we want to have static data and dynamic data we stream. Noi in genere non farlo perché, bene, vogliamo avere dati statici e dinamici flusso di dati. We want to be able to precache most of the world, and only stream down the stuff that can change, like herbs you can pick up. Vogliamo essere in grado di precache la maggior parte del mondo, e solo il flusso di materiale che può cambiare, come le erbe si può salire. It’s cheaper in bandwidth, by a lot; it offers better performance; you get much faster load times. E 'più conveniente nella larghezza di banda, da una partita, ma offre prestazioni migliori; si ottiene molto più rapidamente i tempi di caricamento.

In other words, we create these vulnerabilities for ourselves because, well, we want to trust the client. In altre parole, abbiamo creato queste vulnerabilità per noi stessi, perché, bene, noi vogliamo la fiducia del cliente.

In the end, the most hack-free virtual world is likely to be the one with completely open source clients , completely public and open protocols, and no attempts to cheat by having the client do any heavy lifting. Alla fine, la maggior parte hack-free mondo virtuale sarà probabilmente quello con completamente open source, clienti, completamente pubblico e protocolli aperti, e non il tentativo di barare facendo il client fare qualsiasi sollevamento di carichi pesanti. In fact, WoW itself has taken very big strides towards this with their open UI system, which enables officially sanctioned plug-ins which do quite a lot of the things that were formerly done by hacks. In realtà, WoW stessa ha preso molto grandi passi in questa direzione con la loro interfaccia utente del sistema aperto, che permette ufficialmente sancita plug-in piuttosto che fare un sacco di cose che sono state precedentemente svolto da hack. The reason this will likely be safer is simply because when the terminal is dumb, you are forced to put the smarts on the server — and the server is a lot easier to make secure. La ragione per cui questo sarà probabilmente più sicuro è semplicemente perché quando il terminale è muto, si è costretti a mettere il Smarts sul server - e il server è molto più facile fare sicuro.

The challenges, however, are not small if you want to really go whole hog and make everything driven by the server. Le sfide, però, non sono piccoli se si vuole davvero andare tutto porco e fare tutto guidato dal server. Everything would need to be streamed. Tutto avrebbe bisogno di essere in streaming. Everything sent to the server would need to be verified. Tutto ha inviato al server avrebbe bisogno di essere verificate. And game designers would have to assume they could not rely at all on anything in the visuals as a gameplay mechanic, nor on anything related to speed of cognitive processes (eg, time spent “figuring something out” would not be a good mechanic, since many things could be offloaded to the client, providing instant reaction times). Gioco e progettisti avrebbe dovuto assumere non potevano fare affidamento su a tutti i nulla nel visuali come un gioco meccanico, né nulla legati alla velocità dei processi cognitivi (ad esempio, il tempo trascorso "capire qualcosa" non sarebbe un buon meccanico, in quanto molte cose possono essere scaricati al cliente, fornendo tempi di reazione istantanei). It would all make for a far more asynchronous world. Sarebbe tutto per rendere molto più asincrona mondo.

But that design constraint might also push towards designing cleverer gameplay, rather than gameplay that can be completely undone by knowing where stuff is, picking important stuff out from the crap, and going clicky-clicky on something fast enough. Ma questo disegno vincolo potrebbe anche spingere verso la progettazione intelligente di gioco, piuttosto che di gioco che può essere completamente annullata da sapere dove è roba, roba importante raccolta dalla merda, e andando Clicky-Clicky su qualcosa di abbastanza velocemente.

A pipe-dream? Un tubo-sogno? Probably. Probabilmente. We loves us our herb-hunting, our big graphics, our lagless client-side movement, and we seem quite willing to put up with being spied on in exchange for knowing that only bad-ass hackers are cheating, instead of damn near everyone. Noi ci ama il nostro erbe-caccia, il nostro grande grafica, il nostro lagless sul lato client circolazione, e ci sembrano abbastanza disposti ad accettare di essere spiati, in cambio di sapere che solo male-ass hacker sono barare, invece di maledire vicino a tutti. ;)

*

[?] [?]
You can follow any responses to this entry through the RSS 2.0 feed. Responses are currently closed, but you can trackback from your own site. È possibile seguire tutte le risposte a questa entrata attraverso il RSS 2.0 feed. Le risposte sono attualmente chiuse, ma puoi trackback dal tuo sito.

44 Responses to “How to hack an MMO” 44 Responses to "Come un MMO hack"

Jump to reader comments » | Leave a reply » Vai a lettore commenti »| Lascia una risposta»

Trackbacks & Pingbacks TrackBacks & Pingbacks
  1. Pinging The Services (How To Guidelines) wrote on I servizi di ping (come linee guida) scritto il giorno

    to the library and experienced the Dewey Decimal System. per la biblioteca e l'esperienza del sistema decimale Dewey. He looked up all of his sources online and did a lot of cut-and-paste for his papers. Ha guardato tutte le sue fonti on-line e ha un sacco di taglia-e-incolla per i suoi documenti. For some reason, this was acceptable to his teachers…. Per qualche ragione, questo è accettabile per i suoi insegnanti .... I think the first thing I’d be doing during graHow to hack an MMOGiven the recent hack to the blog, and also given the recent news of the decompiled Eve Online client, it seemed like a good time to go over some of the ways in which a virtual world gets hacked. Penso che la prima cosa che ho da fare durante graHow hack per uno MMOGiven la recente hack per il blog, e anche in seguito alla recente notizia della decompilato Eve Online cliente, è sembrato come un buon momento per andare oltre alcuni dei modi in che un mondo virtuale diventa hacked. The interesting thing, of course, is that all the hacks La cosa interessante, naturalmente, è che tutti gli hack

  2. COPE: James Wallis levels with you » Koster-munger wrote on COPE: James Wallis livelli con voi »Koster-Münger scritto il giorno

    [...] Raph Koster gives you a brief tutorial on how to hack MMOs. [...] Raph Koster vi dà un breve tutorial su come hack MMO. [...] [...]

  3. KVET.CH wrote on KVET.CH scritto il giorno

    del.icio.us/emory Apr 18Raph’s Website » How to hack an MMOThere’s already programs to watch the Warden watching you, for example. del.icio.us / Emory aprile 18Raph Sito Web »Come uno hack MMOThere già programmi per guardare il Warden guardando a voi, per esempio. And Blizzard’s response was to make a bunch of different versions of Warden, so it’s harder to find and watch; and also to — surprise, encrypt the stuff sent back. Blizzard e la risposta è stata a fare un mucchio di diverse versioni di Warden, in modo che sia più difficile da trovare e guardare, e anche - a sorpresa, crittografare il materiale inviato indietro. Of Di

  4. Where social software should go next — Habitat’s lessons (Leapfroglog) wrote on Sociale in cui il software dovrebbe andare avanti - Habitat di lezioni (Leapfroglog) ha scritto 21

    [...] Cheating might be of less concern to social software than to games (although there are exceptions, take Digg for example). [...] Cheating potrebbe essere di meno di preoccupazione sociale software rispetto ai giochi (anche se ci sono eccezioni, Digg prendere ad esempio). For those interested in more about this, Raph Koster recently posted an elaborate examination of hacking and cheating in MMOGs. Per coloro che sono interessati a maggiori informazioni su questo, Raph Koster ha recentemente pubblicato un esame di elaborare l'hacking e truffe in MMOGs. [...] [...]

  5. MMO Clerks » Koster writes “how to hack an MMO” wrote on MMO Cancellieri »Koster, scrive:" Come fare un MMO hack "scritto il

    [...] blog post by game designer Raph Koster (of Ultima Online and now Metaplace fame) will tell you how! [...] Post sul blog da gioco progettista Raph Koster (di Ultima Online e ora Metaplace fama) vi dirà come! [...] [...]

  6. Massively wrote on Massicciamente scritto il giorno

    News items Have you ever wanted to walk through walls in MMO? Notizie Avete mai desiderato di camminare attraverso muri in MMO? How about telepathically sense the locations of all the good drops in a zone, or make invisible things very, very visible? Come circa telepaticamente senso le posizioni di tutte le buone gocce in una zona, o di rendere invisibili le cose molto, molto visibile? Ablog postby game designer Raph Koster (of Ultima Online and now Metaplace fame) will tell you how! Ablog postby gioco progettista Raph Koster (di Ultima Online e ora Metaplace fama) vi dirà come! Admittedly, Koster doesn’t really go into much detail. Certo, Koster, in realtà non andare molto in dettaglio. Also, he’s trying to help developers avoid hacking problems, not giving inside secret tips to hackers. Inoltre, è cercare di aiutare gli sviluppatori a evitare problemi di hacking, non dando dentro segreto suggerimenti agli attacchi degli hacker. It’s E '

  7. Làm th? Lam °? nào ?? Tasse non? hack m?t trò ch?i tr?c tuy?n MMORPG? hack m? t tro ch? I tr? c Tuy? n MMORPG? - Market4Gamer wrote on - Market4Gamer scritto il

    [...] client does something. [...] Cliente fa qualcosa. Thú v? Gio v? ?? ? Các b?n có th? Các b? Co n °? tham kh?o thông tin chi ti?t : http://www.raphkoster.com/2008/04/17…o-hack-an-mmo/ [...] tham kh? thông stagno o chi ti? t: http://www.raphkoster.com/2008/04/17 ... O-hack-uno-MMO / [...]

  8. Creators of gaming widget app hope to make ALT-TAB obsolete - Big Download Blog wrote on Creatori di giochi widget app speranza di fare Alt-Tab obsoleti - Scarica Big Blog scritto il

    [...] framerates, and that it won’t trigger anti-cheating tools like Punkbuster or World of Warcraft’s Warden.The product is currently in its beta test phase. [...] Framerates, e che non attivano anti-truffa strumenti come Punkbuster o World of Warcraft Warden.The del prodotto è attualmente nella sua fase di beta test. You can sign up for the beta or update [...] Puoi accedere alla versione beta o aggiornare [...]

  9. forums.twelvesands.com • View topic - How to hack an MMO wrote on forums.twelvesands.com • Vedere argomento - Come un MMO hack scritto il

    [...] some discussion earlier wondering why on earth I’d put all the user request parameters in the URL.http://www.raphkoster.com/2008/04/17/ho … ck-an-mmo/If you’re logged in to the game, you can basically visit any zone just by manipulating the URL. [...] Qualche discussione precedente chiedo perché mai ho messo tutti i parametri degli utenti richiesta nel URL.http: / / www.raphkoster.com/2008/04/17/ho ... ck-an-mmo/If hai effettuato l'accesso al gioco, è possibile visitare fondamentalmente qualsiasi zona da manipolare solo l'URL. If [...] Se [...]

  10. Raph's Website » How to hack an MMO wrote on Sito Web di Raph »Come hack un MMO scritto il giorno

    [...] How to hack an MMO April 17th, 2008 (Visited 5387 times) Tags: cheating, everquest, hacking, laws of online world design, vw design, vw tech, WoW [...] [...] Come un MMO hack aprile 17, 2008 (visitato 5387 volte) Tag: barare, Everquest, l'hacking, le leggi del mondo online progettazione, design VW, VW tecnologia, WoW [...]

  11. Gameguard. Gameguard. - Page 4 - AionSource.com wrote on - Pagina 4 - AionSource.com scritto il giorno

    [...] spawn location…) into the client. [...] Posizione depongono le uova ...) nel client. as Raph Koster is fond of reminding ppl, the game client "is in the hands of the enemy": every time a dev offloads an operation onto the client, in order to save CPU cycles for AI [...] come Raph Koster è appassionato di ricordare PPL, il client di gioco "è nelle mani del nemico": ogni volta che uno sviluppatore offloads un'operazione sul cliente, al fine di salvare cicli della CPU per AI [...]

Reader Comments Commenti dei lettori
  1. Todd said on Todd ha detto 17

    In EQ, the way this manifested was every mob in the zone was sent to the client. In EQ, il modo in cui questo è stato manifestato ogni mob nella zona è stato inviato al client. This meant a hack could make a minimap that showed every mob. Ciò significava un hack potrebbe fare una minimappa dimostrato che ogni cell. You could see repops at a distance. Si potrebbe vedere repops a distanza. But wait, it gets worse. Ma aspetta, c'è di peggio. You could also see everything they carried. Si può anche vedere tutto ciò di cui viene esercitata. So you could cherry-pick the good loot in advance. Così si potrebbe ciliegio scegliere il buon bottino in anticipo.

    Still is a problem, they still send down tons of data, but you could never see everything they were carrying, only their wielded items (and just the graphic it displayed) and sometimes if they were carrying a light source. È ancora un problema, che ancora mandare giù tonnellate di dati, ma non avrebbe mai potuto vedere tutto quello che stavano portando, solo esercitato il loro voci (e solo la grafica è visualizzato) e talvolta se ne stavano portando una fonte di luce.

  2. Kriss said on Kriss ha detto 18

    Yup, all good and so hard to get people to understand these facts. Yup, tutti i buoni e così difficile da ottenere le persone a comprendere questi fatti. Players are always, “But its on a computer what are you lazy? I giocatori sono tutti i giorni, "Ma la sua su un computer che stai pigro? just make cheating impossible!” solo rendere impossibile barare! "

    Personally I’ve pretty much come down to the idea that an audit type system is the only thing that makes sense. Personalmente ho molto a venire giù l'idea che un tipo di sistema di controllo è l'unica cosa che ha senso.

    Which is more of a social fix. Che è più di una correzione sociale. Don’t try and make cheating impossible, just make it detectable. Non cercare di rendere impossibile barare, a soli rendono rilevabili. This is easier and cheaper. Questo è più facile e meno costoso.

    Don’t even try and detect it in real time. Non anche cercare di individuare in tempo reale. Just take replays and audit them for cheats at a later date should people complain or due to obvious triggers. Basta prendere replay e di audit per cheats in una data successiva dovrebbe lamentarsi o persone a causa di evidenti trigger. Again easier and cheaper. Ancora più facile e meno costoso.

    Make the response to cheats more of a social slap on the wrist. Portare la risposta alle frodi più di uno schiaffo sociale sul polso. Don’t take it to seriously, just slap them down take away points, prizes, humiliate them etc. It never makes any sense to even take away their account (unless you plan to sell them a new one). Non prendere seriamente, proprio schiaffo li giù togliere i punti, premi, ecc umiliare li rende non è mai alcun senso di asportare anche il proprio account (a meno che si prevede di vendere loro un nuovo account).

    Apart from anything else trying to build a world where you can’t do anything wrong is a bit dull. A parte ogni altra cosa cercando di costruire un mondo in cui non puoi fare niente di sbagliato è un po 'noioso.

    I’ve been toying with the idea of removing the need for much of a central server. Sono stato toying con l'idea di eliminare la necessità di molto più di un server centrale. Turning it more into a central audit system that solidifies when necessary the otherwise shared hallucination. Passando più in una centrale di controllo solidifica sistema che, se necessario, altrimenti il comune allucinazioni. Most people are not cheats after all and as long as you have plans to roll back and undo actions I’m confident you can get away with peer to peer data exchanges. La maggior parte delle persone non sono, dopo tutto Trucchi e fintantoché vi sono piani per il roll back e annullare le azioni sono fiducioso che si possono ottenere via con peer to peer scambi di dati. Much of the auditing can even be done client side, with clients flagging other clients as suspicious. Molto di controllo può anche essere fatto lato client, con i clienti bandiera altri clienti come sospette.

    The total client side cpu power will always dwarf the server side. Il totale lato client potenza della CPU semper nano lato server.

    It just takes some clever game design. Si prende solo alcuni abile gioco di progettazione.

  3. BuschnicK said on BuschnicK detto 18

    For me, after playing the game as intended for awhile, the meta-game of hacking and automating it, is far more interesting than the original gameplay. Per me, dopo la riproduzione del gioco come previsto per un po ', il meta-gioco di hacking e l'automazione, è di gran lunga più interessante il gameplay originale. Programmers, by definition, are keen on automating boring, repetitous and dumb tasks. Programmatori, per definizione, sono appassionato di automatizzare noioso, repetitous compiti e muti. This unfortunately describes 75% of most online game gameplay. Questo, purtroppo, viene descritto il 75% della maggior parte dei giochi di gioco on-line. The one who endures the boredom longer and spends the most time in the game gets the biggest rewards. Colui che sopporta più la noia e spende la maggior parte del tempo nel gioco diventa la più grande ricompensa.
    So how do you prevent cheating? Così come si fa a prevenire truffe? Reward actual skill over forbearance, make the core gameplay interesting enough so players will feel they are missing out if they are cheating. Ricompensa effettiva abilità su tolleranza, il nucleo di gioco abbastanza interessante in modo che i giocatori si sentiranno essi sono mancanti se sono barare. No one sends a bot to see a movie for him… Nessuno invia un bot per vedere un film per lui ...
    Also, make the interface of the game as streamlined as possible. Inoltre, rendere l'interfaccia del gioco tanto semplice quanto possibile. Lots of the hacks/cheats are actually workarounds for shortcomings in the interface. Lotti di hack / Trucchi sono effettivamente soluzioni per carenze nei controlli di interfaccia.

    Then again, one of my clients is http://www.zynamics.com so I’m kinda biased Poi di nuovo, uno dei miei clienti è http://www.zynamics.com così mi sto parziale ;-)

    Anyways, good post - kind regards, Comunque, il buon posto - saluti,

    Sören

  4. Shalkis said on Shalkis detto 18

    A small note: FPS games have performed a lot of culling, starting with Quake. Una piccola nota: i giochi FPS hanno eseguito un sacco di abbattimento, a partire da Quake. ID used a concept called a vismap, or a visibility map. ID utilizzato un concetto chiamato vismap, o una mappa visibilità. Basically, the map designer calculated in advance which parts of the map are visible from each location. Fondamentalmente, la mappa progettista calcolato in anticipo quali parti della mappa sono visibili da ogni posizione. However, the main reason for calculating vismaps was not to deter cheaters, but to speed up rendering. Tuttavia, il motivo principale per il calcolo vismaps non è stato per scoraggiare imbroglioni, ma per accelerare il rendering. There’s no reason whatsoever to render that wall five corridors and seven rooms away from you, because there’s no way you could see it. Non c'è alcun motivo per rendere quel muro corridoi cinque e sette camere di distanza da lei, perché non c'è modo si potrebbe vedere. All the server needed to do was to put the vismap to a new use and check whether players were in areas that could not be seen by the other players. Tutti i server necessari per fare era di mettere il vismap di un nuovo impiego e verificare se i giocatori sono stati in settori che non poteva essere visto dagli altri giocatori.

  5. Mox said on Mox ha detto 18

    As Raph says, people move very fast in FPS games. Come dice di Raph, spostare persone molto veloce in giochi FPS. What may be invisible in one frame may become visible in the next, and in the high-stakes Quake 3 Arena world, frames matter . Che cosa può essere invisibile in una cornice può diventare visibile nel prossimo, e per l'alta posta in gioco di Quake 3 Arena mondo, cornici questione. Also, you have to consider the worst-case scenario. Inoltre, si deve prendere in considerazione lo scenario peggiore. Keeping things fast and responsive when you can’t see anyone doesn’t help when all the players in the game are in the same room, blasting away at each other. Mantenendo le cose veloce e reattivo quando non si riesce a vedere chiunque non aiuta quando tutti gli attori in gioco si trovano nella stessa stanza, sabbiatura di distanza l'una verso l'altra.

    Static items can be filtered properly, however. Statico di elementi che possono essere adeguatamente filtrato, comunque. For example, all the weapon and ammo pick-ups. Ad esempio, tutte le armi e munizioni pick-up. The server doesn’t need to tell you what they are up to until your client is in danger of seeing them. Il server non ha bisogno di dirvi quello che sono fino a fino a quando il cliente è in pericolo di vedere loro.

    Interesting thing about the resource-collection example that Raph uses: contrast LotRO and WoW craft collection with SWG craft collection. Cosa interessante la raccolta di risorse che di Raph esempio usi: LOTRO contrasto e WoW imbarcazioni raccolta SWG con imbarcazioni di raccolta.

  6. Raph said on Raph ha detto 18
    Still is a problem, they still send down tons of data, but you could never see everything they were carrying, only their wielded items (and just the graphic it displayed) and sometimes if they were carrying a light source. È ancora un problema, che ancora mandare giù tonnellate di dati, ma non avrebbe mai potuto vedere tutto quello che stavano portando, solo esercitato il loro voci (e solo la grafica è visualizzato) e talvolta se ne stavano portando una fonte di luce.

    I am almost positive that I once saw a hack client that showed the contents of the mobs’ drops, and that later it switched to not spawning the drops until the mob was killed. Sono quasi positivo che una volta ho visto un hack cliente che ha mostrato il contenuto della mobs' gocce, e che più tardi è acceso per la riproduzione non scende fino a quando la folla è stato ucciso. It may have been during the beta, though. Potrebbe essere stato durante la versione beta, però. (We were at Origin then, and someone on the UO2 team was analyzing the packet stream? I don’t quite recall). (Siamo stati in origine allora, e qualcuno sulla UO2 squadra è stata l'analisi del flusso dei pacchetti? Io non ricordo).

    For me, after playing the game as intended for awhile, the meta-game of hacking and automating it, is far more interesting than the original gameplay. Per me, dopo la riproduzione del gioco come previsto per un po ', il meta-gioco di hacking e l'automazione, è di gran lunga più interessante il gameplay originale. Programmers, by definition, are keen on automating boring, repetitous and dumb tasks. Programmatori, per definizione, sono appassionato di automatizzare noioso, repetitous compiti e muti.

    Designers shouldn’t be. Designer non dovrebbe essere.

    A small note: FPS games have performed a lot of culling, starting with Quake. Una piccola nota: i giochi FPS hanno eseguito un sacco di abbattimento, a partire da Quake. ID used a concept called a vismap, or a visibility map. ID utilizzato un concetto chiamato vismap, o una mappa visibilità. Basically, the map designer calculated in advance which parts of the map are visible from each location. Fondamentalmente, la mappa progettista calcolato in anticipo quali parti della mappa sono visibili da ogni posizione. However, the main reason for calculating vismaps was not to deter cheaters, but to speed up rendering. Tuttavia, il motivo principale per il calcolo vismaps non è stato per scoraggiare imbroglioni, ma per accelerare il rendering. There’s no reason whatsoever to render that wall five corridors and seven rooms away from you, because there’s no way you could see it. Non c'è alcun motivo per rendere quel muro corridoi cinque e sette camere di distanza da lei, perché non c'è modo si potrebbe vedere. All the server needed to do was to put the vismap to a new use and check whether players were in areas that could not be seen by the other players. Tutti i server necessari per fare era di mettere il vismap di un nuovo impiego e verificare se i giocatori sono stati in settori che non poteva essere visto dagli altri giocatori.

    Right, good point. Diritto, il buon punto. I said: Ho detto:

    Even on the client, we do culling, so that we don’t draw everything in the dataset the client knows about. Anche sul client, fare abbattimento, in modo che non trarre in tutto il set di dati il cliente conosce. In an FPS, you typically cannot do a lot of server-side culling — everyone on the map is “visible” to the client, because everyone is moving so fast that you can’t really do any line of sight culling on the server. In un FPS, è in genere non possono fare un sacco di server-side abbattimento - tutti sulla mappa è "visibile" al cliente, perché tutti si muove così velocemente che non si può veramente fare qualsiasi linea di vista abbattimento sul server.

    In the case of what you’re describing — vismaps and other forms of block culling are not all that helpful for deterring cheating, since “all the players that matter” is who you want to operate the hack against anyway. Nel caso di quello che stai descrivendo - vismaps e altre forme di bloccare l'abbattimento non sono tutto ciò che utile per dissuadere barare, dato che "tutti i giocatori che importa è che si desidera utilizzare il trucco contro comunque. :)

    I know you know this, but for the sake of others reading the thread: So che lei sa, ma per il bene degli altri la lettura del thread:

    The way to think about is this — you have a static dataset (the map) and a dynamic, quickly moving dataset (objects like players, pickups, bullets). Il modo di pensare è questo - si dispone di un set di dati statici (la mappa) e una dinamica, in movimento rapido di dati (gli oggetti come i giocatori, pickup, proiettili).

    The map is pre-cached, which means that the client knows ALL of it — it can make automaps if it wants, it can tell you the best paths, it can hack the art. La mappa è pre-cache, il che significa che il cliente sa tutto di essa - si può fare automaps se vuole, può dire la migliore percorsi, può hack l'arte. But it can also optimize what to render. Ma può anche ottimizzare ciò che a rendere.

    The dynamic stuff has the potential to move very fast, so the server tells you where all of it is at any time. La dinamica roba è potenzialmente in grado di muoversi molto velocemente, in modo che il server ti dice dove tutti si è in qualsiasi momento. After all, it might round a corner, or you might round a corner. Dopo tutto, potrebbe intorno ad un angolo, o potrebbe essere intorno ad un angolo. This doesn’t mean the client is rendering it, but it does mean it knows about it. Questo non significa che il cliente è di rendering, ma essa non significa che si conosce. That is why I put “visible” in quotes. Questo è il motivo per cui ho messo "visibile" tra virgolette.

    The renderer then does render culling, which is decide which items to draw. Il renderer di non rendere quindi l'abbattimento, che è decidere quali elementi per disegnare. A hacker can change how stuff renders, and given the fact that the client knows where everyone is, it can do things like draw outlines of them on the hud, letting you “see” through walls. Un hacker potrebbe modificare la modalità rende cose, e dato il fatto che il cliente sa dove ognuno è, può fare le cose come disegnare linee di essi sulla HUD, lasciandovi "vedere" attraverso le pareti. Or autoaim at them, lining up the shot before they come out from behind the wall. O autoaim a loro, allineando il tiro prima di essere uscito da dietro il muro.

    Something like a vismap doesn’t do complex dynamic culling; instead, it says “this guy is basically in a different building” or “this guy is basically at the other end of a long twisty hallway” — there’s no way for the other guy to come into visibility in any reasonable period of time. Qualcosa come una vismap non fa complessa dinamica abbattimento; invece, si dice "questo tizio è sostanzialmente in un altro edificio" o "questo tizio è fondamentalmente a l'altra estremità di un lungo corridoio tortuose" - non c'è modo per il altro ragazzo a venire in visibilità in qualsiasi periodo di tempo ragionevole. So the map gets chopped up into network update areas. Quindi, la mappa viene tagliato in rete aggiornamento settori. “When in room A, tell me about room B dynamic stuff, but not room C stuff.” This is basically the same as EQ not telling you about stuff in the next zone, etc. "Quando in sala A, fammi sapere sala B dinamico roba, ma non sala C roba." Questo è fondamentalmente lo stesso come EQ non vi dico su roba nella prossima zona, ecc

    The only total solution is to do line of sight network culling, but that is both CPU-intensive, and also would require a round-trip to the server, which makes it impossibly slow. L'unica soluzione totale è di fare la linea di vista abbattimento rete, ma che sia di CPU-intensivi, e anche richiederebbe un viaggio di andata e ritorno al server, il che rende impossibile lento. Most MMOs settle for radial network culling. La maggior parte dei MMO accontentarsi di rete radiale abbattimento.

  7. Richard Bartle said on Richard Bartle ha detto 18

    Raph>The dynamic stuff has the potential to move very fast, so the server tells you where all of it is at any time Raph> La dinamica roba è potenzialmente in grado di muoversi molto velocemente, in modo che il server ti dice dove tutti si è in qualsiasi momento

    It’s possible to send this information in an encrypted form, but only send the decryption key when the client is entitled to see it. È possibile inviare tali informazioni in forma crittografata, ma solo inviare la chiave di decrittazione, quando il cliente ha il diritto di vederlo. It doesn’t have to be heavy duty encryption, just enough to make trying every key in a split second impractical. Non devono essere pesanti crittografia, appena sufficienti per rendere ogni tentativo chiave in una frazione di secondo pratico.

    I first saw this proposed on MUD-DEV, but haven’t seen it used in action. Ho visto per la prima volta su questa proposta di MUD-dev, ma non ho visto usato in azione. I suspect that even a single UDP exchange with the server may introduce too much lag. Ho il sospetto che anche una sola UDP scambio con il server può introdurre troppo ritardo. Using something similar for precached client-side material ought to be viable, though. Utilizzo di qualcosa di simile per precached sul lato client materiale dovrebbe essere fattibile, però. The decryption algorithm may be in the hands of the enemy, but that doesn’t mean the decryption key has to be. L'algoritmo di decodifica possono essere nelle mani del nemico, ma ciò non significa che la chiave di decrittazione deve essere.

    Richard

  8. Raph said on Raph ha detto 18

    Very true — I had forgotten that came up on MUD-Dev, actually. Molto vero - avevo dimenticato che è venuto su MUD-dev, effettivamente. But yes, a token exchange of hashes or keys in classic key exchange style could be done. Ma sì, un gettone per lo scambio di chiavi di un hash o nel classico stile di scambio di chiave potrebbe essere fatto.

    I don’t think that for real-time apps an on-the-fly key exchange is practical — the roundtrip time could be too much. Non credo che in tempo reale uno applicazioni on-the-fly scambio di chiavi è pratico - andata e ritorno il tempo potrebbe essere troppo. But it’s worth exploring in the fashion you suggest. Ma vale la pena esplorare nel campo della moda vi suggeriamo.

  9. Shalkis said on Shalkis detto 18

    A vismap can’t prevent you from tracking a player who’s just about to run into the room you’re in, but it can prevent the server from telling you that he picked up an important powerup from the previous room. Un vismap non può impedire di monitoraggio di un giocatore che ha appena circa da eseguire nella stanza in cui ci si trova, ma può impedire il server da dire che egli è raccolto un importante powerup dalla camera precedente.

    That decryption-keys-sent-on-demand sounds interesting. Che la decrittazione-keys-ha inviato-on-demand di suoni interessanti. However, the preloaded encrypted packet needs to be padded to a predetermined size and it’s transmission time needs to be randomized. Tuttavia, il pacchetto precaricato codificato deve essere imbottita a una predeterminata dimensione ed è tempo di trasmissione deve essere randomizzati. While you may not be able to decode the contents, the act of transmitting encrypted data can be telling in itself. Anche se potrebbe non essere in grado di decodificare il contenuto, l'atto di trasmissione di dati cifrati possono essere raccontare a se stessa. If you always receive a packet of a certain size 2 seconds before a dragon appears, you’ll soon learn to hide whenever that happens. Se si riceve un pacchetto di una certa dimensione 2 secondi prima di un dragone appare, vi accorgerete subito imparare a nascondere ogni volta che succede.

  10. Spaz said on Spaz detto 18

    These are serious problems now, but will they not eventually go away as bandwidth and server hardware get better? Questi sono problemi seri adesso, ma se non eventualmente andare via come la larghezza di banda e server hardware meglio?

    Do you think that the demands of things we want to do are growing faster or slower than the abilities of the physical infrastructure? Lei pensa che le richieste di cose che vogliamo fare sono in crescita più veloce o più lento rispetto alla capacità delle infrastrutture fisiche?

  11. Michael Chui said on Michael Chui detto 18

    These are serious problems now, but will they not eventually go away as bandwidth and server hardware get better? Questi sono problemi seri adesso, ma se non eventualmente andare via come la larghezza di banda e server hardware meglio?

    They can, but most of these improvements are being put to use in driving bigger and better features, rather than locking down security. Essi possono, ma la maggior parte di questi miglioramenti sono stati posti in uso nella guida più grande e migliore funzionalità, piuttosto che verso il basso il blocco di sicurezza. It’sa resource allocation thing, and security doesn’t make you any money. Si tratta di una cosa l'allocazione delle risorse, e la sicurezza non è denaro. It just keeps you from losing too much. Esso tiene semplicemente di perdere troppo.

    Notice how every proposed solution so far has an implied argument of “This doesn’t take much effort.” And every vulnerability comes from, “This makes a better experience.” Notare come ogni soluzione proposta finora ha un implicito argomento della "Questo non prende molto sforzo." Ed ogni vulnerabilità deriva dal "Questo rende una migliore esperienza".

  12. Steven "PlayNoEvil" Davis said on Steven "PlayNoEvil" Davis ha detto 18

    The other option is to pre-load multiple data sets or assets and then simply point to the right one when needed. L'altra opzione è quella di pre-carico di più insiemi di dati o di attività e quindi semplicemente al punto giusto quando necessario.

    In many cases you can stop tampering by using a keyed hash function (or MAC) instead of encryption. In molti casi è possibile interrompere la manomissione utilizzando una funzione hash digitato (o MAC) invece di crittografia. This has the benefit that the server can “cheat” and not check the MAC code all of the time (coincidentally, I’m coding one of these right now). Questo ha il vantaggio che il server è in grado di "barare" e non controllare il codice MAC di tutti i tempi (per coincidenza, ho codifica uno di questi ora).

  13. Swift Voyager said on Swift ha detto Voyager 18

    My personal maxim when writing business software for internal use over a LAN or Intranet: You can try to monkey-proof your software but a monkey is still a monkey. La mia personale massima durante la scrittura di software aziendali per uso interno su una LAN o Intranet: Si può cercare di scimmia-prova il vostro software, ma una scimmia è ancora una scimmia.

    We had a large application designed for internal use and since we controlled all aspects of that use, we could make arbitrary statements like “This site requires MS Internet Explorer version xx or higher” or “Screen resolutions of xxxxx by xxxxx or higher are required to view this page”. Abbiamo avuto una grande applicazione progettata per uso interno e da quando abbiamo controllato tutti gli aspetti di tale uso, si potrebbe rendere arbitrario dichiarazioni del tipo "Questo sito richiede MS Internet Explorer versione xx o superiore" o "risoluzioni dello schermo da parte di XXXXX XXXXX o superiore sono tenuti a visualizzare la pagina ". It saved a lot of time in testing and customizing. E 'salvato un sacco di tempo in fase di test e la personalizzazione. Later, someone got the bright idea that certain outside clients and vendors should have access. Più tardi, qualcuno ha la brillante idea che al di fuori alcuni clienti e fornitori dovrebbero avere accesso. “uh oh” "Uh oh"

    And that doesn’t even begin to get into the area of open public access where people are going to deliberately trying to break your software just for fun. E questo senza nemmeno iniziare a ricevere in materia di aprire l'accesso del pubblico dove la gente va deliberatamente cercando di rompere il software solo per divertimento. I can’t imagine having to handle that kind of problem without having full time people on staff who are dedicated experts. Non riesco a immaginare di dover gestire questo tipo di problema, senza persone a tempo pieno per il personale che si dedicano esperti. What a nightmare. Che un incubo.

  14. Shalkis said on Shalkis detto 18

    And that doesn’t even begin to get into the area of open public access where people are going to deliberately trying to break your software just for fun. E questo senza nemmeno iniziare a ricevere in materia di aprire l'accesso del pubblico dove la gente va deliberatamente cercando di rompere il software solo per divertimento. I can’t imagine having to handle that kind of problem without having full time people on staff who are dedicated experts. Non riesco a immaginare di dover gestire questo tipo di problema, senza persone a tempo pieno per il personale che si dedicano esperti. What a nightmare. Che un incubo.

    Security in general does require a specific mindset . Sicurezza in generale non richiedono una specifica mentalità. You have to keep asking yourself: “How this can be subverted?” and “What damage could I do with this?” Once you get into that mindset, all else follows. Lei ha chiesto di mantenere te stesso: "Come questo può essere sovvertite?" E "Quali danni potrebbe fare con questo?" Una volta arrivati in quella mentalità, tutto il resto segue.

  15. Mox said on Mox ha detto 18

    With respect to sending encrypted data to the client speculatively, to be decrypted only when it becomes appropriate, it seems to me that it can be useful to cache potentially relevant data on the client. Per quanto riguarda l'invio di dati criptati al cliente speculatively, essere decifrati solo quando diventa necessario, mi sembra che possa essere utile per la cache di dati potenzialmente rilevanti sul client. For example, the stealther problem in Dark Age of Camelot. Ad esempio, il problema in stealther Dark Age of Camelot. There’sa whole pile of data that you need to send to the client to get it to adequately represent a figure in a graphical MMO like DAoC - race, custom appearance options, visible equipment - but you don’t want to “tip off” the client that there’s an invisible assassin nearby until you are sure the client has detected the stealther (Camelot uses a simple binary system for stealther detection, such that if you haven’t detected the sneak it’s supposedly completely undetectable). C'è un intero mucchio di dati che è necessario inviare al cliente per farlo in modo adeguato rappresentano una cifra in un grafico come MMO DAoC - razza, aspetto opzioni personalizzate, attrezzature visibile - ma non vuoi "Tip-off" the client that there’s an invisible assassin nearby until you are sure the client has detected the stealther (Camelot uses a simple binary system for stealther detection, such that if you haven’t detected the sneak it’s supposedly completely undetectable). If you hold off on that bundle until the client has successfully made their “detection test” then it’s possible that there isn’t the bandwidth available to bring the client up to speed fast enough. In Camelot, with enough Stealth skill, you could bring the detection radius down to a very short distance indeed - crucial when trying to stick a knife in someone’s back. Pre-sending unencrypted data could give a compromised client some information you would not like to present to an unmodified client - the appearance, allegiance and perhaps the name and Realm Rank of the would-be assailant. Sending it early but encrypted sounds like an effective compromise technique. You can disguise it by filling otherwise unused bandwidth with nonsense that you never ask the client to decrypt. The missing data, position, speed and animation, should hopefully form a small enough packet it will not introduce any significant latency by itself.

  16. Rik said on

    Perhaps we could get an overview of how Metaplace fits into this topic?

  17. Raph said on

    In Metaplace, the packet stream is completely open, and the client is completely stupid. So you are forced to verify everything on the server and do everything on the server. In alpha, we have had a couple of hacks related to spamming and to triggers, and both were because of inadequately secured scripts on the worldbuilder’s part.

  18. Brent Michael Krupp said on

    Raph was correct about EQ. Early on they *did* spawn loot with the mobs and ShowEQ (the major EQ hacking program back then) showed you that loot. Then Verant got smart and made mobs only spawn loot when killed.

    Another wonderful aspect of the way they used to do it was that rogues could pickpocket loot off of mobs leaving them empty when actually killed!

    The occasional quest mob would drop his head when you killed him — rogues could pickpocket thos