머리말
게임 개발에 있어 부정행위를 방지하는 방법은 여전히 매우 중요한 부분을 차지합니다. 이는 부정행위 방지 조치가 취해지지 않으면 아마도 우리가 개발한 앱이 게임 수익성 문제와도 연관되어 있을 것입니다. 아마도 다음 날 크랙이 난 무료 버전이 출시될 것입니다. 물론 이것은 앱을 기반으로 하고 있으며 한때 인기를 끌었던 치킨 게임 버전이 실제로는 매우 공격적입니다. 부정행위 방지 장치가 없기 때문이기도 합니다. 구직자들이 입사 지원 시 종종 묻는 질문은 바로 고객의 데이터를 신뢰하지 않는 것입니다. 물론, 클라이언트-서버 상호 작용이 상대적으로 적은 일부 상황에서는 이 솔루션을 이렇게 설계할 수 있습니다. FPS를 가정하면 각 샷으로 인한 피해는 한 프레임에 여러 번 촬영됩니다. 매번 서버와 확인이 불가능하고, 경험치도 매우 좋지 않지만, 확인이 없으면 클라이언트 측에서 부정 행위를 하는 방법입니다. 이 문제를 해결하기 위한 부정행위 방지 아이디어가 아래에 소개됩니다.
클라이언트를 속이는 방법
모바일 버전
모바일 게임이 막 시작되었을 때 게임을 하는 모든 사람들은 Flappy Bird가 매우 잔인하고 당시에도 매우 인기가 있었던 모바일 게임이라는 것을 알고 있었을 것입니다. 나중에 나는 "Eight Gate Artifacts"라는 앱을 사용하여 내 점수를 속이고 수정할 수 있다는 것을 알게 되었습니다. 나 자신을 "멋지게" 보이게 하고 내 자신의 허영심을 만족시키기 위한 친구들의 서클. 원칙은 부정 행위의 효과를 달성하기 위해 점수 메모리 값을 수정하는 것입니다.
PC 쪽
휴대폰의 8도어 아티팩트와 유사한 치트 엔진과 같은 PC 메모리 수정용 해당 소프트웨어도 있습니다. 적용 방법은 아래 그림을 참조하세요.
부정행위를 방지하는 방법
Unity 개발에 권장되는 플러그인인 Anti-Cheat Toolkit을 에셋 스토어에서 다운로드할 수 있습니다. 구체적인 원리는 데이터 난독화를 통해 UI에 표시되는 값이 실제로 우리가 계산한 값이므로 메모리 수정자는 UI에 표시되는 값을 기반으로 메모리 주소를 찾을 수 없다는 것입니다.
부정행위 방지 원칙
private int curATK; private int curAtkKey; public int CurATK { get { return curATK ^ curAtkKey; } set { curAtkKey = Random.Range(0, 0xffff); curATK = value^curAtkKey; } }
분석: ^ 연산은 XOR 연산으로 약간의 이진 지식이 필요합니다. XOR 연산은 같다는 것은 0이고 차이는 1이라는 뜻입니다. 다음 예는 3^4입니다. = 7, 3에 해당하는 이진수는 11이고, 4에 해당하는 이진수는 100입니다. XOR 연산 후의 결과는 이진수 111이고 해당 십진수는 7입니다. 아래 프로그램으로 검증해 보세요:
Analytics
위 프로그램에 따르면 부정행위를 방지하는 방법을 이해하셨나요? num은 우리가 입력한 값입니다. 예를 들어 플레이어의 현재 금화 수는 4이지만 UI에 표시되는 것은 바로 코인이 아닙니다. Text = num.ToString(), 플레이어가 num의 메모리를 검색할 수 있도록 수정하기 쉽고, UI에 표시되는 값은 HiddenValue^cryptoKey입니다. 플레이어가 num 값을 찾아서 변경하더라도 우리가 표시하는 실제 금화 수에는 영향을 미치지 않습니다.
분석 플러그인 Anti-Cheat Toolkit
Unity 개발자들은 이 플러그인을 사용할 것으로 예상합니다. 매뉴얼을 보면 Unity의 기본 기능이 요약되어 있음을 알 수 있습니다. 데이터 유형: int->ObscuredInt, Float->ObscuredFloat, string->ObscuredString 등과 같은 해당 데이터 유형. ObscuredInt를 예로 들어 보겠습니다.
Int에 해당하는 구조를 캡슐화하고 혼동 요인 cryptoKey=444444를 갖는 것을 알 수 있습니다. 문자열 유형을 캡슐화하는 ObscuredString 클래스를 살펴보겠습니다. 4441", 아무것도 수정하지 않고 이 플러그인을 사용하는 경우, 내가 해커이고 특정 게임이 현재 Unity에서 개발되었으며 데이터가 치트 방지 처리되었다는 것을 알고 있다면 어떻게 안티 치트를 크랙할 수 있습니까? 치트 방지에 대해 가장 먼저 생각하게 될 것은 이 플러그인이며 이러한 혼란 요소를 알고 있으므로 이를 크랙하는 것이 상대적으로 쉽습니다. 따라서 플러그인을 추가로 방지하는 방법은 매우 중요합니다. 또는 플러그인의 믹싱 요소를 수정하세요.
위 내용은 게임 개발에서의 부정행위 방지 및 그 원칙에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!