펑크버스터
1. 개요
온라인 치트 방지 프로그램.
펑크부스터가 아니라 펑크버스터다!
Tony Ray가 팀 포트리스 클래식에서 치터를 겪은 경험 이후 Even Balance라는 개발사를 설립하여 만들기 시작한게 시초였다고 한다. 첫번째 베타버전은 2000년 9월 21일 하프 라이프용을 발표한 것이었고 리턴 투 캐슬 울펜슈타인에서는 처음으로 게임에 통합되어 나오기 시작했다.[1]
실시간 메모리 스캔을 통해서 데이터베이스상에 있는 수상한 프로그램이 실행되고 있으면 즉시 킥이 되거나, Silent Logging Period를 통해 해당 사용자를 영구적으로 차단한다. 로그 기록을 분석해서 블록을 하는 VAC와 비슷하면서도 차이가 있다.
2. 기능들과 차단 방식
2.1. Restriction & Violation
기본적으로 펑크버스터는 서버 접속과 동시에 펑크버스터 서버와 클라이언트간에 통신을 시도한다. 이 과정에서 서버와 클라이언트간에 통신 문제[2] 가 있는경우 Restriction 오류로 서버에서 추방당한다. Restriction 오류의 경우 글로벌 GUID 밴까지 가는 경우는 거의 없으니, 이 오류가 뜬다고 짜증내거나 포기하지 말고 펑크버스터를 재설치 해보자.
펑크버스터가 켜진 서버에 접속하게 되면 서버측에서 설정한 Cvar[3] 값들이 범위 밖에 있거나, MD5 해시를 검사해서 불일치[4] , 혹은 MD5 Tool 쿼리가 차단된 경우, 펑크버스터 데이터베이스에 있는 수상한 프로그램(주로 핵)이 메모리에 올라와 있는 경우 Violation 오류로 서버에서 추방당한다. 이 오류가 뜨는 경우 치팅 드라이버를 설치했거나, 핵 프로그램을 실행한 경우, 특정 동작을 위해 사용자 컨픽을 수정한 경우, 또는 특정 텍스쳐를 변경하기 위해 모딩을 한 경우에 발생하므로 핵 프로그램을 삭제하거나, 사용자 설정을 초기화 하거나, 게임을 재 설치하는 등의 조치가 필요하다. 해결되지 않은 상태에서 반복적으로 펑크버스터가 켜진 서버에 접속할 경우 Silent Logging Period에 들어가서 글로벌 GUID 밴 처리될 수도 있다.
아래 내용은 PBBans.com[5] 에서 설명하는 위반 정보이다.
* Technical Violations(펑크버스터를 최신버전으로 재설치하면 대부분 해결된다)
#101 - Communication Failure(통신 실패)
#102 - Communication Failure(통신 실패)
#131 - Initialization Failure(초기화 실패)
#132 - Protocol Error(프로토콜 오류)
#141 - Distress(펑크버스터 자동 업데이트 실패)
* Miscellaneous Violations
#111 - Bad Name (서버 측에서 차단한 이름)
#112 - Too Many Bad Names
#113 - Too Many Name Changes (이름 변경 도배를 막기 위해 일정 횟수 이상 이름을 변경하면 차단)
#114 - Protected Name (보호된 이름. 특정 클랜 서버에서 클랜원 이름 사칭을 막기 위해 사용하는 경우가 많다)
#121 - Negative Score Too Low (팀킬 등으로 점수가 마이너스가 된 경우 추방될 수 있다)
#151 - Extended ASCII Characters in Player Name (이름에 확장 아스키 문자가 들어가 있는 경우 추방될 수 있다)
#9001 - CVAR value failed range check(서버에서 지정한 특정 Cvar 값이 특정 범위를 벗어나 있는 경우)
#9002 - MD5 Tool check (MD5 해시 검사 실패)
* Integrity Violations
#10000~29999 (게임 파일 손상, 펑크버스터 파일 손상 혹은 펑크버스터가 플레이어의 게임 환경이 정상적이지 않다고 인식할 경우 발생한다.)
* Cheat/Hack Violations
펑크버스터가 플레이어의 컴퓨터에서 핵 및 수상한 프로그램을 발견했을 경우 발생한다.
#50000s - Aimbot(에임봇)
#60000s - Wallhack(월핵)
#70000s - Multihack(멀티핵 - 치트 엔진 등이 '''사용하지 않고 실행만 해 두어도''' 여기서 걸린다)
#80000s - Gamehack
#90000s - 'Cheat' Video Drivers(치팅된 그래픽 드라이버)
#100000s - Speedhack(속도핵)
#110000s - Autofire(자동 발사)
#120000s - Game Hook(게임 후커)
#130000s - Attempted PunkBuster Hack(펑크버스터에서 확인된 핵)
2.2. PBSS
펑크버스터의 경우 클라이언트 측의 게임 화면중 일부를 잘라내어 (최대 82000픽셀) 캡쳐할 수 있다. 이것을 펑크버스터 스크린샷이라고 부른다. 하지만 특정 OS(윈도우 8 이상)에서는 핑크색 화면만 나오거나, 오류로 인해 캡쳐가 실패하거나 검정색 화면만 나오는 경우도 많다. 이것으로 핵을 잡아내는 경우가 많다는 것을 알고 있는 핵 유저들은 이것을 차단하는 프로그램을 쓰기도 한다. PBSS의 경우 서버측에서 별도로 지정을 하지 않을 경우 서버측 pb/svss 폴더에 0부터 순차적으로 저장된다고 한다.
[image]
[image]
위 사진은 실제로 적발된 핵 유저 스크린샷이다. 핵 유저를 식별하는 방법 중 하나이기에 관련 커뮤니티에서는 이 스크린샷을 증거물로 제출시켜 밴을 시키는 경우가 많았다. 실제로 서버 어드민들도 이 기능을 이용하여 핵 유저들을 식별하여 밴 먹인다.
2.3. Global GUID Ban
[image]
펑크버스터가 핵을 감지할 경우 Silent Logging Period를 시작한다. 이 지점에서는 VAC와 마찬가지로 특정 동작(밴 또는 킥)을 하지 않으며, 이 과정에서 충분한 증거가 수집될 경우 VAC처럼 해당 GUID를 영구적으로 밴 처리한다. 콜 오브 듀티 4와 같은 키코드 기반 게임은 해당 키코드를 더 이상 사용할 수 없고, 배틀필드 시리즈와 같은 계정 기반 게임의 경우 해당 계정을 더 이상 사용할 수 없다.[6] 글로벌 GUID 밴의 경우 키코드당/계정당 부여되는 32자리의 GUID를 펑크버스터 마스터 서버에서 밴 처리하는 것이기 때문. 펑크버스터가 켜진 '''그 어떤 서버에 접속을 하더라도 펑크버스터가 해당 게임 서버에서 영구 차단을 수행했다는 메시지만 볼 수 있을 것이다.'''
3. 문제점
안티 치트 능력에서는 꽤 호평을 받고 있으나, 이 데이터베이스라는게 상당히 까다로워서 별로 문제가 없을것같은 프로그램까지도 허가되지 않은 프로그램으로 인식해 킥하는 것이 단점이다. 심지어는 스팀 커뮤니티도 튕길때도 있었다고 한다. 따라서 스팀 사용자는 게임 내 스팀 커뮤니티 사용을 해제하고 사용할 것. 특히 배틀필드 2에서 이런 문제가 많이 발생한다.
또한 2010년 부터 제기된 문제중 PnkBStrA.exe 프로세스가 펑크버스터를 사용하는 게임을 실행하지 않더라도 메모리에 상주하며 부팅 시 같이 실행된다. 서비스를 해제시키면 된다지만, 이를 사용하는 게임을 플레이 할려면 수동으로 서비스를 실행해야 한다.
그 외에도 원인을 알수도 없는 충돌이라든가 킥이 상당히 잦기 때문에 펑크버스터만 검색해도 펑크버스터 오류 해결 질문들이 상위에 올라온다. 이 킥 기준이 제멋대로라서, 게임을 정상적으로 잘 플레이 하고 있었는데 별안간 메인 화면으로 사출되며 "Kicked by Punkbuster" 라는 메시지를 보는 경우가 일상일 정도. 물론 킥 사유(Reason)도 적혀 있지만 별 도움이 안 되는 경우가 99%.
더욱 큰 문제는 이런 버그가 개인차가 상당히 심하다는 것. 어떤 사람은 버그같은것 겪어본적 없다고 하지만 문제가 있는 사람은 온갖 삽질을 다 해봐도 해결이 안된다고 펑크버스터를 저주하게 된다. 배틀필드 배드 컴퍼니 2에서 '''윈도우 7 64비트 내장사운드 환경 한정'''으로 발생하는 버그[7] 는 전형적인 예 중 하나.[8] EA 측에서도, 펑크버스터 측에서도 이러한 문제점이 제기된지 이미 수개월이 지나가고 있음에도 일언반구의 해명조차 없으며 사용자들이 포럼에서 자체적으로 해결책을 모색하는 현실과 수동으로 업데이트하지 않으면 게임을 할 수 없는 환경은 이용자에 대한 불친절함을 잘 보여준다. 때문에 대부분의 오류 해결은 포럼 같은 카더라에 의존할 수밖에 없다.
프리징 영상
좀더 자세히 적자면, 위 영상은 윈도우 7 64비트 OS와 리얼텍 내장 사운드카드를 사용하는 컴퓨터에서 발생하는 문제인데, 유저들의 보고에 따르면 '''크랙 인증된 윈도우'''를 사용하는 컴퓨터에서 이런 문제가 발생했다고 한다.[9] 만약 위 영상과 같은 프리징 현상을 겪고 있었다면 [10] 윈도우 정품을 사용하자... 그 뒤, 제어판에서 리얼텍 드라이버를 제거한 후 윈도우 기본 사운드 드라이버를 이용해 다시 시도해보자. 자세한 내용은 여기를 참조. 링크 내용은 배드 컴퍼니 관련이지만, 어쌔신 크리드 시리즈와 같이 펑크버스터를 사용하는 게임에는 전부 통용가능.
이런 문제점들로 인해 펑크버스터에 대한 불만은 '''일부 사용자 한정으로''' 하늘을 찌르는 상태(...).
그리고 배틀필드 3에서 미칠듯한 구멍을 자랑하며 해커들의 놀림감이 되는중. 현재 해킹필드 3 소리를 들음에도 정상적인 유저도 킥먹이는 너무 아름다운 성능을 보이며 신나게 까이고 있는 추세다. 배틀필드 4에 와서도 게임은 화려하게 만들지언정 안티 치팅 기술에 투자할 돈은 없는지 여전히 펑크버스터를 사용하는 모습을 보여준다. 그나마 방파제 역할을 해 주기 때문에 서버 관리자들이 플러그인과 조합해 어느 정도는 잘 막아내는 중이다.
4. 구관이 명관이다
하지만, 펑크버스터와 계약을 하지 않은 배틀필드 1은 인세의 지옥이 펼쳐졌다. 페어 파이트 하나만으로 핵을 잡겠다는 정신나간 짓을 강행했기 때문. 페어 파이트는 '''핵 유저를 즉시 잡아내는 기능이 없다. 정확도는 높지만 데이터를 쌓아서 한참 있다가 밴을 먹이는 구조다.''' 즉, 개나 소나 핵을 써 대면서 서버에 생지옥이 펼쳐져도 유저들은 전혀 손을 쓸 방도가 없다는 것. 그래서 다들 펑크버스터를 돌려달라고 절규했으나, 게임스컴 2017의 인터뷰에서 다이스 왈 새로운 클라이언트 스캔식의 새로운 자체개발 안티치트를 근시일 안에 적용하겠다고 발표하며 안티치트 프로그램 개발 진척도를 공개했지만, 제작진들이 대량으로 사퇴하며 배틀필드 V에도 페어 파이트 하나만 달랑 걸어놔 PC판은 그냥 멀티 플레이를 안 하는 게 정신건강에 좋을 지경으로 망가졌다. 공식섭은 핵 유저 없는 방 찾기가 더 어려울 정도.
[1] 영문 위키백과 참조.#[2] 클라이언트측에 펑크버스터가 제대로 설치되어 있지 않거나, 일부 파일이 손상된 경우가 대부분이다.[3] 클라이언트측에서 변경 가능한 게임 엔진 변수들.[4] 파일이 손상된 경우도 있지만, 일반적으로 모딩된 경우가 많다.[5] 펑크버스터 UCON 기능을 이용해서 실시간으로 차단 리스트를 공유하는 펑크버스터 스트림 서비스를 제공해주는 곳중 하나이다.[6] 펑크버스터가 꺼진 서버의 경우 정상적으로 플레이 가능하다.[7] 소리가 안 나오거나 않거나 블루스크린, 프리징 발생 등 증상도 아주 다양하다.[8] 이 때문에 크라이시스, 바이오쇼크 2의 경우 아예 64비트 클라이언트를 지원하지 않는다고 한다.[9] 어차피 사설 컴퓨터 수리점에서는 크랙 정품을 한다 말이지.[10] 크랙인증 폴더라도 해결이 안될때도 있다.