아마도 다들 아시는 내용이리라 믿습니다만, 혹시나해서 그냥 정리해봅니다.

아시다시피 온라인 게임은 서버프로그램과 클라이언트프로그램으로 이루어집니다. 서버 프로그램은 서비스사에서 구입한 서버에서 돌리는 프로그램이며, 클라이언트 프로그램은 우리가 다운받아서 사용하는 프로그램입니다. 이중 프리서버라 함은, 서비스사에서 돌리는 서버 프로그램에 상당하는 기능을 해주는 프로그램을 말합니다. 그런데 이게 크게는 두 가지 종류가 있습니다.


1. 자작 프리서버 프로그램

클라이언트에서 나가는 패킷을 잘 분석하면, 어느정도의 동작범위를 알 수 있게 됩니다. 예컨데 내  캐릭터의 HP가 360만큼 차는 순간 서버에서 클라이언트로 A라는 패킷과 360이라는 패킷이 날아왔다. 라고 한다면? 아 A는 HP를 회복시킨다는 뜻이고 그 바로 뒤에 오는건 360 이라는 HP의 양을 말하는 거구나. 라고 알 수 있죠. ( 실제로 이딴식으로 간단하지는 않습니다만 ^^;; )

클라이언트가 서버와 주고받는 모든 신호들을 잡아내서 그 모든 신호들이 갖는 의미를 파악하게 된다면, 적어도 클라이언트에서 무엇을 보여주기 위해서 서버에서 어떤 신호를 보내야 하는지는 알 수 있게 되는거죠. 그렇다면 여기에서 자작 프리서버 프로그램을 만들게 되는 겁니다.

문제는 대부분의 경우 오가는 패킷은 암호화가 되어 있어서 이 암호화를 뚫어야하며, 단순히 이 패킷만 가지고는 알 수 없는 부분들이 상당히 많다는 것입니다. 예컨데 제가 몹을 ' 때린다 ' 라는 동작을 클라이언트에서 지시하면, 클라이언트는 서버에게 ' 플레이어가 바로 앞에 있는 몹을 때렸어요 ' 라는 신호를 보냅니다. 이때 서버에서는 캐릭터가 가진 다양한 수치들을 계산하여 결과값을 도출하고 ' 야, 데미지가 180 나왔다. ' 라는 신호를 클라이언트로 보내줍니다. 그럼 클라이언트는 ' 몹의 피가 180 닳았어요 ' 라고 플레이어에게 보여주죠.

하지만 이때 계산공식이 모호합니다. (힘*3)+(무기의 데미지 랜덤값*7)+(레벨*0.3) 이라는 공식에 따라서 180 이라는 값이 나온건지, (민첩*7)+(무기의 데미지 랜덤값*7) 이라는 공식을 거쳐서 180이라는 값이 나온건지 모릅니다. 이 계산에 필요한 공식은 서버에서만 가지고 있고, 클라이언트는 결과값만을 통보받아 표시해주기 때문입니다.

따라서 자작 프리서버 프로그램은 허술할 수 밖에 없습니다. 기껏해야 걷는 것이나 때리는 동작 흉내내기 정도에 불과한 경우가 대부분이며, 이런 자작 프리서버 프로그램으로는 게임을 한다고 말하기 민망할 정도의 ' 서버프로그램 어설프게 에뮬레이팅 하기 ' 에 불과한 것이죠.



2. 유출된 서버 프로그램

뮤와 라그나로크가 대표적입니다만, 개발사에서 만든 실제의 서버 프로그램이 유출되는 경우입니다. 만약 바이너리만 유출된다면 클라이언트를 업데이트하고 패킷 교환 시의 암호화 공식을 바꾸는 것만으로도 간단하게 무력화되어버립니다. 그러나 아마도 뮤와 라그나로크는 소스째로 유출되었던 것 같아요. 제가 짐작하기로는 중국진출 과정에서 중국의 유능한 해커들을 얕보아서 뚫렸거나, 중국 서비스사 측의 내부 직원이 빼돌린 것 같습니다만 ..

아무튼 이건 퍼펙트한 버전이기 때문에 완벽하게 게임을 돌릴 수 있습니다. 소스까지 유출된 경우 서버에서 몇 가지 바꾼다고해도 어지간한 플머라면 무엇을 어떻게 바꿨는지 눈치까기도 쉽기 때문에 업데이트까지도 지원이 가능합니다. ( 그렇다고 얘를 왕창 바꿔버리면 게임 내용 자체가 바뀌기 쉬우므로 아비규환이 연출됩니다. )

한마디로 최악의 사태라고 할 수 있겠네요. ^^;;




3. 그렇다면 게임메카에서 언급한 버전은?

저도 수차례 속았습니다만, 게임메카에서는 언제나 이런 소식은 참으로 발빠르게 물어오더군요. 어딘가에서 걸어다니는 것만 가능한 자작버전의 프리서버를 만들면 이걸 가져다가 ' 유출된 버전으로 추정되는 !! ' 식으로 기사를 써서 내보냅니다. 지난 리니지2 프리서버 때도 자작버전을 오버해서 보도했었고, 이전에도 몇번 그러한 사례가 있었습니다.

저는 블리자드의 내부 보안이 결코 허술하지 않다고 생각합니다. 따라서 유출된 버전의 서버 프로그램이 돌아가는 것이라고 생각지도 않습니다. 아울러 게임메카는 이미 이전에도 몇번에 걸쳐서 구라를 쳤던 경력이 있습니다. 따라서 이 기사는 아마도 자작버전의 프리서버를 게임메카에서 오바해서 소개하는 것이라고 생각됩니다.