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
Raph 코스터의 개인 웹사이트에 오신 것을 환영합니다 : MMOs, 게임, 쓰기, 미술, 음악, 책.

How to hack an MMO MMO를 해킹하는 방법

April 17th, 2008 2008년 4월 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. , 그리고 최근의 블로그에 해킹을 감안할 때, 디컴파일 이브 온라인은 클라이언트의 최근 소식을 부여, 끝났어 가고 좋은 시간 같았 일부는 가상 세계를 얻는 방법 중 해킹.

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. 흥미로운 것은 물론, 모든 해킹 사실에 대해 전혀 이야기하지 않습니다 가상 세계를 해킹하려고하는 것입니다; 그들이 대신 세계로 여러분의 창문이다 클라이언트, 그리고 귀하의 Waldo, 네 뜻의 공격 그게 세상에서 일어나는 운동을 제어할 수있습니다. And that’s because… 그 이유는 ...

The client is in the hands of the enemy. 클라이언트는 적의 수중에있다.

The Laws of Online World Design - 온라인 세계 디자인의 법칙

You’ve probably heard that before — I wasn’t the first one to say it, but it constantly gets misattributed to me. 당신은 아마 그 전에는 - 내가 말을 처음 들었 하나 아니었지만 끊임없이 저한 테에게 misattributed. That particular phrasing may have originated with Kelton Flinn , but I am sure many of us came up with it independently. 특정 말씨 켈튼 플린 만들어 냈을지도 모르지만, 분명 우리의 많은 오전 그걸로 독립적으로 내놓았다.

The first thing to realize is that encryption of the data stream isn’t going to stop anyone serious . 아무도 심각한 그만두지 않을 실현하는 첫 번째 것은 데이터 스트림의 암호화입니다.

Here’s the diagrammatic way to look at it. 여기 봐 방식의 도표.

  • You generate data. 데이터를 생성할 수있습니다.
  • You put it in a packet. 당신은 패킷에 넣어.
  • You encrypt the packet. 당신은 패킷을 암호화합니다.
  • You send it over the wire. 당신은 철조망 너머로 보내주시기 바랍니다.
  • It gets to a user’s computer. 그것은 사용자의 컴퓨터에 도달했다.
  • The client reads the encrypted packet. 클라이언트는 암호화된 패킷을 읽습니다.
  • The client decrypts the packet. 클라이언트가 패킷을 해독합니다.
  • The client does something. 클라이언트가 뭔가 않습니다.

Really, anything after “it gets to a user’s computer” is in the hands of the enemy. 정말, 아무 뒤 "그것은 사용자의 컴퓨터"에 도달하면 적군의 손에있다. So that means that you are encrypting the packets, handing the user a decrypter called a client , and thinking that encryption helps. 그래서 그건 당신이, decrypter 클라이언트라는 사용자에게 건네주었고, 패킷을 암호화하고 암호화가 생각하는 의미 도움이됩니다.

The hackers can choose to do is read the incoming packets out of client memory after decryption, instead of sniffing the stream directly. 해커 할 클라이언트 메모리의 해독 이후 들어오는 패킷을 읽고, 대신 스트림 킁킁의 직접 선택할 수있습니다. But really, all this does is raise the bar a bit on the hacking skills required. 하지만 실제로는,이 모든 술집 해킹 기술을 필요에 약간의 인상은 않습니다.

To top it off, encryption can be slow, if you’re talking a real-time sort of situation. Real - Time을 정렬하면 상황의 말을하는지, 암호화, 속도가 느려질 수있습니다 그만 가기. You may not want to spend the time in encrypting if you need a fast response. 빠른 응답이 필요한 경우 암호화에 시간을 보내고 싶어하지 않을 수도있습니다.

Packet stream sniffing: getting more info than you should 패킷 스트림을 킁킁 : 당신보다 점점 더 많은 정보를해야한다

This one was a problem early on in EverQuest and is still an issue in many FPSes. 에버퀘스트에서이 문제를 조기에 여전히 많은 FPSes에 문제가있다. In short, you should not rely on the client to filter information. 간단히 말해서, 당신이 필터 정보를 클라이언트에 의존해서는 안된다. Assume that anything that comes down the wire is visible to them. 아래 아무것도 가정 철사가 나오면 그것들을 볼 수있습니다. We speak of “culling” the data that is sent down, basically reducing the set. 우리가 그 데이터를 "학살"의 아래로 보내집니다, 기본적으로 세트를 줄여 말한다. Even on the client, we do culling, so that we don’t draw everything in the dataset the client knows about. 클라이언트 심지어에, 우리는 그렇게 우리는 고객에 대해 알고있는 모든 데이터에 학살 무승부하지 않습니다. 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 EQ, the way this manifested was every mob in the zone was sent to the client. EQ 설정에서, 방법이 적하 목록의 모든 폭도였다 영역 클라이언트로 전송했다. This meant a hack could make a minimap that showed every mob. 이것은 모든 폭도 보여주는 minimap을 해킹할 수있다. You could see repops at a distance. 당신은 거리에서 repops 볼 수있습니다. But wait, it gets worse. 하지만, 더 나쁜건 기다. You could also see everything they carried . 당신은 그들이 수행이 모든 것을 볼 수있습니다. So you could cherry-pick the good loot in advance. 그래서 당신은 체리 - 사전에 좋은 전리품을 선택하십시오.

Packet filtering: dropping stuff you shouldn’t 패킷 필터링 : 물건을 포기하면 안됩니다

Sometimes the server tells you things you just don’t want to hear. 가끔은 서버 방금 당신이이 일을 듣고 싶지 않아. One such thing might be “no, you can’t go there.” This is the classic wall hack. "아니, 당신이 거기로 가야 하나 그런 일은있을 수 없다."이것은 고전적인 벽에 해킹이다. Usually, you move, and do a local client-side collision check. 일반적으로, 당신은, 이동 및 로컬 클라이언트 - 측면 충돌을 확인합니다. 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). 또한 운동을 위해 서버로, 서버의 여부 그래서 거기 (모든 후, 당신이있습니다 - 공포 - 갈 수 있는지 확인 요청을 보낼 수) 클라이언트가 충돌하지 않는 수표를 해킹했다. The server will send back a “no, you are still over here” message, resulting in being rubberbanded back to where you were. 서버가 "안돼, 넌 아직 메시지가 여기에"이상, 그 결과 다시 보낼 것이다 너라면 rubberbanded 고향이다.

Unless you simply ignore that message, and merrily keep going. 만약 당신이 단순히, 그리고 그 메시지를 무시하고 계속 즐겁게했다. This will allow you to explore all of the static dataset that your client has loaded. 이렇게하면 귀하의 클라이언트가 로드된 모든 정적 데이터 세트의 탐험하실 수있습니다. 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. 언제든지 새로은 바로 이곳에서, 물론, 멀리 개체를 스트리밍으로 인해 서버가 걱정이다, 당신은 움직이지 않았다는 표시되지 않습니다.

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. 감성적 이었어 경우 엔지니어와 클라이언트에 의존하기만하면 저절로 떨어진 후 매우 강력한 패킷 수 장난스런 말했다. 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. 당신은 큰 장점이 사용할 수있는 일반적인 방법은 사실 우리가 흔히 클라이언트 세미 - 움직임에 대해 자율되게 할에 의존하고있다. 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. 당신은 클라이언트에 훨씬 더 세분과 방향에 서버보다 훨씬 더 빠른 변화와 함께 할 수 주위에 이동할 수있습니다. Instead of tracking your every move, we instead subsample it, basically. 대신, 우리는 대신 subsample, 기본적으로 당신의 일거수 일투족을 추적했다. 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. 우리와 같은 단순한 통계에 의존하는 "당신이 지금까지 그렇게 빨리는"부정 행위 사실 여부에 상관없이 귀하의 움직임에 있는지 확인을 이동할 수없습니다.

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. 그러나 만약 당신이 뭔가와 충돌해 다시 반송,하지만 그때 벽 '의 반대편에 위치로 이동, 다음 운동을 허용 매개 변수 내에서, 그리고 당신은 벽을 통해 이동 할 수있습니다 버릴 까봐 걱정했다.

Packet altering: changing what you hear 패킷 변경 : 어떤 소리가 들리 변경

Alternatively, you could actually alter the packet before it gets interpreted. 전에 해석을 얻습니다 아니면, 당신은 실제로 패킷을 변경할 수있습니다. This basically lets you get the client to dance to your tune. 이것은 기본적으로 귀하의 선율에 춤을 추는 클라이언트를 가져올 수있습니다. Maybe you want a nice big waypoint on top of your quest target. 어쩌면 당신 탐구 대상 가기에 좋은 큰 중간점 싶어요. 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. 아마 당신은 영역 클라이언트를 위해 당신 어디에 접근할 수없습니다 투어를하게 정상적으로 읽어들이는 무슨 생각을 바꾸고 싶어.

Representation altering: changing what you see 대표 변경 : 당신은 무엇을보고 변경

Messing with the data stream isn’t the only thing within your power. 데이터 스트림 당신의 힘을 내에서 유일하게 덤비는 것은 아니다. Lots of folks in FPSes did things to change the visibility level of what was around them. FPSes에서 무엇이 그들을 주위에 있던 많은 사람의 빈도 수준을 변경하는 일들을 했어. Replace all the walls with transparent textures, and you will have a much better idea of where everyone is. 투명 텍스처를 가진 모든 벽 바꾸기, 당신은 어디에 모두의 더 나은 생각한다. Replace small meshes with big ones, or camo-colored textures with bright pink ones, and everything gets easier to spot. 덩치 큰 것들, 혹은 위장 작은 메쉬를 바꾸기 - 밝은 핑크 컬러 것들과 질감, 그리고 모든 자리를 쉽게 얻습니다.

Triggering 트리거링

Of course, why give yourself the work? 물론 이죠, 왜 스스로 일을주지? Just have the client automatically send back responses instantly when it gets a particular packet or message. 그냥 때 자동으로 즉시 특정 패킷이나 메시지를 다시 보내 클라이언트의 반응을 얻습니다. This form of automated triggers is, of course, a key element in building bots. 자동화의이 형태, 물론입니다 트리거, 빌딩 봇에서 핵심적인 요소입니다. In an FPS, autoaim is an example. 한 매 있음, autoaim 예입니다. The accuracy of something happening with a trigger is far far higher than what it is when a mere human is at the wheel. 뭔가의 정확성 방아쇠 일어나는 먼 인간에 불과 때 바퀴에서 무엇보다 높은 수준이다.

Spamming 스팸

A lot of times, the servers aren’t hardened properly against receiving more commands in a given span of time than they expect. 그들이 기대하는 시간보다 더 많은 서버가 제대로 주어진 시간의 명령을 받고 상대로 중앙선 더 굳어진되지 않습니다. 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. 클라이언트 cooldown 타이머 손잡이를 알립니다 이런 실수의 본보기가 될 수 없으며하면 무시할 수있습니다 cooldowns 업스트림 제어할 수있습니다.

The Warden and other tricks 소장님과 다른 트릭

Of course, there’s countermeasures. 물론, 거기에 대응. 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. 는 대책을 블리자드에 의해 스팀 (그리고, 그 문제를) 사용하는 별도의 프로세스를 모니터링하고 주요 애플 리케이션이 엉망이되고 여부를 실행하는 것입니다. 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: 이 한국에서뿐만 아니라 일반적인 관행이고, 이미 그 Punkbuster, 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. # 때 실행중인 프로그램이있습니다 모니터는 컴퓨터의 랜덤 액세스 메모리 (RAM) 및 / 또는 CPU가 프로세스를 무단으로 제 3 자에게 오브 워크 래프트의 세계와 동시에 프로그램을 실행합니다. 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. ""여기로 사용하여 타사 소프트웨어를 제한없이 포함한 "Addon"또는 "모드"로 정의되어야한다 타사의 프로그램을 무단으로 그 눈보라의 단독 결정에는 : (i) 모든 종류의 부정 행위를 촉진 또는있게; (ii) 미국 오브 워크 래프트의 인터페이스를 수정하거나, 환경, 그리고 전 세계 해킹 / 어떤 방법 안에 경험이나 눈보라에 의해 명시적으로 허가된 사용자 수있습니다; 또는 (iii) 도청, "광산,"또는 다른 방법을 통해 수집하는 정보 또는 프로그램입니다. 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. 그 프로그램을 무단으로 타사의 프로그램, 눈보라가있습니다 (1) 소통 정보를 다시 눈보라 제한없이 계정 이름을 포함하여, 타사의 프로그램에 대한 세부 정보를 무단으로 감지, 그리고 시간과 날짜는 무단으로 제 3 자에게 프로그램을 감지하면 이벤트에 검출됐다; 또는 사전 통보없이 본 계약의 제 6 언더파 및 / 또는 (b) 운동을 어느 하나 또는 모두의 권리를 사용자에게있습니다.

How does it do this? 이 일을 어떻게합니까? Well, actually, by using many of the same techniques as described above . 음, 사실, 위에서 설명한 것과 동일한 기술을 많이 사용하여. Basically, it kind of hacks you . 기본적으로, 그것을 일종의 해킹을 당신의. It checks to see if stuff is running in WoW’s memory space. 물건의 WoW의 경우 메모리 공간에서 실행되어 있는지 확인합니다. 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). () titlebars 부정 프로그램 (도) 해시 해시 블랙리스트를 상대로 열려 있고 그 창 제목의 텍스트를 비교해서 어떤 윈도우의 제목 표시줄을 확인합니다. 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. 그리고 실제로도 블랙리스트에 자사에있다면 그 코드를 볼 수있는 몇 가지 검사를 실행하고 모든 프로그램의 코드를 확인합니다.

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. 말할 필요도없이, 소장님도 적군의 손에있다는; 비록 내가 당신을 이론적으로도 소장님이 그 자체, 또는 해킹 애플 리케이션은 소장, 그래서 호랑 확인 할 방법에 대해 전혀하지 않았을 그들이 허위 또는 서로 다른 정보를 표시합니다. At that point, it’s an arms race. 그 시점에서, 그것은 군비 경쟁.

There’s already programs to watch the Warden watching you , for example. 이미 예를 들어 당신이 지켜보고 소장님이 보는 프로그램. 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. 그리고 블리자드의 반응은 소장님의 다른 버전의 무리하게하는, 그래서 그것을 찾기 위해 열심히하고 시계 였어;과 - 놀랍게도, 또한 물건을 암호화하여 다시 보냈습니다. Of course, you could go back to square one, packet sniff, and filter out the Warden reports… la di da. 물론, 당신은 다시 원점으로 돌아 하나, 패킷 스니핑, 갈 수와 소장님이 보고서를 걸러내 ... 라 디 다. Or make the cheat app polymorphic itself. 아니면 속임수하게 애플 리케이션 자체를 다형. Or… 아니면 ...

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. 그들보다 비록 보면, 애플 리케이션을 읽는 동안 창 titlebars 놀라니 그리고 아무도 말하지 않은 사실은 그들의 사생활을 값을 모두 아주 Orwellian -하지만 선수들과 경기를 덜 환경 가치가 일치하지 않는 것 같아 그것에 대해 더 많은 속임수나 발견있습니다 약간의 편집증이 보인다. Then again, what if someone hacked a popular WoW fansite or guide site and stuck a banned string in the titlebar? 그럼 다시, 만약 누군가가 인기의 WoW Fansite 또는 가이드 사이트를 해킹해서 금지 문자열은 titlebar에 붙어? Could happen… 그럴 수 ...

In the end, you just cannot trust the client . 결국, 당신은 그저 클라이언트 믿을 수 없다. Everything Warden protects against fundamentally needs to be guarded against on the 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. 웹 세상에서 당신이 방금 브라우저 전혀 귀신아 수 가정해야 할 것 - 모든 후, 약 5 분 안에 간단한 웹 브라우저를 쓸 수있습니다. And in the future, we may well have to design our games with this sort of capability in mind. 현재와 미래에, 우리는 잘 염두에두고 이런 종류의 능력을 우리의 게임을 디자인 할 수있습니다.

Take the example of the small herb to harvest. 수확의 작은 약초의 예를 보자. The hacks described would do things like auto-detect that the herb is around, auto-collect it, pick it out of a crowded area. 자동차는 해킹과 같은 일을 할 것이라고 - 약초 주변, 자동차 - 혼잡한 지역의 골라야 수집 탐지 설명했다. The “game” lies in it being hard to find or see. "게임"하드 찾지 못하거나보고되고있다. In the security world, this is called “security through obscurity,” and it’s generally assumed to be a waste of time. 보안 업계에서는이 "보안 모호을 통해,"라고하며 일반적으로 시간의 낭비로 간주. (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. (이 또한 우리가 왜 약초처럼 경기 중에 무언가의 건물의 질문 - 찾는 올립니다.) 안전한 방법은 클라이언트에 대해 알지도 못하는 것입니다. Have real herbs and fake herbs use the exact same client-side representation in every way. 진짜 약초와 똑같은 가짜 약초를 갖고있는 모든 방법으로 클라이언트 - 측면 표현을 사용합니다. Only the server knows the difference. 그 차이를 아는 유일한 서버.

We don’t generally do this because, well, we want to have static data and dynamic data we stream. 왜냐면, 음, 우리는 우리의 정적 데이터와 동적 데이터 스트림을 갖고 싶어 우리가 일반적으로이 일을하지 않습니다. 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. 우리는 전 세계 대부분의 precache 수 있기를, 그리고 그것을 변경할 수있는 물건들이 널 데리러 수있는 약초로만 이동 가능한 스트림을 원하는 것처럼. It’s cheaper in bandwidth, by a lot; it offers better performance; you get much faster load times. 그것은 대역폭에서 많이 의해 값싸고; 더 나은 성능을 제공한다; 네가 훨씬 빠르게로드 번.

In other words, we create these vulnerabilities for ourselves because, well, we want to trust the client. 왜냐면, 음, 우리는 클라이언트가 신뢰하고 싶지 즉, 우리 자신에 대한 이러한 취약점을 만들 수있습니다.

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. 결국, 가장 해킹 - 무료 가상 세계를 완전히 오픈 소스 클라이언트, 공공 및 개방형 프로토콜과 완전히 하나 말하면, 클라이언트를 통해 속임수도없고 시도 어떤 무거운 짐을 할 가능성이 높다. 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. 사실, 와우 자체가이쪽으로 공식적으로 인정받지 플러그 - 이는 기존의 해킹에 의해 수행했던 것들을 상당히 많이 할 수 있도록 기능을 오픈 시스템의 UI와 매우 큰 보폭으로 촬영했다. 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. 때문에 벙어리 때 터미널이 될 가능성이 안전한 이유는 간단합니다, 당신은 서버에서 영리하다 강제로하는 -과 서버 많은 안전하게 쉽습니다.

The challenges, however, are not small if you want to really go whole hog and make everything driven by the server. 만약 당신이 정말로 철저히 가서는 모든 서버에서 구동하게하려는 도전하지만, 작은하지 않습니다. Everything would need to be streamed. 다 필요 스트리밍된다. Everything sent to the server would need to be verified. 모든 서버를 검증해야 할 것이라고했다. 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). 게임에서 게임 디자이너들이 모두 정비공으로 비주얼 에선 아무것도에 의존하지 않고 버릴 것들을인지 과정의 (예를 들어, 속도에 관련된 시간 ""좋은 정비사, 이후되지 않을 것이라고 가정해야 할 뭔가가 있으니까 보낸 것이 많은 것들을 클라이언트에게, 인스턴트 반응 시간을 제공하는) offloaded 수있다. It would all make for a far more asynchronous world. 그것은 모두 비동기식 훨씬 더 세상을 보이게 될 것입니다.

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. 하지만 그 디자인을 제약도 완전히 취소할 수 있는지 확인하여 게임 플레이보다는 똑똑 게임 플레이를 설계할 수있는쪽으로 밀어 물건입니다, 헛소리, 중요한 물건을 밖에서가는 clicky - 뭔가에 충분히 빠르지 clicky 따기.

A pipe-dream? 담뱃대 - 꿈? Probably. 아마도. 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. 우리 사랑은 우리 약초 - 사냥, 우리의 큰 그래픽, 우리 lagless 클라이언트 - 측면 움직임, 그리고 우리 내면에 꿈틀대는 아주 나쁜 - 엉덩이에만 해커가 바람을 피우고, 대신 근처에 누구나 아는 빌어먹을을 교환 옅보는 기꺼이 것으로 보인다. ;)

*

[?] [?]
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. 당신의 RSS 2.0 피드를 통해이 항목에 어떤 응답을 따를 수있습니다. 답변은 현재 폐쇄되어 있지만 자신의 사이트에서 trackback를하실 수있습니다.

44 Responses to “How to hack an MMO” 44 답변은 "어떻게"MMO 해킹에

Jump to reader comments » | Leave a reply » 독자 의견»로 이동 | 답장»남겨주세요

Trackbacks & Pingbacks 트랙백 & Pingbacks
  1. Pinging The Services (How To Guidelines) wrote on 서비스 (방법 가이드) Pinging 4 월 :

    to the library and experienced the Dewey Decimal System. 도서관에와 듀이 십진 시스템을 경험했다. He looked up all of his sources online and did a lot of cut-and-paste for his papers. 그는 그의 모든 소스 온라인의 모습과 많이 잘라의 자신의 논문에 대한 -와 - 붙여넣으 않았다. For some reason, this was acceptable to his teachers…. 어떤 이유로 들어,이 자신의 교사를 허용했다 .... 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. 나는 내가 찐따 graHow 동안에 MMOGiven은 최근 블로그에 해킹, 또한, 디컴파일 이브 온라인 클라이언트의 최근 소식을 부여, 끝났어 가고 좋은 시간 같았 처음 일을하고있을 거라고 생각 몇 가지 방법에의 가상 세계는 해킹을 얻습니다. The interesting thing, of course, is that all the hacks 흥미로운 것은 물론, 그 모든 해킹

  2. COPE: James Wallis levels with you » Koster-munger wrote on 12.1 : 제임스 월리스 수준을 당신과 함께»코스터 - 멍거는 4 월

    [...] Raph Koster gives you a brief tutorial on how to hack MMOs. [...] Raph 코스터 당신 MMOs 해킹 방법에 대한 간략한 자습서를 제공합니다. [...] [...]

  3. KVET.CH wrote on KVET.CH 4 월

    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 / 에모리 4월 18Raph의 웹 사이트»방법, 예를에 대한 MMOThere 이미 프로그램을 보면서, 소장님이 시계를 해킹했다. 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. 그리고 블리자드의 반응은 소장님의 다른 버전의 무리하게하는, 그래서 그것을 찾기 위해 열심히하고 시계 였어;과 - 놀랍게도, 또한 물건을 암호화하여 다시 보냈습니다. Of

  4. Where social software should go next — Habitat’s lessons (Leapfroglog) wrote on 소셜 소프트웨어의 옆에는 어디 가야 겠어요 - 해비타트의 교훈 (Leapfroglog) 4월

    [...] Cheating might be of less concern to social software than to games (although there are exceptions, take Digg for example). [...] 부정 (물론 예외도있다, 예를 들면) Digg에 걸릴 우려의 게임을보다 덜 사회적 소프트웨어가 될 수도있습니다. For those interested in more about this, Raph Koster recently posted an elaborate examination of hacking and cheating in MMOGs. 그 이것에 대해 더 많은 관심을 들어, 최근 Raph 코스터 MMOGs에서 해킹과 부정의 정교한 시험을했다. [...] [...]

  5. MMO Clerks » Koster writes “how to hack an MMO” wrote on MMO 사무원»코스터 "어떻게"4 월 30 일, 오후 4시 59분 2008

    [...] blog post by game designer Raph Koster (of Ultima Online and now Metaplace fame) will tell you how! [...] 게임 디자이너 Raph 코스터 울티마 (온라인과 지금의 명성에 의해 Metaplace 블로그 게시물) 방법을 알려주겠다! [...] [...]

  6. Massively wrote on 대규모 년 4 월

    News items Have you ever wanted to walk through walls in MMO? 뉴스를 품목 혹시 MMO에 벽을 뚫고 다닐 싶었던 적 있니? How about telepathically sense the locations of all the good drops in a zone, or make invisible things very, very visible? 어떻게 telepathically 보이지 않는 것들에 대해 매우, 매우 눈에 띄는 영역, 또는 만들에있는 모든 좋은 상품의 위치 감각? Ablog postby game designer Raph Koster (of Ultima Online and now Metaplace fame) will tell you how! 게임 디자이너 Raph 코스터 Ablog postby 울티마 (온라인과 지금의 명성을 Metaplace) 방법을 알려주겠다! Admittedly, Koster doesn’t really go into much detail. 보면, 코스터별로 세부로 이동하지 않습니다. Also, he’s trying to help developers avoid hacking problems, not giving inside secret tips to hackers. 또한, 그는 개발자들이 문제를 해킹, 해커에게 비밀을 피할 수 있도록 도움말을 안으로주지 않을려고하고 있어요. It’s 이건

  7. Làm th? 램 일까? nào ?? 이도?? hack m?t trò ch?i tr?c tuy?n MMORPG?해킹? T는 trò 채널? 노력?에 c tuy? n MMORPG? - Market4Gamer wrote on - Market4Gamer 7 월

    [...] client does something. [...] 클라이언트 뭔가 않습니다. Thú v? 목 브이? ?? ?? Các b?n có th? CAC는 넌? n 공동 일까? tham kh?o thông tin chi ti?t : http://www.raphkoster.com/2008/04/17…o-hack-an-mmo/ [...] Tham 사의 KH? O를 끈팬티 깡통 치 TI는? 마 : http://www.raphkoster.com/2008/04/17 ... 오 - 해킹 - - MMO / [...]

  8. Creators of gaming widget app hope to make ALT-TAB obsolete - Big Download Blog wrote on 위젯 애플 리케이션의 게임 크리에이터 ALT - Tab을 무용지물로 - 빅 다운로드 블로그 있도록 7 월 17 일

    [...] 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 안티가 실행되지 않습니다 - Punkbuster 또는 월드 오브 워크 래프트의 Warden.The 제품의 부정 행위와 같은 도구는 현재 베타 테스트 단계에있는 것이다. You can sign up for the beta or update [...] 당신은 베타 버전을 업데이 트하거나 가입할 수 [...]

  9. forums.twelvesands.com • View topic - How to hack an MMO wrote on forums.twelvesands.com • 주제보기 - 7 월 17 일, 오후 10시 8분

    [...] 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. 어떤 논의가 이전 궁금 [...] 그래서 제가 URL.http의 모든 사용자가 요청 매개 변수 처넣었어 지구상에서 : / / www.raphkoster.com/2008/04/17/ho ... ck-an-mmo/If 당신이 게임에 로그인할, 기본적으로 당신은 그냥 URL을 조작하여 언제 영역을 방문할 수있습니다. If [...] 만약 [...]

  10. Raph's Website » How to hack an MMO wrote on Raph의 웹 사이트»어떻게 7 월 18 일, 오후 5시 50분

    [...] 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 [...] [...] 어떻게 MMO 4 월 17 일 해킹 2008 (방문 객수 5387 번) 태그 : 부정, 에버퀘스트, 해킹, 온라인 세계 디자인의 법률, 폭스바겐 디자인, 폭스바겐 기술, 와우 [...]

  11. Gameguard. Gameguard. - Page 4 - AionSource.com wrote on - 페이지 4 - AionSource.com :

    [...] spawn location…) into the 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 [...] 상기의 잘봤어 코스터 Raph 인실로, 게임 클라이언트는 "적군"의 손 안에있습니다 : offloads dev의 클라이언트에 수술, 인공 지능에 대해 CPU 사이클을 위해 [...] 구하려고 할 때마다

Reader Comments 독자의 덧글
  1. Todd said on 토드 4 월

    In EQ, the way this manifested was every mob in the zone was sent to the client. EQ 설정에서, 방법이 적하 목록의 모든 폭도였다 영역 클라이언트로 전송했다. This meant a hack could make a minimap that showed every mob. 이것은 모든 폭도 보여주는 minimap을 해킹할 수있다. You could see repops at a distance. 당신은 거리에서 repops 볼 수있습니다. But wait, it gets worse. 하지만, 더 나쁜건 기다. You could also see everything they carried. 당신은 그들이 수행이 모든 것을 볼 수있습니다. So you could cherry-pick the good loot in advance. 그래서 당신은 체리 - 사전에 좋은 전리품을 선택하십시오.

    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. 여전히 문제가있다, 그들은 여전히 톤의 데이터를 보내지만, 그들은 오로지 그들을 휘둘렀다 항목 (및 단지 표시 그래픽)과 가끔 광원 만약 그들이 가지고 있었다 들고 있었다 모든 것을 볼 수 없다.

  2. Kriss said on 크리스

    Yup, all good and so hard to get people to understand these facts. 그래, 그래서 모든 사람들이 이러한 사실을 이해하도록 해 딱딱하다. Players are always, “But its on a computer what are you lazy? 선수들은 언제나 "하지만 컴퓨터에 뭐가있는 게으른? just make cheating impossible!” 그냥 부정 불가능하다! "

    Personally I’ve pretty much come down to the idea that an audit type system is the only thing that makes sense. 개인적으로 내가 꽤 많은 유형의 시스템은 그런 점에서 감사하게 생각 유일하게 내려 왔어요.

    Which is more of a social fix. 이는 사회적 수정 프로그램의 더이다. Don’t try and make cheating impossible, just make it detectable. 따라하지 마세요과 부정 불가능하다, 그냥 감지할 수 있도록했다. This is easier and cheaper. 이 용이하고 저렴합니다.

    Don’t even try and detect it in real time. 시도조차하지 마와 실시간으로 감지합니다. Just take replays and audit them for cheats at a later date should people complain or due to obvious triggers. 그냥 그들에게 감사를 속인다 재연 타고 나중에 명확로 인해 사람들이 불평을한다 또는 트리거합니다. Again easier and cheaper. 또 쉽고 저렴합니다.

    Make the response to cheats more of a social slap on the wrist. 속임수나 사회를 때리고 손목에 더 많은 응답을 확인합니다. 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). 심각하게, 그냥 그들을 때리는 점을 받아 데려가려고하지 마, 경품들을 모욕 등 그것도 자신의 계정에 데려가려고 말이 결코 (아니라면 그들에게 새로운 하나를 팔) 계획이다.

    Apart from anything else trying to build a world where you can’t do anything wrong is a bit dull. 좀 둔한 만사 제쳐놓고 어디 아무것도 할 수가 없어 세상을 만들려고에서 잘못이다.

    I’ve been toying with the idea of removing the need for much of a central server. 전 중앙 서버에 대한 필요성을 제거하는 정도의 아이디어를 가지고 노는 걸지도 있었어. Turning it more into a central audit system that solidifies when necessary the otherwise shared hallucination. 그 때 더 필요한 다른 공유 환각 굳은 중앙 감사 체제로 선회하고있다. 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. 하지 않은만큼 이후 계획을 롤백하고 난 당신을 멀리 피어 피어와 데이터를 교환받을 수있다는 자신감있어 대부분의 사람들은 사기꾼의 행동을 취소했습니다. Much of the auditing can even be done client side, with clients flagging other clients as suspicious. 대단히 감사의도, 고객은 다른 고객과의 플래깅 의심으로 클라이언트측 작업을 수행할 수있습니다.

    The total client side cpu power will always dwarf the server side. 전체 클라이언트 측면의 CPU 전력을 항상 서버측 난쟁이 것이다.

    It just takes some clever game design. 그냥 어떤 영리한 게임 디자인 걸립니다.

  3. BuschnicK said on BuschnicK 4

    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. 날 위해서는 원래 게임보다 훨씬 더 흥미, 당분간 의도대로 경기 후 메타 - 해킹 및 자동화의 게임이다. Programmers, by definition, are keen on automating boring, repetitous and dumb tasks. 프로그래머, 정의, 의해, 그리고 벙어리 repetitous 지루한 작업을 자동화에 촉각을 곤두세우고있다. This unfortunately describes 75% of most online game gameplay. 불행히도 대부분의 온라인 게임이 게임의 75 %를 설명합니다. The one who endures the boredom longer and spends the most time in the game gets the biggest rewards. 한 사람 이상은 권태를 영속과 경기에서 가장 많은 시간을 보내는 가장 큰 보상을 얻습니다.
    So how do you prevent cheating? 그래서 내가 어떻게하면 부정 행위를 방지합니까? Reward actual skill over forbearance, make the core gameplay interesting enough so players will feel they are missing out if they are cheating. , 재미있는 게임 플레이의 핵심 정도로 선수들은 만약 그들이 부정 행위를 놓치게됩니다 인내 이상하게 느낄 것이다 실제 기술 리워드. No one sends a bot to see a movie for him… 아무도 그를 위해 영화를보고 로봇을 보냅니다 ...
    Also, make the interface of the game as streamlined as possible. 또한, 게임의 인터페이스를 최대한 간소하게했다. Lots of the hacks/cheats are actually workarounds for shortcomings in the interface. the 해킹 넘치게 / 속임수나 실제로 인터페이스의 단점에 대한 해결 방법입니다.

    Then again, one of my clients is http://www.zynamics.com so I’m kinda biased 다시 내 고객이 하나의 http://www.zynamics.com 그래서 난 일종의 편견이에요 ;-)

    Anyways, good post - kind regards, 어쨌든, 좋은 게시물 - 종류, 안부

    Sören 소렌

  4. Shalkis said on Shalkis 4

    A small note: FPS games have performed a lot of culling, starting with Quake. 작은 메모 : 매 게임, 퀘이크 시작으로 학살의 많은 수행했습니다. ID used a concept called a vismap, or a visibility map. ID가 vismap, 또는 가시지도라는 개념을 사용합니다. Basically, the map designer calculated in advance which parts of the map are visible from each location. 기본적으로,지도 디자이너를 사전에지도의 어느 부분을 계산 각 위치에서 볼 수있습니다. However, the main reason for calculating vismaps was not to deter cheaters, but to speed up rendering. 그러나, vismaps을 계산하는 주된 이유는 아니었지만 사기꾼을 억제하고 렌더링 속도를합니다. 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. 왜냐하면 당신이 그것을 볼 수있는 방법은 없어요 그 다섯 복도 벽과 당신에게서 떨어져 7 개의 객실 렌더링하는 이유가 무엇이든지 아니에요. 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. 모든 서버하게 할 필요가 새를 사용하고 있는지 확인하려면 넣어 vismap 플레이어 분야에서 다른 선수에 의해 볼 수 없었었다.

  5. Mox said on Mox 4

    As Raph says, people move very fast in FPS games. Raph로 적혀있어, 사람들이 매 경기에서 매우 빠르게 이동합니다. What may be invisible in one frame may become visible in the next, and in the high-stakes Quake 3 Arena world, frames matter . 한 프레임에서 눈에 보이지 않는 무엇이 될 수있을 수있는 다음과 세계에서 가장 높은 - 내기 퀘이크 3 아레나, 프레임에 관한 문제이다. Also, you have to consider the worst-case scenario. 또한, 당신은 최악의 시나리오를 고려해야만 - 사건. 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. 일이 정말 빠르게 유지하면 누구나 게임을 할 때 모든 선수가 같은 방에있습니다, 멀리 서로 도움이되지 않습니다 폭팔 반응 볼 수없습니다.

    Static items can be filtered properly, however. 정적 항목을 적절하게, 그러나 필터링할 수있습니다. For example, all the weapon and ammo pick-ups. 예를 들어, 모든 무기와 탄약을 골라 - 업. The server doesn’t need to tell you what they are up to until your client is in danger of seeing them. 서버 때까지 클라이언트들을 보는 위험에 무엇을 그들에게 달려 있으며 말할 필요가 없다.

    Interesting thing about the resource-collection example that Raph uses: contrast LotRO and WoW craft collection with SWG craft collection. 리소스 - 컬렉션 예를에 대해 흥미로운 점은 Raph를 사용한다 : 명암 LotRO과 공예 컬렉션의 WoW SWG 공예 컬렉션.

  6. Raph said on Raph 4
    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. 여전히 문제가있다, 그들은 여전히 톤의 데이터를 보내지만, 그들은 오로지 그들을 휘둘렀다 항목 (및 단지 표시 그래픽)과 가끔 광원 만약 그들이 가지고 있었다 들고 있었다 모든 것을 볼 수 없다.

    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. 난 거의 그 동안 난 단 한번도 그 폭도 '상품의 내용을 보여 클라이언트, 해킹을 봤고 나중에 그것 상품까지 폭도들이 살해당한 산란하지로 전환 긍정적입니다. It may have been during the beta, though. 그것은 베타 기간 동안, 비록되었을 수도있습니다. (We were at Origin then, and someone on the UO2 team was analyzing the packet stream? I don’t quite recall). (우리는 제작 당시, 그리고 UO2 팀에 누군가 패킷 스트림 분석했다? 내가 정말 기억하지 않는 것).

    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. 날 위해서는 원래 게임보다 훨씬 더 흥미, 당분간 의도대로 경기 후 메타 - 해킹 및 자동화의 게임이다. Programmers, by definition, are keen on automating boring, repetitous and dumb tasks. 프로그래머, 정의, 의해, 그리고 벙어리 repetitous 지루한 작업을 자동화에 촉각을 곤두세우고있다.

    Designers shouldn’t be. 디자이너해서는 안됩니다.

    A small note: FPS games have performed a lot of culling, starting with Quake. 작은 메모 : 매 게임, 퀘이크 시작으로 학살의 많은 수행했습니다. ID used a concept called a vismap, or a visibility map. ID가 vismap, 또는 가시지도라는 개념을 사용합니다. Basically, the map designer calculated in advance which parts of the map are visible from each location. 기본적으로,지도 디자이너를 사전에지도의 어느 부분을 계산 각 위치에서 볼 수있습니다. However, the main reason for calculating vismaps was not to deter cheaters, but to speed up rendering. 그러나, vismaps을 계산하는 주된 이유는 아니었지만 사기꾼을 억제하고 렌더링 속도를합니다. 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. 왜냐하면 당신이 그것을 볼 수있는 방법은 없어요 그 다섯 복도 벽과 당신에게서 떨어져 7 개의 객실 렌더링하는 이유가 무엇이든지 아니에요. 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. 모든 서버하게 할 필요가 새를 사용하고 있는지 확인하려면 넣어 vismap 플레이어 분야에서 다른 선수에 의해 볼 수 없었었다.

    Right, good point. 그래, 좋은 지적이야. I said: 고 :

    Even on the client, we do culling, so that we don’t draw everything in the dataset the client knows about. 클라이언트 심지어에, 우리는 그렇게 우리는 고객에 대해 알고있는 모든 데이터에 학살 무승부하지 않습니다. 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 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. 당신과 다른 형태의 블록을 학살 - vismaps 설명 하는건의 경우 모두 부정 행위 저지를 위해 모든 선수는 "그 문제는"당신과의 해킹할 어쨌든 작동하고 싶지는 도움이되지 않습니다. :)

    I know you know this, but for the sake of others reading the 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). 생각하는 방법이있다 - 정적 데이터 세트 (지도)와 동적, 신속하게 DataSet을 선수처럼 (개체, 픽업 트럭, 총알)으로 이동합니다.

    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. 지도를 미리 -, 그 클라이언트가 그것의 의미는 모든 걸 다 알고 캐시된 - automaps 원하는대로 만들 수있다면, 당신은 최고의 경로를 말할 수있는, 그것은 예술을 해킹할 수있습니다. But it can also optimize what to render. 하지만 그것도 어떤 렌더링을 최적화할 수있습니다.

    The dynamic stuff has the potential to move very fast, so the server tells you where all of it is at any time. 동적 물건, 그래서 서버가 어디에 그것을 모두 언제든지 당신에게 아주 빨리 움직일 가능성이있다. After all, it might round a corner, or you might round a corner. 결국, 그것은 앞이잖아 수도, 또는 당신이 앞이잖아 수도있습니다. This doesn’t mean the client is rendering it, but it does mean it knows about it. 이것은 클라이언트 렌더링 것은 아니다,하지만 그것에 대해 알고 뜻 이죠. That is why I put “visible” in quotes. 그래서 제가 "표시"를 따옴표에 들어가게된다.

    The renderer then does render culling, which is decide which items to draw. 다음은 렌더 무승부를 결정하는 항목입니다 학살, 렌더링 않습니다. 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. 해커, 물건을 렌더링하는 방법을 변경할 수 있으며 클라이언트는 사실 다들 어디, 무 같은 것들을 할 수있다는 걸 주어진 그들의 HUD는 계속해서 ""벽을 통과시키는 간략하게 볼 수있습니다. Or autoaim at them, lining up the shot before they come out from behind the wall. 아니면 그들을 autoaim, 그들이 벽 뒤에 줄을 서서 기다리는 장면에서 나오고있다.

    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. 복잡하고 역동적인 학살을 할하지 않는 vismap 비슷해; 대신에, 그것은 "이 사람은 기본적으로 다른 건물이"나 "twisty이 사람에있다는 기본적으로 긴 복도의 다른 쪽 끝을"- 거기에 대한 방법은 없다 다른 사람의 시간 어떠한 합리적인 기간 안에 가시로 오십시오. So the map gets chopped up into network update areas. 그래서지도는 네트워크의 업데이트 영역으로 처단을 얻습니다. “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. "방에 A 때, 방 B 조 역동적인 물건에 대해서가 아니라 물건 방을 C 말해봐."이것은 기본적으로 같은 EQ 설정으로 다음 영역 등에 물건에 대해 얘기 아니다

    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. 유일한 토털 솔루션 네트워크 학살의 라인을 할 광경이지만, 그는 CPU - 집중, 또한 둥근 - 서버에 여행은 매우 느리게 만드는 것이 필요합니다. Most MMOs settle for radial network culling. 대부분의 네트워크 MMOs 요골 학살에 대한 정착.

  7. Richard Bartle said on 리처드 Bartle 4

    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>의 역동적인 것들, 그래서 그것을 모두 언제든지 서버가 어디인지 알 수있는 잠재력을 가지고 매우 빨리 움직

    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. 그것은 암호화된 형태로이 정보를 보낼 수도 있지만 유일의 해독 키를 보낼 때 클라이언트는 그것을 볼 수있는 권리가있다. It doesn’t have to be heavy duty encryption, just enough to make trying every key in a split second impractical. 그것은 무거운 의무를 암호화되며, 단지 두 번째 모르시는 모든 핵심 충분 분할에 노력을해야하지 않습니다.

    I first saw this proposed on MUD-DEV, but haven’t seen it used in action. 내가 처음이 뻘밭에 제안된 - 보육학,하지만 그것을 행동에 사용된 본을 보지 못했어요. I suspect that even a single UDP exchange with the server may introduce too much lag. 그 서버는 하나의 UDP를 교환을 너무 많이 지연에도 소개 모른다고 의심하고있다. Using something similar for precached client-side material ought to be viable, though. 비록 클라이언트에 대한 비슷한 precached - 사이드 소재 반드시 사용 가능한되고있다. The decryption algorithm may be in the hands of the enemy, but that doesn’t mean the decryption key has to be. 암호 알고리즘은 적의 수중에있을 수있습니다,하지만 그것은 암호 해독 키가되고있는 것은 아닙니다.

    Richard 리처드

  8. Raph said on Raph 4

    Very true — I had forgotten that came up on MUD-Dev, actually. 매우 사실 - 난 그 진흙에 나타났 - 데브, 사실은 잊고 있었어요. But yes, a token exchange of hashes or keys in classic key exchange style could be done. 하지만 그래, 고전적인 스타일에 해시 키 교환이나 열쇠의 토큰 교환을 할 수있다.

    I don’t think that for real-time apps an on-the-fly key exchange is practical — the roundtrip time could be too much. 나는 Real - Time을 애플 리케이션에 - - 비행 키 교환을위한 실용적입니다 - 왕복 시간이 너무 많이있을 수 있다고 생각하지 않습니다. But it’s worth exploring in the fashion you suggest. 하지만 당신이 제안하는 패션에 탐구 가치가 있어요.

  9. Shalkis said on Shalkis 4

    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. 한 vismap 누가 막 네가있는 방 안으로 실행하는 방법은 선수를 추적하는 것을 방지할 수는 없지만, 그것은 그가 이전의 실에서 중요한보기 PowerUp를 들었고, 당신의 이야기에서 서버를 방지할 수있습니다.

    That decryption-keys-sent-on-demand sounds interesting. 해독 - 키 - -에 - 수요가 들리는 재미있는 보냈습니다. However, the preloaded encrypted packet needs to be padded to a predetermined size and it’s transmission time needs to be randomized. 그러나, 미리 미리 암호화된 패킷 크기가 필요하고 그것의 전송 시간 패딩 될 무작위해야합니다. While you may not be able to decode the contents, the act of transmitting encrypted data can be telling in itself. 동안의 내용을 해독하려고하지 못할 수도있습니다, 암호화된 데이터 전송의 행위 자체에 말할 수있습니다. 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. 만약 당신이 항상 2 초 전에는 용의가 나타납니다, 곧 그런 일이 일어날 때마다 숨기려하는 방법을 배우게 될거야 일정한 크기의 패킷을받을 수있습니다.

  10. Spaz said on 스파즈 4

    These are serious problems now, but will they not eventually go away as bandwidth and server hardware get better? 이러한 심각한 문제가 지금은 멀리 있지만 그들은 결국 대역폭 및 서버 하드웨어로 나아 갈 것인가?

    Do you think that the demands of things we want to do are growing faster or slower than the abilities of the physical infrastructure? 당신이 우리가 바라는 것들의 요구에 빠르게 성장 또는 물리적 인프라의 능력을보다 느린 생각하십니까?

  11. Michael Chui said on 마이클 Chui 4

    These are serious problems now, but will they not eventually go away as bandwidth and server hardware get better? 이러한 심각한 문제가 지금은 멀리 있지만 그들은 결국 대역폭 및 서버 하드웨어로 나아 갈 것인가?

    They can, but most of these improvements are being put to use in driving bigger and better features, rather than locking down security. 그들은 수 있지만, 이러한 개선의 가장 큰 및 더 나은 기능을 운전에 사용하는 보안보다는 폐쇄 넣어되고있다. It’sa resource allocation thing, and security doesn’t make you any money. 자원 배분 하느냐 것, 및 보안 언제든지 돈을 벌려고하지 않습니다. It just keeps you from losing too much. 그냥 너무 많이 잃는에서 당신을 유지합니다.

    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.” 공지 사항이 모든 것을 어떻게 제안 솔루션까지 많은 노력하지 않는 묵시적인 논쟁이 "있다."그리고 모든 취약점에서 유래, "이것은 더 나은 경험을합니다."

  12. Steven "PlayNoEvil" Davis said on 스티븐 "PlayNoEvil"데이비스는

    The other option is to pre-load multiple data sets or assets and then simply point to the right one when needed. 다른 옵션을 미리 - 오른쪽 한 필요할 때 여러 개의 데이터 세트 또는 자산 그리고 단순히 지점을 로드할 수있습니다.

    In many cases you can stop tampering by using a keyed hash function (or MAC) instead of encryption. 많은 경우에 (나 MAC) 암호화를 함부로 변경하는 대신 키가있는 해시 함수를 사용하여 중지할 수있습니다. 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). 이것은, 내가)이 바로 지금의 코딩을하고 있는데 이점은 서버가 ""와 (우연히는 MAC 코드는 모든 시간을 확인하지 속일 수있다.

  13. Swift Voyager said on 스위프트 보이저는 4

    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. 내 개인 Maxim은 LAN이나 인트라넷을 때 사용하기 위해 내부 비즈니스 소프트웨어 글 : 당신은 원숭이를 시도해 볼 수있습니다 - 원숭이 원숭이는 증거는 여전히 귀하의 소프트웨어지만.

    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”. 우리가 큰 애플 리케이션을 사용하는 내부 사용을 위해 설계 이후 우리의 모든 측면을 통제, 우리는 "이 사이트는"또는 "xxxxx는 의해 xxxxx는 화면 해상도 또는 그 이상은 MS의 인터넷 익스플로러 버전 XX 이상이 필요합니다과 같은 임의의 진술을 만들 수 "이 페이지를 볼 수있습니다. It saved a lot of time in testing and customizing. 테스트와 커스 터 마이징에 많은 시간을 구했어요. Later, someone got the bright idea that certain outside clients and vendors should have access. 나중에 누군가가 특정 외부 고객 및 공급 업체에 액세스할 수 있어야 밝은 생각이있어. “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. 그리고 심지어 열 공용 액세스의 지역에 사람들이 귀하의 소프트웨어를 끊으려고 일부러 그냥 재미로가는 거죠 얻을를 시작하지 않습니다. I can’t imagine having to handle that kind of problem without having full time people on staff who are dedicated experts. 전 직원을 풀타임으로 사람없이 헌신하는 사람은 전문가가 문제를 처리하는 데 그런 건 상상할 수 없어요. What a nightmare. 무슨 악몽.

  14. Shalkis said on Shalkis 4 월

    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. 그리고 심지어 열 공용 액세스의 지역에 사람들이 귀하의 소프트웨어를 끊으려고 일부러 그냥 재미로가는 거죠 얻을를 시작하지 않습니다. I can’t imagine having to handle that kind of problem without having full time people on staff who are dedicated experts. 전 직원을 풀타임으로 사람없이 헌신하는 사람은 전문가가 문제를 처리하는 데 그런 건 상상할 수 없어요. What a nightmare. 무슨 악몽.

    Security in general does require a specific mindset . 일반적인 보안에 구체적인 마인드가 필요 않습니다. 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. 당신 스스로에게 질문을 계속했습니다 : "subverted 어떻게 이런 일이있을 수 있습니까?"와 "무엇이 함께 할 수있는 손상을?"일단 당신이 그 마음에 들어가면, 모든 사람은 다음과 같습니다.

  15. Mox said on Mox 4 월

    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. 암호화된 데이터를 클라이언트에게 보내는 speculatively 존중과 함께있을 때만 해당되는 해독, 나야 그것 캐시 클라이언트에 잠재적으로 관련 데이터를 유용하게 쓸 수있는 것 같다. For example, the stealther problem in Dark Age of Camelot. 예를 들어, 다크 에이지 오브 카멜롯의에서이 문제 stealther. 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). 데이터의 전체 더미 There'sa 당신은 클라이언트에게 보낼 그걸 얻기 위해 적절하게, 사용자 정의 모양을 옵션, 눈에 보이는 장비 - MMO에 DAoC 같은 그래픽 모습 - 경주를 대표하지만 "에서 힌트를주고 싶지 않아요"필요 클라이언트가 이미 눈에 보이지 않는 암살자 근처까지 확실 클라이언트 (카멜롯 stealther 탐지, 대한 간단한 이진 시스템을 사용하는 등 stealther 감지있다면 그것은 완전히 살일걸요 않거 몰래)가 발견되지 않았습니다. 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?