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
Vítejte na Raph Koster osobní webové stránky: MMOs, hry, literatura, umění, hudba, knihy.

How to hack an MMO Jak hackovat jeden MMO

April 17th, 2008 17. dubna 2008

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. Vzhledem k nedávné zásek do blogu, a také s ohledem na poslední zprávy o decompiled Eve Online klienta, zdálo se to jako dobrý čas jít po některé ze způsobů, jak ve virtuálním světě, který se dostane hacknutý.

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. Je to zajímavé, samozřejmě, je, že všechny hacks Hodlám se hovořit o skutečně není hacking virtuálním světě vůbec, ale místo útoku na klienta, který je vaším oknem do světa, a také svůj Waldo, že vaše prostředky vykonávají kontrolu nad tím, co se děje v tomto světě. And that’s because… A to je, protože ...

The client is in the hands of the enemy. Klient je v rukou nepřítele.

The Laws of Online World Design - Zákony on-line svět design

You’ve probably heard that before — I wasn’t the first one to say it, but it constantly gets misattributed to me. Vy jste asi slyšeli, že před - nebyl jsem první, kdo to říkají, ale neustále se dostane misattributed ke mně. That particular phrasing may have originated with Kelton Flinn , but I am sure many of us came up with it independently. To především frázování může pocházet s Kelton Flinn, ale jsem si jist, mnozí z nás přišel až s ním samostatně.

The first thing to realize is that encryption of the data stream isn’t going to stop anyone serious . První věc, kterou si uvědomit, že je šifrování datového toku se nehodlají zastavit někdo vážně.

Here’s the diagrammatic way to look at it. Zde je schematický způsob, jak se na to podívat.

  • You generate data. Ty vytvářejí data.
  • You put it in a packet. Ty dejte je do sáčku.
  • You encrypt the packet. Ty šifrování paketu.
  • You send it over the wire. Vy jej poslat přes kabel.
  • It gets to a user’s computer. Jedná se dostane na počítači uživatele.
  • The client reads the encrypted packet. Klient si přečte zašifrovaný paket.
  • The client decrypts the packet. Klient decrypts paketu.
  • The client does something. Klient se tak něco.

Really, anything after “it gets to a user’s computer” is in the hands of the enemy. Opravdu si myslím, že něco po "se dostane k počítači uživatele" je v rukou nepřítele. So that means that you are encrypting the packets, handing the user a decrypter called a client , and thinking that encryption helps. Takže to znamená, že jste šifrovat pakety, předání uživateli decrypter nazývá klient, a myslet si, že šifrování pomáhá.

The hackers can choose to do is read the incoming packets out of client memory after decryption, instead of sniffing the stream directly. V hackeři se může rozhodnout, že si je přečíst příchozí pakety z klienta paměti po dešifrování, místo popotahování proud přímo. But really, all this does is raise the bar a bit on the hacking skills required. Ale opravdu, tohle všechno dělá, je zvýšit laťku trocha na hacking dovednosti potřebné.

To top it off, encryption can be slow, if you’re talking a real-time sort of situation. Na začátek je vypnutý, šifrování může být pomalý, pokud budete mluvit Real-Time druh situace. You may not want to spend the time in encrypting if you need a fast response. Možná nebudete chtít trávit čas v šifrování v případě, že potřebujete rychlou odpověď.

Packet stream sniffing: getting more info than you should Proud Paketová popotahování: dostat více informací, než jste měl

This one was a problem early on in EverQuest and is still an issue in many FPSes. To byl jeden problém brzy v EverQuest a je stále problémem v mnoha FPSes. In short, you should not rely on the client to filter information. Stručně řečeno, neměli byste spoléhat na straně klienta pro filtrování informací. Assume that anything that comes down the wire is visible to them. Předpokládejme, že něco přijde, že si drát je viditelný na ně. We speak of “culling” the data that is sent down, basically reducing the set. Mluvíme o "porážce" data, která je poslal dolů, v podstatě snižování soupravy. Even on the client, we do culling, so that we don’t draw everything in the dataset the client knows about. Dokonce i na klientovi, co děláme porážka, takže nemáme nic vyvodit vše, co je v datech klienta ví. 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. V FPS, ty se obvykle nemůže udělat hodně Server-Side utracení - všichni na mapě je "viditelný" na klienta, protože všichni jsou v pohybu tak rychle, že nemůžete skutečně dělat žádnou linii pohledu porážka na serveru.

In EQ, the way this manifested was every mob in the zone was sent to the client. V EQ, že tento způsob se projevuje byl každý mob v pásmu poslal ke klientovi. This meant a hack could make a minimap that showed every mob. To znamená, hack, mohla by se ukázalo, že každých minimap Mob. You could see repops at a distance. Repops jste mohli vidět na dálku. But wait, it gets worse. Ale počkejte, to zhorší. You could also see everything they carried . Můžete také vidět vše, co na palubě. So you could cherry-pick the good loot in advance. Takže jste mohli třešeň-vybrat dobrý prachy předem.

Packet filtering: dropping stuff you shouldn’t Filtrování paketů: shození věci byste neměli

Sometimes the server tells you things you just don’t want to hear. Někdy se vám server pro vás prostě nechtějí slyšet. One such thing might be “no, you can’t go there.” This is the classic wall hack. Jedna taková věc by mohla být "Ne, nemůžeš tam jít." Jedná se o klasické zdi hack. Usually, you move, and do a local client-side collision check. Obvykle se hýbat, a to místní client-boční kontrola kolizí. 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). Můžete také odeslat požadavek na server pro vaše hnutí, aby server mohl ověřit, zda můžete jet tam (po tom, co by mohlo mít - horory - hacknutý váš klient, aby ne do kolize kontrol). The server will send back a “no, you are still over here” message, resulting in being rubberbanded back to where you were. Tento server pošle zpět "Ne, vy jste ještě tady" zprávy, což má v tom, že rubberbanded zpět na místo, kde jste byli.

Unless you simply ignore that message, and merrily keep going. Pokud jste prostě ignorovat, že zprávy, a vesele dál. This will allow you to explore all of the static dataset that your client has loaded. To vám umožní prozkoumání všech pro statický datový soubor, který by váš klient byl naložen. 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. Nebudete vidět všechny nově streamovaných objektů na pravém místě, samozřejmě, protože pokud jde o server se obává, že jste se pohybovat.

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. Jednoduše zahazování paketů může být dost silný, pokud se inženýři byli sentimentální a opíraly se o klienta na správné sama poté, co byl řekl, že byl zlobivý. 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. A běžným způsobem, můžete použít to větší výhodu spoléhá na fakt, že jsme často nechat klienta se semi-autonomní o pohybu. 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. Můžete se pohybovat na klienta s mnohem větší zrnitost a mnohem více rychlých změnách směru, než můžete na tomto serveru. Instead of tracking your every move, we instead subsample it, basically. Místo sledování vašich každý tah, ale místo toho dílčího to, v podstatě. 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. Máme spoléhat na jednoduché metriky jako "nelze přesunout tak daleko, že rychle", aby ověřil, zda jste ve skutečnosti podvádění ve vašem pohybu.

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. Ale pokud si kolidoval s něčím, bylo řečeno, že odskočit zpět, ale poté se přestěhoval do pozice, na druhé straně zdi, na další pohyb by mohly spadat do přijatelné parametry, a pak můžete mít přes zeď.

Packet altering: changing what you hear Packet měnit: změna, co slyšíte

Alternatively, you could actually alter the packet before it gets interpreted. Případně byste mohli skutečně změnit pakety před tím, než se dostane interpretovány. This basically lets you get the client to dance to your tune. To v podstatě vám umožní dostat klienta do tanečních, aby vaše melodie. Maybe you want a nice big waypoint on top of your quest target. Možná by jste chtěli mít krásné velké navigační bod na špičce vašeho hledání cíle. 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. Možná budete chtít změnit to, co klient si myslí, že zóna je naložení do vás tak, abyste měli turné jste někde normálně nemohou dostat do.

Representation altering: changing what you see Zastoupení měnit: změna, co vidíte

Messing with the data stream isn’t the only thing within your power. Probírat s datového toku není jediné, co ve vaší moci. Lots of folks in FPSes did things to change the visibility level of what was around them. Spousta lidí v FPSes udělal věci, které byste měli změnit viditelnost na úrovni toho, co bylo kolem nich. Replace all the walls with transparent textures, and you will have a much better idea of where everyone is. Nahradit všechny stěny s transparentními texturami, a budete mít mnohem lepší představu o tom, kde všichni jsou. Replace small meshes with big ones, or camo-colored textures with bright pink ones, and everything gets easier to spot. Nahradit malá oka se ty velké, nebo CAMO-barevné textury s zářivě růžové se, a všechno, co dostane snáze místě.

Triggering Spouštěcí

Of course, why give yourself the work? Samozřejmě, proč dát si práci? Just have the client automatically send back responses instantly when it gets a particular packet or message. Stačí mít klient automaticky odešle zpět odpovědi okamžitě, když se dostane určitý paket nebo vzkaz. This form of automated triggers is, of course, a key element in building bots. Tato forma automatizované spouští, je samozřejmě klíčovým prvkem při budování roboty. In an FPS, autoaim is an example. V FPS, autoaim je příklad. The accuracy of something happening with a trigger is far far higher than what it is when a mere human is at the wheel. Přesnost se nestalo něco s trigger je daleko daleko vyšší, než jaká je při pouhé lidské je za volantem.

Spamming Spamy

A lot of times, the servers aren’t hardened properly against receiving more commands in a given span of time than they expect. A hodně krát, servery, nejsou řádně tvrzený proti dostávají více příkazů v určitém rozpětí času, než kolik očekávali. 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. Pronájem klienta manipulovat ochlazování časovače by být příkladem chybu, jako je tato, pokud můžete kontrolovat proti proudu, můžete obejít cooldowns.

The Warden and other tricks Dozorce a jiné triky

Of course, there’s countermeasures. Samozřejmě, je tu protiopatření. 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. Protiopatření používané Blizzard (a pára, v této věci), je provozovat samostatný proces, který sleduje, zda hlavní app je s zmatený. 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: To je běžná praxe v Koreji stejně, a tam je FPS serverů, které vyžadují, aby byl spuštěn Punkbuster, atd. Z 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. # Když běží, může program sledovat počítače Random Access Memory (RAM) a / nebo CPU procesy pro neoprávněné třetí straně programy běží současně s 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. Za "neoprávněné třetí straně program", jak je používán v tomto dokumentu musí být definovány jako všechny softwaru třetích stran, včetně ale bez omezení na jakékoli "addon" nebo "mod", že v BLIZZARD jediným determinace: (i) umožňuje nebo usnadňuje podvádění jakéhokoliv druhu; (ii) umožňuje uživatelům upravovat nebo Hack the World of Warcraft rozhraní, životní prostředí, a / nebo zkušenosti v žádném případě není výslovně povoleno vánice, nebo (iii) hlídá, "dolů", nebo jinak sbírá informace od nebo prostřednictvím programu. 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. V případě, že program zjistí neoprávněnou třetí stranou program, BLIZZARD mohou (a) sdělit informace zpět do vánice, včetně ale bez omezení na název účtu, podrobnosti o neoprávněné třetí straně program zjistí, a čas a datum neoprávněné třetí straně program Byl zjištěn, a / nebo (b) jakékoli cvičení nebo všechna svá práva podle § 6 této dohody, s nebo bez předchozího upozornění uživatele.

How does it do this? Jak to udělat? Well, actually, by using many of the same techniques as described above . No, vlastně pomocí mnoho stejných technik, jak je popsáno výše. Basically, it kind of hacks you . V podstatě druh hacks vás. It checks to see if stuff is running in WoW’s memory space. Kontroluje se, zda něco běží v WoW je v paměti. 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). Kontroluje titul tyče jakéhokoliv okna máte otevřené a srovnává text, že název okna (hashovaný adresář) proti blacklistu podvádění programy nadpisů (i hashovaný adresář). 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. A to skutečně kontroluje některé z kódu každý program máte běží a kontroluje, zda je tento kód na svůj blacklist taky.

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. Netřeba zdůrazňovat, že Warden je také v rukou nepřítele, i když bych neměl sebemenší potuchy o tom, jak to udělat, mohli byste teoreticky ani hack, ředitel sám, nebo hack, APPS, že Warden je kontrola, tak že jsou nepravdivé nebo zobrazování různých informací. At that point, it’s an arms race. V tomto okamžiku se jedná o závody ve zbrojení.

There’s already programs to watch the Warden watching you , for example. Tam už se dívat na programy Warden sledujete vy, například. 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 a jeho odpověď byla, aby se parta z různých verzí Warden, takže je těžší najít a sledovat, a také - překvapení, šifrování tak poslal zpět. Of course, you could go back to square one, packet sniff, and filter out the Warden reports… la di da. Samozřejmě, můžete se vrátit zpět k náměstí jeden paket funění a vyfiltrovat Warden zprávy ... la di da. Or make the cheat app polymorphic itself. Nebo aby se podvádět app polymorfní sama. Or… Nebo ...

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. Je to všechno velmi orwellovských - hráči, ale zdá se, že hodnota herní prostředí s méně podvádí víc, než je hodnota jejich soukromí, i když připouštím, vyšilovat více než jedno okno cca čtení nadpisů a pak nejsou skutečně někdo říká o něm, pokud zjistí, zápas května zdát poněkud paranoidní. Then again, what if someone hacked a popular WoW fansite or guide site and stuck a banned string in the titlebar? Pak zase, co když někdo hacknutý populární WoW fansite nebo průvodce místě a přilepil zakázaných řetězec v titulku? Could happen… By se mohlo stát ...

In the end, you just cannot trust the client . Na konci si jen můžeme klientovi nedůvěřuje. Everything Warden protects against fundamentally needs to be guarded against on the server. Vše Warden chrání proti zásadně musí být střeženy proti serveru. 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. Ve webovém světě, stačí předpokládat, že prohlížeč by mohl být kterýkoli zatracená věc vůbec - po tom všem, mohl bych napsat jednoduchý webový prohlížeč asi pět minut. And in the future, we may well have to design our games with this sort of capability in mind. A v budoucnu možná budeme mít i na design našich her s takovou schopností v mysli.

Take the example of the small herb to harvest. Vezměte si příklad z malých bylinkovým na sklizeň. The hacks described would do things like auto-detect that the herb is around, auto-collect it, pick it out of a crowded area. V hacks popsané by dělat věci jako auto-detect, že rostliny se kolem, auto-collect to, si to v přeplněném prostoru. The “game” lies in it being hard to find or see. Tato "hra" spočívá v tom je těžké najít ani vidět. In the security world, this is called “security through obscurity,” and it’s generally assumed to be a waste of time. V oblasti bezpečnosti světa, je to tzv. "bezpečnostní přes utajení," a to je všeobecně předpokládá, že je ztráta času. (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. (To také vyvolává otázku, proč jsme budovu z her něco jako bylinkový-nálezem.) Bezpečný způsob, jak je pro klienta, který není ještě znám. Have real herbs and fake herbs use the exact same client-side representation in every way. Už v reálném byliny a falešná byliny použít přesně stejný klient-Side zastoupení v každém směru. Only the server knows the difference. Pouze server ví, že rozdíl.

We don’t generally do this because, well, we want to have static data and dynamic data we stream. Nechceme to zpravidla proto, že dobře, chceme mít statických dat a dynamických dat jsme proudu. 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. Chceme, aby byl schopen precache většině zemí světa, a to pouze ve směru toku tak, že můžete změnit, stejně jako bylinky můžete vyzvednout. It’s cheaper in bandwidth, by a lot; it offers better performance; you get much faster load times. Je to levnější šířku pásma, a to hodně, ale nabízí lepší výkon, dostanete mnohem rychleji zatížení krát.

In other words, we create these vulnerabilities for ourselves because, well, we want to trust the client. Jinými slovy, jsme se vytvořit tyto chyby u sebe, protože dobře, chceme, aby důvěra klienta.

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. V závěru, že většina zásek-zdarma virtuálního světa je pravděpodobné, že bude úplně jedno s otevřeným zdrojovým kódem klienty, zcela veřejné a otevřené protokoly, a ne se pokouší podvádět tím, že klient si jakékoliv zvedání těžkých břemen. 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. Ve skutečnosti, WoW sama učinila velké kroky směrem k tomuto jejich otevřené rozhraní systému, který umožňuje oficiálně sankcionováno plug-inů, které se docela hodně věcí, které byly dříve provedené hacks. 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. Důvodem je pravděpodobně to bude bezpečnější, když je to jednoduše proto, že terminál je němý, vy jste nuceni umíst'ovat smarts na server - a serverem je mnohem snáze zajistit.

The challenges, however, are not small if you want to really go whole hog and make everything driven by the server. Vzhledem k výzvám, však nejsou malé, chcete-li opravdu jet celou vepř a učinit vše, co řídí server. Everything would need to be streamed. Vše bude muset být přenášen. Everything sent to the server would need to be verified. Všechno poslal na server, bude muset být ověřeny. 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). A hra designérů by se předpokládat, že nemůže spoléhat vůbec na nic vizuálů jako herních mechanik, ale ani na cokoliv, co se týká rychlosti kognitivních procesů (např. doba strávená "figurují něco" by neměla být dobrý mechanik, protože mnoho věcí, by mohl být vyložen na klienta, který poskytuje okamžitou reakci krát). It would all make for a far more asynchronous world. Bylo by všichni na světě mnohem více asynchronní.

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. Ale že by se mohl také navrhnout omezení tlaku na konstrukci chytřejší, hraní, spíše než hraní, která může být zcela nehotový, které neví, kde je něco, sklízel důležité věci z kostek, a jedeme clicky-clicky na něco dostatečně rychlý.

A pipe-dream? A pipe-sen? Probably. Asi ano. 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. Jsme nás miluje náš bylinkovým-myslivost, naše velký grafik, náš lagless client-boční pohyb, a my se zdají být docela ochotni se s představou o špehovaný výměnou za to, že pouze špatným vědouce-ass hackerů jsou podvádění, namísto téměř všichni. ;)

*

[?] [?]
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. Můžete sledovat všechny odezvy na tento vstup pomocí RSS 2.0 kanálu. Odezvy jsou momentálně uzavřeny, ale můžete si Trackback z vašich vlastních stránek.

44 Responses to “How to hack an MMO” 44 Reakce na: "Jak to hack, jeden MMO"

Jump to reader comments » | Leave a reply » Přejít na čtenáře komentáře »| Zanechte odpověď»

Trackbacks & Pingbacks Zpětné odkazy & Pingbacks
  1. Pinging The Services (How To Guidelines) wrote on Ping Služby (Jak se "pokyny") napsal / a dne

    to the library and experienced the Dewey Decimal System. do knihovny a došlo k Dewey desetinný systém. He looked up all of his sources online and did a lot of cut-and-paste for his papers. Podíval se do všech svých zdrojů, on-line a udělal hodně řezu-a-vložit na své dokumenty. For some reason, this was acceptable to his teachers…. Z nějakého důvodu, to bylo přijatelné pro jeho učiteli .... 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. Já si myslím, že první věc, já bych graHow dělat během hackovat jeden MMOGiven nedávné zásek do blogu, a také s ohledem na poslední zprávy o decompiled Eve Online klienta, zdálo se to jako dobrý čas jít po některé ze způsobů, jak v virtuální svět, který se dostane hacknutý. The interesting thing, of course, is that all the hacks Je to zajímavé, samozřejmě, je, že všechny hacks

  2. COPE: James Wallis levels with you » Koster-munger wrote on Cope: James Wallis úrovních s vámi »Koster-munger napsal / a dne

    [...] Raph Koster gives you a brief tutorial on how to hack MMOs. [...] Raph Koster vám stručný návod, jak hackovat MMOs. [...] [...]

  3. KVET.CH wrote on KVET.CH napsal / a dne

    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 dubna 18Raph webových stránek »Jak hackovat jeden MMOThere již programy sledovat Warden sledujete vy, například. 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 a jeho odpověď byla, aby se parta z různých verzí Warden, takže je těžší najít a sledovat, a také - překvapení, šifrování tak poslal zpět. Of Z

  4. Where social software should go next — Habitat’s lessons (Leapfroglog) wrote on V případě, že sociální software by měl jít příští - Domov pro poučení (Leapfroglog) napsal / a dne

    [...] Cheating might be of less concern to social software than to games (although there are exceptions, take Digg for example). [...] Podvádění by mohlo být méně týkají sociálního softwaru, než na hry (i když existují výjimky, vezměte Digg for example). For those interested in more about this, Raph Koster recently posted an elaborate examination of hacking and cheating in MMOGs. Pro ty, kdo se zajímají více o tomto problému, Raph Koster nedávno vyslaný podrobný vyšetření hacking a podvádění v MMOGs. [...] [...]

  5. MMO Clerks » Koster writes “how to hack an MMO” wrote on MMO Úředníci »Koster píše:" Jak to hack, jeden MMO "napsal na

    [...] blog post by game designer Raph Koster (of Ultima Online and now Metaplace fame) will tell you how! [...] Blog post do herní designérka Raph Koster (z Ultima Online a nyní Metaplace FAME) řeknou vám jak! [...] [...]

  6. Massively wrote on Massively napsal / a dne

    News items Have you ever wanted to walk through walls in MMO? Přehled novinek Už jste někdy chtěli chodit skrz zdi v MMO? How about telepathically sense the locations of all the good drops in a zone, or make invisible things very, very visible? Jak asi telepaticky smysl umístění všeho dobrého kapek v zóně, nebo neviditelné věci velmi, velmi viditelné? Ablog postby game designer Raph Koster (of Ultima Online and now Metaplace fame) will tell you how! Ablog postby herní designér Raph Koster (z Ultima Online a nyní Metaplace FAME) řeknou vám jak! Admittedly, Koster doesn’t really go into much detail. Připusťme, že Koster není opravdu jít do větší hloubky. Also, he’s trying to help developers avoid hacking problems, not giving inside secret tips to hackers. Také on se snaží pomoci vývojářům hacking vyhnout problémům, které nejsou důvodem uvnitř tajné tipy pro hackery. It’s Je to

  7. Làm th? Lam století? nào ?? não? hack m?t trò ch?i tr?c tuy?n MMORPG? zásek m? tro ch t? i tr? c tuy? n MMORPG? - Market4Gamer wrote on - Market4Gamer napsal / a dne

    [...] client does something. [...] Klient dělá něco. Thú v? Čt W? ?? ? Các b?n có th? CAC b? N spolufinancování století? tham kh?o thông tin chi ti?t : http://www.raphkoster.com/2008/04/17…o-hack-an-mmo/ [...] tham kh? o řemen tin chi ti? t: http://www.raphkoster.com/2008/04/17 ... zásek-o-an-MMO / [...]

  8. Creators of gaming widget app hope to make ALT-TAB obsolete - Big Download Blog wrote on Tvůrci hraní widget app naději, aby ALT-TAB zastaralé - Big Stáhnout blogu napsal / a dne

    [...] 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. [...] Snímkové rychlosti, a že to nebude spouštět anti-podvádět nástroje jako Punkbuster nebo World of Warcraft je Warden.The výrobek je v současné době ve své beta testovací fáze. You can sign up for the beta or update [...] Můžete se přihlásit do beta testování nebo aktualizaci [...]

  9. forums.twelvesands.com • View topic - How to hack an MMO wrote on forums.twelvesands.com • Zobrazit téma - Jak hackovat jeden MMO napsal / a dne

    [...] 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. [...] Některé dřívější diskusi zajímalo, proč na zemi Chtěl bych dát všechny uživatele požádat parametrů v URL.http: / / www.raphkoster.com/2008/04/17/ho ... ck-an-mmo/If jste přihlášeni do hry, můžete navštívit v podstatě jakékoli zóně jen manipulaci s URL. If [...] Pokud [...]

  10. Raph's Website » How to hack an MMO wrote on RAPH webových stránek »Jak hackovat jeden MMO napsal / a dne

    [...] 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 [...] [...] Jak hackovat jeden MMO 17. dubna 2008 (Navštívené 5387 krát) Tags: podvádění, everquest, hacking, zákony on-line svět design, VW design, VW tech, WoW [...]

  11. Gameguard. Gameguard. - Page 4 - AionSource.com wrote on - Strana 4 - AionSource.com napsal / a dne

    [...] spawn location…) into the client. [...] Podhoubí umístění ...) na straně klienta. 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 [...] Raph Koster, jak je rád připomněl, PPL, hra klient "je v rukou nepřítele": pokaždé, když dev offloads operaci na klientovi, aby bylo možné zachránit CPU cyklů pro AI [...]

Reader Comments Reader Comments
  1. Todd said on Todd řekl / a dne

    In EQ, the way this manifested was every mob in the zone was sent to the client. V EQ, že tento způsob se projevuje byl každý mob v pásmu poslal ke klientovi. This meant a hack could make a minimap that showed every mob. To znamená, hack, mohla by se ukázalo, že každých minimap Mob. You could see repops at a distance. Repops jste mohli vidět na dálku. But wait, it gets worse. Ale počkejte, to zhorší. You could also see everything they carried. Můžete také vidět vše, co na palubě. So you could cherry-pick the good loot in advance. Takže jste mohli třešeň-vybrat dobrý prachy předem.

    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. Přesto je problém, ale ještě srazit spoustu údajů, ale mohli jste nikdy vidět vše, co bylo plnění, pouze jejich wielded položky (a to je zobrazen graficky) a někdy i kdyby byly výkonu světelného zdroje.

  2. Kriss said on Kriss řekl / a dne

    Yup, all good and so hard to get people to understand these facts. JJ, všechno dobré, a tak těžké dostat lidi k pochopení těchto skutečností. Players are always, “But its on a computer what are you lazy? Hráči jsou vždy ", ale na jeho počítači, co jste líní? just make cheating impossible!” Prostě se podvádění nemožné! "

    Personally I’ve pretty much come down to the idea that an audit type system is the only thing that makes sense. Osobně jsem dost daleko přijít na myšlenku, že jeden typ auditu systému je jediná věc, která dává smysl.

    Which is more of a social fix. Což je více sociální fix. Don’t try and make cheating impossible, just make it detectable. Nesnažte a podvádění nemožné, jen aby byl prokázán. This is easier and cheaper. To je jednodušší a levnější.

    Don’t even try and detect it in real time. Nepoužívejte ani vyzkoušet a zjistit, že v reálném čase. Just take replays and audit them for cheats at a later date should people complain or due to obvious triggers. Jen si replaye a auditu z nich pro Kódy později by si lidé stěžují, nebo kvůli zjevné spouští. Again easier and cheaper. Opět jednodušší a levnější.

    Make the response to cheats more of a social slap on the wrist. Přesvědčte se o reakci na podvádí více o sociálním náhle zápěstí. 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). Neberte si to vážně, prostě fantastický nimi dolů odnášet body, výhry, ponížení atd. Je jich nikdy nedává smysl, aby i odnášet jejich účtu (pokud máte v plánu prodávat nový).

    Apart from anything else trying to build a world where you can’t do anything wrong is a bit dull. Bez ohledu na cokoli jiného se snaží budovat svět, kde si nemůže udělat nic špatného, je trochu nezáživný.

    I’ve been toying with the idea of removing the need for much of a central server. Byl jsem koketování s myšlenkou, že odstraní potřebu pro mnoho z centrálního serveru. Turning it more into a central audit system that solidifies when necessary the otherwise shared hallucination. Soustružení, že více do centrálního systému auditu tuhne, že pokud je to nutné, jinak sdílené halucinace. 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. Většina lidí nejsou podvádí po všem a jak dlouho budete mít plány vrátit zpět a vrátit zpět akce, jsem přesvědčena, můžete odejít s peer to peer výměny dat. Much of the auditing can even be done client side, with clients flagging other clients as suspicious. Mnohé z toho, že audit může být dokonce prováděno na straně klienta, s klienty označujete jako ostatním klientům podezřelé.

    The total client side cpu power will always dwarf the server side. Celková straně klienta, cpu moc bude vždy trpaslík straně serveru.

    It just takes some clever game design. Je to trvá několik chytrou hru design.

  3. BuschnicK said on BuschnicK řekl / a dne

    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. Pro mě poté, co hrají hru tak, jak je určeno pro awhile, je meta-hra o hackování a automatizaci, je mnohem zajímavější než v původní hře. Programmers, by definition, are keen on automating boring, repetitous and dumb tasks. Programátoři, podle definice, mají zájem o automatizaci nudné, repetitous a hloupých úkolů. This unfortunately describes 75% of most online game gameplay. To bohužel popisuje 75% nejvíce online hraní hry. The one who endures the boredom longer and spends the most time in the game gets the biggest rewards. Ten kdo vytrvá v nudě déle a tráví většinu času ve hře, dostane největší odměny.
    So how do you prevent cheating? Tak jak se vám zabrání podvádění? Reward actual skill over forbearance, make the core gameplay interesting enough so players will feel they are missing out if they are cheating. Odměnit skutečné dovednosti v průběhu trpělivost, aby se základní hře dost zajímavé, takže hráči budou cítit, že se pohřešuje, jestli jsou podvádění. No one sends a bot to see a movie for him… Nikdo vysílá bot se podívat na nějaký film pro něj ...
    Also, make the interface of the game as streamlined as possible. Také, aby rozhraní hry jako zjednodušeny, jak je to možné. Lots of the hacks/cheats are actually workarounds for shortcomings in the interface. Hodně se hacks / Triky jsou skutečně k řešení nedostatků v rozhraní.

    Then again, one of my clients is http://www.zynamics.com so I’m kinda biased Pak opět jeden z mých klientů je http://www.zynamics.com tak jsem trochu neobjektivní ;-)

    Anyways, good post - kind regards, Tak jako tak, dobré místo - jde o druh,

    Sören

  4. Shalkis said on Shalkis řekl / a dne

    A small note: FPS games have performed a lot of culling, starting with Quake. A malá poznámka: FPS her nechat provést hodně porážka, a to počínaje Quake. ID used a concept called a vismap, or a visibility map. ID použit koncept tzv. vismap, nebo mapu viditelnosti. Basically, the map designer calculated in advance which parts of the map are visible from each location. V podstate na mapě návrhář předem vypočtené v které části mapy jsou viditelné z každého místa. However, the main reason for calculating vismaps was not to deter cheaters, but to speed up rendering. Avšak hlavním důvodem pro výpočet vismaps nebylo odradit podvodníci, ale pro urychlení vykreslování. 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. Neexistuje žádná důvod tvrdit, že zeď, která je činí pět chodeb a sedmi pokojích daleko od sebe, protože neexistuje žádný způsob, jak můžete vidět. 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. Všechny server potřeba udělat, bylo dát vismap na nové využití a zkontrolujte, zda hráči byli v oblastech, které nemohly být viděn ostatními hráči.

  5. Mox said on MOX řekl / a dne

    As Raph says, people move very fast in FPS games. Jak RAPH říká, že lidé velmi rychle pohybovat v FPS her. What may be invisible in one frame may become visible in the next, and in the high-stakes Quake 3 Arena world, frames matter . Co může být neviditelný, v jednom snímku může být viditelné v příštím, a high-sázky Quake 3 Arena svět, rámy záležitost. Also, you have to consider the worst-case scenario. Také musíte vzít v úvahu worst-case ". 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. Udržet věci a rychle reagovat, když vás nevidí někdo nepomůže, když všichni hráči ve hře jsou ve stejné místnosti, tryskání se na sebe navzájem.

    Static items can be filtered properly, however. Statické položky mohou být filtrovány správně, ovšem. For example, all the weapon and ammo pick-ups. Například všechny zbraně a munice vyzvednout-upů. The server doesn’t need to tell you what they are up to until your client is in danger of seeing them. Tento server nemusí říct, co jsou až do vašeho klienta je v nich vidí nebezpečí.

    Interesting thing about the resource-collection example that Raph uses: contrast LotRO and WoW craft collection with SWG craft collection. Zajímavá věc, o zdroje sbírky-příklad, který používá RAPH: kontrast LotRO WoW a řemesel kolekce stálé pracovní skupiny s řemeslnou sbírku.

  6. Raph said on RAPH řekl / a dne
    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. Přesto je problém, ale ještě srazit spoustu údajů, ale mohli jste nikdy vidět vše, co bylo plnění, pouze jejich wielded položky (a to je zobrazen graficky) a někdy i kdyby byly výkonu světelného zdroje.

    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. Jsem skoro pozitivní, že jsem kdysi viděl hack klient, který ukázal, že obsah její davy 'kapky, a že později se přeorientovali na ne tření kapky do mob byl zabit. It may have been during the beta, though. To může být v průběhu beta, ačkoli. (We were at Origin then, and someone on the UO2 team was analyzing the packet stream? I don’t quite recall). (Byli jsme tedy v zemi původu, a někdo na UO2 tým byl analýzu paketu proud? Nemám dost připomínají).

    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. Pro mě poté, co hrají hru tak, jak je určeno pro awhile, je meta-hra o hackování a automatizaci, je mnohem zajímavější než v původní hře. Programmers, by definition, are keen on automating boring, repetitous and dumb tasks. Programátoři, podle definice, mají zájem o automatizaci nudné, repetitous a hloupých úkolů.

    Designers shouldn’t be. Návrháři by být neměl.

    A small note: FPS games have performed a lot of culling, starting with Quake. A malá poznámka: FPS her nechat provést hodně porážka, a to počínaje Quake. ID used a concept called a vismap, or a visibility map. ID použit koncept tzv. vismap, nebo mapu viditelnosti. Basically, the map designer calculated in advance which parts of the map are visible from each location. V podstate na mapě návrhář předem vypočtené v které části mapy jsou viditelné z každého místa. However, the main reason for calculating vismaps was not to deter cheaters, but to speed up rendering. Avšak hlavním důvodem pro výpočet vismaps nebylo odradit podvodníci, ale pro urychlení vykreslování. 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. Neexistuje žádná důvod tvrdit, že zeď, která je činí pět chodeb a sedmi pokojích daleko od sebe, protože neexistuje žádný způsob, jak můžete vidět. 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. Všechny server potřeba udělat, bylo dát vismap na nové využití a zkontrolujte, zda hráči byli v oblastech, které nemohly být viděn ostatními hráči.

    Right, good point. Správně, dobrý bod. I said: Řekl jsem:

    Even on the client, we do culling, so that we don’t draw everything in the dataset the client knows about. Dokonce i na klientovi, co děláme porážka, takže nemáme nic vyvodit vše, co je v datech klienta ví. 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. V FPS, ty se obvykle nemůže udělat hodně Server-Side utracení - všichni na mapě je "viditelný" na klienta, protože všichni jsou v pohybu tak rychle, že nemůžete skutečně dělat žádnou linii pohledu porážka na serveru.

    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. V případě toho, co jste s popisem - vismaps a jiné formy bloku je porážkou, že ne všechny užitečné pro odrazení podvádění, protože "všichni hráči, že záležitost", kteří se chcete provozovat zásek proti stejně. :)

    I know you know this, but for the sake of others reading the thread: Vím, že víš, ale kvůli jiné čtení závitu:

    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). Na cestě do přemýšlet o je to - máte statickou datový soubor (mapa) a dynamické, rychle pohybující datový soubor (objekty jako hráči, pick-upy, náboje).

    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. Tato mapa je pre-cache, což znamená, že klient zná všechny jeho - to může učinit automaps pokud chce, může říct, že ty nejlepší cesty, může to hack, vědy a techniky. But it can also optimize what to render. Ale je možné také optimalizovat, co činí.

    The dynamic stuff has the potential to move very fast, so the server tells you where all of it is at any time. Dynamický tak má potenciál pohybovat velmi rychle, takže server vám řekne, kde vše je v každém okamžiku. After all, it might round a corner, or you might round a corner. Po tom všem, mohlo by se za roh, nebo byste za roh. This doesn’t mean the client is rendering it, but it does mean it knows about it. To neznamená, že klient je renderování, ale to neznamená, že o tom ví. That is why I put “visible” in quotes. To je také důvod, proč jsem to "viditelné" v uvozovkách.

    The renderer then does render culling, which is decide which items to draw. Tento renderer se tedy vydá porážka, která se rozhodne, které položky k remíze. 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. A hacker může změnit způsob, jakým tak činí, a vzhledem ke skutečnosti, že klient ví, kde všichni jsou, může dělat věci, jako je tomu osnova je na hud, vás "vidět" skrz zdi. Or autoaim at them, lining up the shot before they come out from behind the wall. Autoaim nebo se na ně, obklad do rána, než si vyjít zpoza zdi.

    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. Něco jako vismap nebude složité dynamické porážkou; nikoli, to říká, "to je v podstatě v jiné budově" nebo "to je v podstatě na druhém konci dlouhé chodby zákruty" - neexistuje žádný způsob, jak pro ostatní chlápek přijde do viditelnost v jakémkoliv rozumném časovém období. So the map gets chopped up into network update areas. Takže mapy sekaných dostane do sítě aktualizace oblastech. “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. "Když v místnost, řekni mi něco o pokoj B dynamické věci, ale není pokoj C věci." To je v podstatě stejná jako EQ nejsou ti asi tak v příštím zóny, atd.

    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. Jediným řešením je celková dělat linii pohledu sítě utracení, ale to je tak CPU-intenzivní, a také by si vyžádalo kolo-výlet na server, který umožňuje pomalé nemožně. Most MMOs settle for radial network culling. Většina MMOs usadit na síti radiální utracení.

  7. Richard Bartle said on Richard Bartle řekl / a dne

    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> tak Dynamičnost má potenciál pohybovat velmi rychle, takže server vám řekne, kde vše je kdykoliv

    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. Je možné zaslat tuto informaci v zašifrované podobě, ale pouze poslat dešifrovací klíč, kdy klient má nárok na ni. It doesn’t have to be heavy duty encryption, just enough to make trying every key in a split second impractical. Nemusí to být těžká nákladní šifrování, prostě stačí, aby se snaží každý klíč v zlomek sekundy nepraktické.

    I first saw this proposed on MUD-DEV, but haven’t seen it used in action. Poprvé jsem to viděla na navrhované MUD-dev, ale neviděli ji používají v akci. I suspect that even a single UDP exchange with the server may introduce too much lag. Mám podezření, že dokonce i jeden jediný UDP výměna se serverem mohou zavést příliš zaostávat. Using something similar for precached client-side material ought to be viable, though. Používáme něčím podobným pro precached client-boční materiál by měl být životaschopný, ačkoli. The decryption algorithm may be in the hands of the enemy, but that doesn’t mean the decryption key has to be. V dešifrovací algoritmus může být v rukou nepřítele, ale to neznamená, že dešifrovací klíč má být.

    Richard

  8. Raph said on RAPH řekl / a dne

    Very true — I had forgotten that came up on MUD-Dev, actually. Velmi pravda - neměl zapomínat na to, že jsem přišel o MUD-dev, skutečně. But yes, a token exchange of hashes or keys in classic key exchange style could be done. Ale ano, token výměnu klíčů hashe nebo v klasickém stylu klíč výměna by mohla být hotová.

    I don’t think that for real-time apps an on-the-fly key exchange is practical — the roundtrip time could be too much. Nemyslím si, že pro real-time aplikace on-k-plout klíč je výměna praktických - časové roundtrip se mohla být příliš mnoho. But it’s worth exploring in the fashion you suggest. Ale to stojí za to prozkoumat, do módy, který naznačuješ.

  9. Shalkis said on Shalkis řekl / a dne

    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. A vismap nemůže bránit sledování hráč, který se právě chystá spustit do místnosti jste, ale to může být překážkou pro server, ze ti, že on zvedl důležitý powerup z předchozích místnosti.

    That decryption-keys-sent-on-demand sounds interesting. To klíče-dešifrování-zaslána-on-demand zní zajímavě. However, the preloaded encrypted packet needs to be padded to a predetermined size and it’s transmission time needs to be randomized. Nicméně, předinstalovaný šifrované paket potřebuje být vycpaný až do předem stanovené velikosti, a to vysílacího času musí být náhodný výběr. While you may not be able to decode the contents, the act of transmitting encrypted data can be telling in itself. I když nemusí být schopen dekódovat obsah, akt předávání šifrovaných dat může být sám o sobě říká. 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. Pokud jste vždy obdrží paket od určité velikosti 2 sekundy před drakem se zdá, že budete brzy naučí se schovat, pokud se to stane.

  10. Spaz said on Spaz řekl / a dne

    These are serious problems now, but will they not eventually go away as bandwidth and server hardware get better? Jedná se o závažné problémy, ale bude jim nebudou nakonec odejde jako šířka pásma a serverového hardwaru lépe?

    Do you think that the demands of things we want to do are growing faster or slower than the abilities of the physical infrastructure? Myslíte si, že i ty, co chceme dělat rostou rychleji nebo pomaleji, než o schopnosti fyzické infrastruktury?

  11. Michael Chui said on Michael Ču řekl / a dne

    These are serious problems now, but will they not eventually go away as bandwidth and server hardware get better? Jedná se o závažné problémy, ale bude jim nebudou nakonec odejde jako šířka pásma a serverového hardwaru lépe?

    They can, but most of these improvements are being put to use in driving bigger and better features, rather than locking down security. Mohou, ale většina z těchto zlepšení jsou nasazeny ve větší a lepší jízdní vlastnosti, spíše než stanoví bezpečnostní zamykání. It’sa resource allocation thing, and security doesn’t make you any money. Je to věc, alokaci zdrojů a bezpečnosti, neznamená, že vám nějaké peníze. It just keeps you from losing too much. Prostě vás drží od ztrácí příliš mnoho.

    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.” Všimněte si, jak každý Navrhované řešení se dosud mlčky argument "To není málo úsilí." A každý, zranitelnost pochází, "To je lepší zážitek."

  12. Steven "PlayNoEvil" Davis said on Steven "PlayNoEvil" Davis řekl / a dne

    The other option is to pre-load multiple data sets or assets and then simply point to the right one when needed. Druhou možností je pre-nahrát více dat, nebo majetek, a pak prostě poukazují na to, kde je to nutné.

    In many cases you can stop tampering by using a keyed hash function (or MAC) instead of encryption. V mnoha případech můžete zastavit neoprávněné manipulaci pomocí nedočkavý hašovací funkce (nebo MAC) namísto šifrování. 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). To má výhodu, že server může "napálit", a ne kontrola MAC kód všech době (shodou okolností, jsem jeden z těchto kódování právě teď).

  13. Swift Voyager said on Swift Voyager řekl na

    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. Můj osobní maxima při psaní obchodní software pro vnitřní použití přes LAN nebo Intranet: Můžete se pokusit opice-důkaz vašeho software, ale stále je opice opice.

    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”. Měli jsme velké aplikace určená pro vnitřní použití, a jelikož jsme kontrolované veškeré aspekty, které používají, mohli bychom se svévolným prohlášením typu "Tato stránka vyžaduje MS Internet Explorer verze xx nebo vyšší" nebo "na rozlišení obrazovky, které xxxxx xxxxx nebo vyšší, jsou povinni prohlížet tuto stránku ". It saved a lot of time in testing and customizing. Je uložen spoustu času při testování a přizpůsobení. Later, someone got the bright idea that certain outside clients and vendors should have access. Později se někdo dostal nápad, že některé světlé mimo klienty a prodejci by měli mít přístup. “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. A to není ani začít se dostat do prostoru otevřeného přístupu veřejnosti, kde se lidé chtějí záměrně snaží zlomit si svůj software jen pro zábavu. I can’t imagine having to handle that kind of problem without having full time people on staff who are dedicated experts. Neumím si představit, že k manipulaci s druh problému, aniž by lidé na plný úvazek na zaměstnance, kteří se věnují odborníci. What a nightmare. To je noční můra.

  14. Shalkis said on Shalkis řekl / a dne

    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. A to není ani začít se dostat do prostoru otevřeného přístupu veřejnosti, kde se lidé chtějí záměrně snaží zlomit si svůj software jen pro zábavu. I can’t imagine having to handle that kind of problem without having full time people on staff who are dedicated experts. Neumím si představit, že k manipulaci s druh problému, aniž by lidé na plný úvazek na zaměstnance, kteří se věnují odborníci. What a nightmare. To je noční můra.

    Security in general does require a specific mindset . Bezpečnost obecně nevyžaduje specifický způsob myšlení. 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. Musíte udržet ptáte: "Jak to může být subverted?" A "Co jsem mohl udělat škody s tím?" Jakmile se dostanete do této mentalitě, vše ostatní vyplývá.

  15. Mox said on MOX řekl / a dne

    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. Pokud jde o posílání zašifrovaných dat na klienta spekulativně, které mají být rozšifrována pouze tehdy, když se stane to vhodné, zdá se mi, že to může být užitečné cache potenciálně relevantní údaje o klientovi. For example, the stealther problem in Dark Age of Camelot. Například, stealther problém v 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). 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 those too. Pretty funny.

    This went away pretty early, possibly even pre-Kunark but I can’t quite remember now.

    And fwiw, I never ran the program but some good friends did.

  19. Eolirin said on

    Raph…

    That’s twice now. :P

  20. Ola Fosheim Grøstad said on

    Richard: It doesn’t have to be heavy duty encryption, just enough to make trying every key in a split second impractical.

    There is no reason to not use heavy-duty encryption on the client side, but I suppose it could be heavy for the server for real time data. However, you might get away with just encrypting the most vital information. For instance if you set up compression streams then you might separate IDs into it’s own stream and only encrypt that stream. (Separating information into their own streams tends to give better compression ratios, so it makes sense to do it for two reasons..). If you have say 20 clients subscribing to the same area you get away with spending 5% of the alloted time per client on compression, which might make it an acceptable overhead….
    *shrugs*

  21. Raph said on

    Eolirin,

    Fine. :P I fixed it.

  22. Raph said on

    Ola,

    Actually, it’s usually the client load of decryption that has been an issue, in the past anyway.

  23. Solok said on

    Cool topic. I’m curious, what are some of the ways the server know’s that my client, and not another, is sending the data? What prevents my neighbor from impersonating my client and telling the server I’m doing something I’m not?

  24. Eolirin said on

    Raph, I and the English language thank you. :)

  25. Ola Fosheim Grøstad said on

    Raph, you need to push a lot of data for that to be a problem. Here is a random page which suggests that cryptos takes less than 100 cycles per byte. A modern CPU can do billions of cycles per second…

    You might be thinking of public key encryption? Authentication rather than pure symetric encryption? Like SSL? I still think the se