한 겹으로는 부족한 이유
대부분의 파이브엠 안티치트는 탐지를 한 겹에 의존합니다. 주입된 DLL, 후킹된 API, 알려진 메뉴 시그니처를 감시하는 클라이언트 스택이거나, 이벤트를 검증하고 불가능한 게임 상태 전환을 거부하는 서버 스택이거나 둘 중 하나입니다. 각각에는 알려진 실패 지점이 있습니다. 클라이언트 전용 AC는 치트가 로더를 시그니처 검사에서 숨기는 순간 무너집니다. 서버 전용 AC는 치트가 합법적인 이벤트 범위를 지키면서 서버 이벤트를 전혀 발생시키지 않는 클라이언트 측 핵(사일런트 에임, ESP, 월핵)을 쓰는 순간 무너집니다. 이중 레이어 탐지에서는 치트를 본 레이어가 잡아내고, 보지 못한 레이어도 관리자가 검토할 수 있는 행동 신호를 남깁니다.
클라이언트 레이어가 보는 것
클라이언트 쪽에서 Raven은 주입된 모듈, 후킹된 엔진 함수, NUI DevTools 상태, 자체 리소스 파일의 무결성, 그리고 알려진 치트 로더의 실행 여부를 감시합니다. 가장 활발한 모드 메뉴 계열(Eulen, Redengine, HamMafia, Susano, TZ, TZX, Skript, Phaze, Lumia)의 시그니처는 1~7일 배포 주기로 최신 상태를 유지합니다(/changelog 참고). 알려진 시그니처가 발동하면 증거(스크린샷 + 탐지 추적)를 수집해 클라우드 패널로 업로드합니다. 시그니처는 걸리지 않았지만 이상 징후가 잡히면 해당 플레이어의 신뢰 점수가 떨어지고 실시간 맵에 올라와 관리자가 검토하게 됩니다.
서버 레이어가 보는 것
서버 쪽에서 Raven은 플레이어가 발생시키는 모든 서버 이벤트에 검증 단계를 적용합니다. 클라이언트에서 올 수 없는 이벤트 이름은 즉시 차단합니다. 타당한 범위를 벗어난 페이로드(아이템 수량, 소지금 변동, 분당 차량 스폰 수)는 거부하고 기록합니다. 알려진 익스플로잇 패턴과 일치하는 이벤트 순서, 예를 들어 Redengine 변종이 쓰는 연쇄 이벤트 시퀀스는 패턴 단위에서 차단합니다. 서버 측 탐지는 클라이언트 검사가 전부 우회되어도 그대로 돌아가며, 그래서 서버 측 대응은 타협 대상이 아닙니다.
두 레이어가 협력하는 방식
하트비트 루프가 두 레이어를 묶습니다. 클라이언트는 핵심 런타임 상태의 서명된 해시를 주기적으로 서버에 보고합니다. 하트비트가 끊기면 서버는 클라이언트가 변조된 것으로 보고 설정된 대응(경고, 킥, 자동 밴)을 실행합니다. 하트비트는 계속 오지만 페이로드가 기대값과 맞지 않으면 서버는 그 차이를 기록하고 신뢰 점수 모델에 반영합니다. 어느 쪽이든 서버는 클라이언트 레이어가 정상 동작 중인지 계속 파악하고 있으므로, 클라이언트 레이어를 무력화하는 치트는 곧바로 서버 쪽에서 드러납니다.
"우회에 강하다"가 뜻하는 것
우회가 불가능한 안티치트는 없습니다. 단일 레이어 AC를 우회하려면 스택 하나만 뚫으면 됩니다. 이중 레이어인 Raven을 우회하려면 두 스택을 동시에 뚫고, 하트비트도 넘고, 행동 이상을 드러내는 신뢰 점수 모델까지 넘어야 합니다. 들키지 않는 우회에 드는 비용이 눈에 띄게 커지고, 패치가 나가는 시간도 짧아집니다. 치트를 알아챈 레이어가 수집한 자료를 다음 시그니처 업데이트를 만드는 팀에 그대로 넘기기 때문입니다.