모던 워페어 2 - 치트의 천국
치터스 파라다이스
치터스 파라다이스 – 바로 이렇게 4.5개월 동안의 게임 존재 기간 동안 게임이 된 악몽을 설명할 수 있습니다. 그 원인은 모두가 싫어하는 매치메이킹 시스템 IWNet으로, 이 시스템은 플레이어에게 완전한 무죄와 행동의 자유를 부여했습니다. 이것이 바로 치터들을 매료시킨 이유였습니다 – 다른 온라인 슈터들에서는 관리자(어드민)가 올 때까지만 맘껏 놀 수 있었거든요. 아니면 최소한 다른 플레이어들이 킥/밴을 위한 충분한 투표 수를 얻기 전까지 말이죠.
아시다시피, 모던 워페어 2에는 관리자도 투표도 없습니다. 불쌍한 플레이어는 서버를 떠나는 것 외에는 남은 게 없었습니다. 결국, 이렇게 익숙해졌고 치터가 나타나면 많은 사람들이 즉시 다른 로비를 찾으러 떠났습니다. 그러나 그 매혹적인 자유를 갈망하는 치터의 수는 기하급수적으로 증가했습니다. 심지어 VAC는 그들에게 전혀 장애물이 되지 않았습니다. 하지만 놀라운 일이 아닙니다, 왜냐하면 12월 15일에 BlackDove(상당히 유명한 치터 커뮤니티의 코더)가 발견한 취약점을 사용하여 VAC의 작동을 차단할 수 있다는 비디오를 유튜브에 올렸기 때문입니다.
BlackDove의 증거 비디오
그는 modernwarfail2.com 포털과의 인터뷰에서 반치트 프로그램을 비활성화하기 위한 해킹을 만들지 않을 것이라고 밝혔습니다. 왜냐하면 멀티플레이어를 죽이는 것은 그의 계획에 포함되지 않았기 때문입니다. “어떻게 반치트를 비활성화할 수 있었나요?”라는 질문에 BlackDove는 게임과 반치트 간의 나쁜 통합에 대한 무언가를 회피하는 식으로 이야기했습니다.
BlackDove가 약속을 지켰는지 아닌지는 이제 알 수 없지만 12월 28일에 첫 번째 VAC 비활성기가 등장했습니다. 이 이름에서 알 수 있듯이 반치트를 비활성화하는 데 사용되었습니다. 물론 ‘비활성화’라는 것이 다소 과장된 표현이지만 우리는 기술적 세부 사항에 깊이 들어가지 않겠습니다. 더 중요한 것은, 이것이 가짜가 아니라 실제로 작동했다는 사실입니다.
가장 첫 번째 퍼블릭 VAC 비활성기
이 프로그램이 출시된 이후로 치터의 수는 단순히 많아지지 않았습니다...
이전에 VAC가 일종의 장벽이었던 플레이어들은 자유를 느끼며 어떻게 되는지 시험해보기로 결정했습니다... 아마 쓸모없는 이야기겠지만, 치트는 마치 마약과 같습니다. 유명한 슬로건을 바꿔 말하자면 - “한 번 시도한 후, 지금도 치터입니다!” 그리고 여기서 기술 부족과는 상관없습니다.
Infinity Ward 자체가 기름을 끼얹었는데, 또다시 게으름과 전무후무한 서투름으로 그들을 비난할 수밖에 없었습니다. 게임 출시 몇 일 후, 사람들은 개발자 콘솔을 여는 방법을 발견했으며, 이는 멀티플레이어에서 엄청난 가능성을 열어주었습니다... Infinity Ward는 즉각적으로 대응했습니다: 그들은 여러 가지 수정 사항과 함께 그들이 말하기를 악명 높은 콘솔도 제거하는 패치를 발표했습니다.
Infinity Ward가 수익을 계산하고 기자들에게 미래에 대한 계획을 세우고 있을 때, 플레이어들은 게임 리소스를 뒤져서 콘솔이 여전히 살아있고, 그 콘솔을 잠금 해제하여 게임에서 전용 서버를 복원할 수 있다는 것을 발견했습니다! 물론, 여기서 Connect IP 기능은 테크노갓스가 약속한 바와 같이 아직 없었지만, 그럼에도 불구하고 콘솔은 꽤 재미있는 것들을 할 수 있었습니다.
비처럼 쏟아져 나오는 콘솔 언락커들과 그들의 도움으로 만들어진 팬 서버들이 생겨나기 시작했습니다. 낮은 중력에서 충분히 놀 수 있고, 무한 탄약으로 105mm 포탄을 발사하며 진정한 지옥을 만들 수 있는 서버들도 있었습니다. 라운드마다 그런 많은 점수를 받을 수 있는 서버도 있었으며, 이는 전체 프레스티지를 충분히 얻을 수 있는 점수였죠. 그리고 라운드 끝에 유의미한 경험치 손실로 끝나는 서버도 있었습니다... (Level-Down 서버에 대해서는 이미 언급했습니다).
하지만 아직 끝난 것은 아닙니다.
중요한 점은, 러시아(그게 중요합니다!) 코더인 파라보즈가 해적판에서 멀티플레이어로 플레이할 수 있는 방법을 찾았다는 것입니다. 해적판을 사용하여 라이센스 제품을 소유한 사람들과 함께 플레이할 수 있게 된 것이죠. 게임의 데모 버전인 Zero Gear를 통해 말이죠. 놀랍지 않나요?
어떻게 그럴 수 있었는지?
Zero Gear 폴더에서 모든 파일을 삭제하고, 그 자리에 모던 워페어 2 폴더의 내용을 복사했습니다. 그 후에 steamapi.dll을 패치한 것으로 교체하고... Zero Gear를 실행하면 실제로는 모던 워페어 2가 실행된 것입니다. Steam은 우리가 Zero Gear에 있다는 것을 알고 있었기 때문에, 우리는 인증을 통과했습니다... 또한 우리가 Steam의 의견으로 아케이드 레이싱 시뮬레이터인 Zero Gear에서 게임을 하고 있었기 때문에 VAC는 여기에 없었고 활성화되어 있지 않았습니다... VAC 비활성기를 사용하는 것조차 두려워한 사람들에게는 이제 손이 풀린 것이죠. 해적판에서의 치터는 완전히 안전해졌습니다.
제로 전쟁 2
VAC 비활성기, 콘솔, 해적판, 그리고 수만 명의 치터들. 분명히 올해의 실패였습니다.
리벤지
Infinity Ward는 Activision의 압박을 받고 더 이상 손을 놓고 있지 못하고 해결책을 찾기 시작했습니다. 어쩌면 그들은 전용 서버를 IWNet으로 교체하기로 한 결정에 대해 깊이 후회했을지도 모릅니다. 사실 그것은 콘솔 매치메이킹 시스템의 형편없는 패러디에 불과했으니까요. 하지만 돌아갈 길은 없었습니다. 아니, 돌이킬 수 있는 길은 있었지만, 전용 서버를 되찾는 것에 대해서는 아무도 듣고 싶어하지 않았습니다.
2010년 1월 상황은 극에 달했습니다..
우선 Infinity Ward는 게임 업데이트를 발표하여 scr_xpscale 변수를 사용할 수 없도록 차단했습니다. 이제, 서버에서 한 플레이어가 받을 수 있는 점수가 정해진 한도를 초과하는 경우(예: 50 대신 5000이 살해됨) 서버는 자동으로 꺼지며 모든 플레이어를, 호스트까지도, 메인 메뉴로 내보냈습니다. 즉, 이제 호스트는 게임 콘솔을 통해 scr_xpscale의 값을 변경할 수 없게 되었습니다. 이를 통해 Level-Down 서버와의 문제를 해결할 수 있었습니다. 또한 이제 금지된 계정으로는 더 이상 게임에 로그인할 수 없게 되었습니다. 이전에는 플레이어가 서버에 가입한 후 오류 메시지로 퇴출당하는 경우가 있었지만:
이제 게임은 단순히 메인 메뉴에서 충돌했습니다:
그리고 Valve는 또한 Steam 인증 시스템을 복잡하게 만들어 Zero Gear를 사용하여 멀티플레이어 게임 플레이가 불가능하도록 만들었습니다. 그리고 마지막으로, 주요 서버 IWNet는 이제 다른 버전의 클라이언트가 연결할 수 없도록 했습니다.
무료는 끝났습니다. 이제 지불해야 합니다.
이제 불법 복제자들은 서로 플레이할 수조차 없게 되었습니다.
또한 Valve는 반치트 프로그램의 작동 방식을 방해하기 위해 해커들이 사용하는 모든 알려진 취약점을 차단했습니다. 이로 인해 2월 중순 대규모 밴이 발생했습니다. 하지만 이것이 전부가 아닙니다: VAC는 이제 게임 실행 파일의 무결성을 확인하고 그 안의 모든 변경 사항을 추적하였습니다. 이제 게임 콘솔을 사용하는 것은 밴의 원인이 되었습니다. 팬 서버는 거의 사라졌습니다 - 누가 자신의 계정을 위험에 빠뜨리며 2-3일의 게임을 할까요?
두 번째 사건은, 아마도 치터들에게 진정한 두통이 되었을 매치메이킹 시스템의 변화였습니다. 흥미롭게도, 아직까지 이 경우에 대해 Infinity Ward에서 어떤 공식적인 설명도 제공된 바가 없습니다.
2월 19일, 많은 치트 포럼에는 서버 검색 문제에 대한 보고가 나타났습니다.
- 예전에는 어떤 모드를 선택하든지 곧바로 게임 서버로 옮겨졌어요! - 치터들은 패닉에 걸려 이렇게 말했습니다. - 지금은 19개의 게임 대신 1개도 안 나옵니다. 10-15분 후에야 겨우 어떤 서버로 옮겨지는데, %$#, 그곳은 치터들로 가득합니다!
정말 이게 무슨 %$#? 그리고 어떻게 작동하죠?
킬 대 사망 비율이 너무 높은 플레이어들은 자동으로 특별 그룹에 배정됩니다. 이 그룹에 있는 모든 플레이어는 다른 그룹의 플레이어와만 게임을 할 수 있습니다. 이곳에 있으면 일반 로비에 들어가기가 불가능해집니다.
이것이 바로 서버 검색이 오래 걸리는 이유입니다 – 이 그룹의 플레이어들은 IWNet에 접속해 있는 전체 플레이어 수에 비해 현저히 적습니다.
게임은 어떤 원칙에 의해 플레이어를 여기에 추가하나요? 예를 들어, 통계로 30,000킬과 1,000사망을 가지고 있다면, 당신은 aimbot 사용자 및 PRO 캠퍼들과 같은 그룹에 속하게 될 가능성이 있습니다. 물론 후자는 많지 않을 것 같지만요. 그렇게 가려면 정말 악마같은 캠퍼가 되어야 하니까요. 믿으세요, 정상적인 플레이어는 킬 대 사망 비율이 10을 초과하는 경우가 단 한 번도 없을 것입니다. 그러니까 이 점에 대해 걱정할 필요는 없습니다.
실험
새로운 시스템이 어떻게 작동하는지 더 잘 이해하기 위해, 저는 모던 워페어 2의 두 개의 키와 간단한 ‘Aimbot’ 기능을 가진 치트 및 ‘이시 계정’ 프로그램(게임 통계를 내보내고 가져오기 위한)을 필요로 하는 간단한 실험을 진행했습니다.
새로운 Steam 계정을 만들어 첫 번째 키를 활성화한 후, 치트를 켜고 게임에 들어갔습니다. 모드는 가장 ‘소란스러운’ ‘지상 전투’를 선택했습니다.
첫 번째 맵을 K/D 10:0으로 완료했습니다. 즉, 10킬과 0사망입니다. 서버 검색에 대해서는 아직 문제가 없었습니다(오류를 방지하기 위해 각 맵이 끝날 때마다 게임에서 나가고, 동기화를 기다린 후 다시 들어갔습니다).
두 번째 맵에서 저는 킬 수를 두 배로 늘려 K/D 20:0으로 게임을 마쳤습니다. 서버 검색에 문제가 없었습니다.
다음 맵에서는 킬과 사망의 차이를 크게 늘리기로 결정했습니다. 라운드를 K/D 60:6으로 끝냈습니다. 아직 상황은 변하지 않았고 – 서버 검색은 5초를 넘지 않았고, 여전히 19개의 게임을 찾았습니다.
네 번째 시도에서 저의 K/D는 70:3이었습니다.
그런데 바로 다음 시도에서, 어떤 게임 모드에 들어가려 하니 서버 검색에 문제가 생기기 시작했습니다(찾은 게임 수 – 19 대신 1). 검색하는데 7분이나 걸렸습니다. 마침내 Rust 맵에서 ‘모두 각자’ 모드가 시작되었습니다. 예상대로 해킹 서버였습니다. 여기에서는 7명의 플레이어가 있었고, 최소한 3명이 aimbot을 사용하고 있었습니다.
목표는 달성되었습니다: 총 K/D는 ~ 150:10이었습니다. 이러한 비율로 인해 우리는 제한된 접근 그룹에 배치되었습니다. 하지만 만약 당신이 라운드에서 150:10이나 그 근처 점수를 획득한다고 해서 반드시 저와 같은 그룹에 들어간다는 뜻은 아닙니다. 150:10은 저에게 전체 킬 / 사망 비율이기 때문에, 제가 단지 4개의 맵에서 플레이했으니 그 점을 참고해주세요.
이제 통계 리셋이 실제로 로비 검색 문제를 해결할 수 있는지 검증할 때가 되었습니다.
‘이시 계정’을 사용하여 현재 통계를 백업한 후(내보내기), 릴리스를 진행했습니다.
이시 계정
이 작업은 다음과 같은 방식으로 수행할 수 있습니다:
1 ) Steam의 디렉토리(x:/Steam)에서 userdata 폴더를 삭제합니다.
- 게임의 디렉토리에서 players 폴더에 들어가 config.cfg 및 config_mp.cfg를 제외한 모든 것을 삭제합니다.
게임에 들어갑니다: 저는 이제 평범한 플레이어이며 서버 검색에 대한 문제가 전혀 없습니다. 실험의 정확성을 위해 한 맵을 플레이하고 3레벨에 도달한 후 게임에서 나왔습니다. 동기화 후 다시 들어가서 문제 해결이 되었는지 확인했습니다.
현재 이 계정은 필요 없지만, 며칠 후 aimbot으로 인해 얼마나 빨리 밴당하는지 확인하기 위해 다시 돌아올 것입니다.
이제 새로운 Steam 계정을 등록하고 두 번째 구입한 키를 활성화합니다. 처음에는 서버 검색 문제가 계정에 ‘치터’ 플래그가 표시되어 몇 일 후 밴될 것이라는 소문이 돌았습니다. 저도 이 주장이 맞다고 생각했습니다. 이제 우리는 이것을 확인하거나 반박할 수 있는 기회를 가지게 되었습니다. 게임을 시작하고 최소화한 후 ‘이시 계정’을 실행해서 이전 계정의 통계를 불러옵니다. 반드시 ‘이시 계정’에서 로그아웃해야 합니다(그렇지 않으면 이후에 밴을 당할 수 있습니다), 그리고 아무 모드나 선택합니다. 아하! ‘찾은 게임 수 1’ – 서버 검색 문제는 여전히 남아있고, 즉 플래그와는 관련이 없는 것임을 알 수 있습니다.
친구에게 부탁하여 그가 저를 자신의 회의로 초대하게 하고, 거기서 정상 서버에 접속하게 됩니다. 세 개의 맵을 플레이했습니다. 더 정확하게 말하자면 - 세 개의 맵에서 죽었습니다:
첫 번째 맵의 결과: 1킬 34사망
두 번째 맵의 결과: 0킬 60사망
세 번째 맵의 결과: 2킬 46사망.
이 정도면 충분하다고 판단하여 서버를 나간 후 ‘지상 전투’ 모드를 선택하여 검색해봤습니다: ‘찾은 게임 수 19’. 검색 시간은 2초를 넘지 않았고, 로비로 이동했습니다. 이후 서버 검색에 문제가 더 이상 발생하지 않았습니다.
이 새로운 시스템은 마음에 듭니다. 통계 수정 가능성을 차단하면 치터는 더 이상 우리에게 전혀 위협이 되지 않을 것입니다. 예전처럼 모든 것을 관장할 수는 없겠지만, K/D를 지속적으로 관리해야 할 것입니다. 그렇지 않으면 그들은 제한된 접근 그룹에 속할 위험이 있기 때문입니다.
어쨌든 긍정적인 시작이 이루어졌습니다.
이번 실험은 2월 22일 모스크바 시간으로 17시부터 21시까지 진행되었습니다. 치트를 사용하여 게임한 첫 번째 계정은 2월 25일(아마도 오전)에 밴되었습니다. 보시다시피, 치트를 탐지한 후 밴까지의 기간은 3일이 채 되지 않았습니다.
테스트 계정 #01
두 번째 계정에서는 더 이상 서버 검색 문제를 관찰할 수 없었습니다.
Unku aka Chillko for ModernWarfare2.Ru
2010년 3월