KR102502495B1 - 안티 치트 검출을 위한 시스템 및 방법 - Google Patents

안티 치트 검출을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102502495B1
KR102502495B1 KR1020227038283A KR20227038283A KR102502495B1 KR 102502495 B1 KR102502495 B1 KR 102502495B1 KR 1020227038283 A KR1020227038283 A KR 1020227038283A KR 20227038283 A KR20227038283 A KR 20227038283A KR 102502495 B1 KR102502495 B1 KR 102502495B1
Authority
KR
South Korea
Prior art keywords
cheat
game device
server
game
module
Prior art date
Application number
KR1020227038283A
Other languages
English (en)
Other versions
KR20220151712A (ko
Inventor
네만자 물라스마직
니콜라스 페터슨
Original Assignee
라이오트 게임즈, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라이오트 게임즈, 인크. filed Critical 라이오트 게임즈, 인크.
Priority to KR1020237005539A priority Critical patent/KR102651821B1/ko
Publication of KR20220151712A publication Critical patent/KR20220151712A/ko
Application granted granted Critical
Publication of KR102502495B1 publication Critical patent/KR102502495B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3225Data transfer within a gaming system, e.g. data sent between gaming machines and users
    • G07F17/3232Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed
    • G07F17/3234Data transfer within a gaming system, e.g. data sent between gaming machines and users wherein the operator is informed about the performance of a gaming system, e.g. revenue, diagnosis of the gaming system
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • G07F17/3241Security aspects of a gaming system, e.g. detecting cheating, device integrity, surveillance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5586Details of game data or player data management for enforcing rights or rules, e.g. to prevent foul play

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Pinball Game Machines (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

본 개시의 실시예는 온라인 멀티플레이어 비디오 게임에서의 안티 치트 검출에 관한 시스템, 방법 및 컴퓨터 저장 매체를 제공한다. 게임 디바이스의 시스템 상태를 검증하고 보안하도록 구성된 안티 치트 커널 드라이버는 게임 디바이스의 부팅 프로세스 동안 로딩된다. 로딩된 안티 치트 커널 드라이버는 부팅 시간부터 게임플레이의 기간 동안 시스템 상태가 위변조될 수 없음을 보장한다. 로딩된 안티 치트 커널 드라이버는 또한 안티 치트 서버로부터 게임 디바이스로 전달된 안티 치트 모듈을 수신할 수 있어서, 안티 치트 모듈이 안티 치트 서버에 의해 지시된 애드 혹 기반으로 수신되고 실행된다. 안티 치트 서버는 게임 디바이스의 커널 계층 또는 애플리케이션 계층에서 수행되는 안티 치트 동작을 자체적으로 관리하고, 필요한 경우 안티 치트 완화 동작을 수행할 수 있다.

Description

안티 치트 검출을 위한 시스템 및 방법
온라인 멀티플레이어 게임플레이에서 기술을 활용하여 치팅하는 것(cheat)은 불행히도 만연한 문제가 되었다. 온라인 게이머는 공개 또는 비공개로 사용가능한 다양한 툴에 액세스하거나 다양한 해킹 기법을 사용할 수 있으며, 어느 쪽이든 경쟁적인 온라인 게임플레이에서 그들에게 불공정한 이점을 제공할 수 있다. 경쟁적인 e스포츠가 계속 번성함에 따라, 치터를 저지하는 것의 중요성이 점점 더 중대해지고 있다. 불행히도, 경쟁적인 온라인 게임 산업이 성장함에 따라, 해킹 및 치트 공개 커뮤니티는 자체적으로 성장하는 산업을 발전시켜왔다.
경쟁적인 온라인 게임플레이에서 치팅의 관행이 증가하는 것을 막기 위해 다양한 대응 조치가 취해졌다. 예를 들어, 소정 유형의 치트를 배제하기 위해 게임 메카닉스와 게임 디자인이 재구성되었다. 페어 플레이에 대한 플레이어의 평판을 추적하고 공유하는 것도 치팅을 저지하기 위한 사회적 관점을 제공할 수 있다. 다른 많은 기법 중에서, 치팅을 검출하거나 저지하기 위한 보다 정교한 몇몇 방법이 최근에 사용 가능하게 되었다. 이러한 방법은 휴리스틱(heuristics)을 사용하여 잠재적 치트를 결정하고, 소정의 잘 알려진 치트의 디지털 서명을 결정하고 검출하며, 게임 프로세스나 메모리를 수정할 수 있는 주입 기법이나 프로세스를 배제하기 위해 게임 애플리케이션 프로세스를 샌드박싱(sandboxing)하는 것도 포함한다.
본 개시의 실시예는 안티 치트 검출에 관한 것이다. 보다 구체적으로, 실시예는 게임 디바이스의 부팅 시간 동안 시스템 상태 및 메모리를 보호하기 위한 시스템 및 방법에 관한 것이다. 기본적으로, 설명된 실시예는 부팅 시간에 컴퓨팅 디바이스의 운영 체제에 안티 치트 커널 드라이버를 로딩하는 기능을 가능하게 하여 시스템 상태 및 메모리가 기존의 안티 치트 기술이 검출할 수 없던 방식으로 수정 및 가장될 수 없게 한다.
몇몇 실시예에서, 안티 치트 커널 드라이버는 게임 디바이스가 부팅될 때, 즉, 운영 체제가 메모리에 로딩될 때 게임 디바이스의 메모리에 로딩된다. 안티 치트 커널 드라이버가 게임 디바이스의 부팅 동안 로딩되는 것에 의해, 게임 디바이스에 설치된 게임 애플리케이션과 관련된 메모리 블록은 소정의 치트 기술이 수행될 수 있기 전에 한 번에 보호될 수 있다. 안티 치트 커널 드라이버가 부팅 중에 로딩되는 한, 치트 기술과 치트를 가장하기 위해 취한 조치를 방지할 수 있다.
몇몇 추가 실시예에서, 부팅 시 로딩된 안티 치트 커널 드라이버를 갖는 게임 디바이스는 원격 안티 치트 서버와 네트워크 세션을 수립할 수 있다. 네트워크 세션이 수립되는 것에 기초하여, 게임 디바이스는 원격 안티 치트 서버로부터 게임 디바이스로 전달되는 안티 치트 모듈을 수신할 수 있다. 게임 디바이스는 수신된 안티 치트 모듈을 로딩된 안티 치트 커널 드라이버에 전송할 수 있어서, 안티 치트 모듈이 게임 디바이스의 운영 체제의 커널에서 실행될 수 있다. 안티 치트 모듈이 실행되는 것에 의해 생성된 결과는 수립된 네트워크 세션을 통해 게임 디바이스로부터 원격 안티 치트 서버로 전달될 수 있다.
원격 안티 치트 서버는 결과를 분석하고 그 결과가 치트 기술이 게임 디바이스에서 사용된다는 것을 나타낸다고 결정할 수 있다. 몇몇 추가 실시예에서, 원격 안티 치트 서버는 검출된 치팅 기술을 이용하는 것으로 결정된 게임 디바이스에 대해 안티 치트 조치를 취할 수 있다. 몇몇 양상에서, 원격 안티 치트 서버는 원격 안티 치트 서버와 관련될 수 있는 게임 서버에게 게임 디바이스와 연관된 계정을 금지하도록 알릴 수 있다. 몇몇 다른 양상에서, 원격 안티 치트 서버는 원격 안티 치트 서버와 연관된 게임 서버에게 게임 디바이스에서 이용되는 하나 이상의 하드웨어를 포함하는 임의의 게임 디바이스에서 발생한 연결을 금지하도록 알릴 수 있다. 몇몇 실시예에서, 안티 치트 서버는, 독립적으로든 또는 게임 서버를 통하든, 게임 디바이스가 치팅 기술이 검출되었음을 나타내는 그래픽 경고를 표시하도록 제공하게 할 수 있는 것으로 고려된다.
이 요약은 아래의 상세한 설명에서 추가로 설명되는 단순화된 형태로 개념의 선택을 소개하기 위해 제공된다. 이 요약은 청구된 출원대상의 주요 특징 또는 기본 특징을 식별하기 위한 것이 아니며, 청구된 출원대상의 범위를 결정하는 데 도움을 주기 위해 사용되는 것도 아니다.
본 개시의 실시예는 첨부 도면을 참조하여 이하에서 상세히 설명된다.
도 1은 본 개시의 몇몇 실시예에 따른 예시적인 시스템도다.
도 2는 본 개시의 몇몇 실시예에 따른 예시적인 게임 디바이스이다.
도 3은 본 개시의 몇몇 실시예에 따른 예시적인 안티 치트 서버이다.
도 4는 본 개시의 몇몇 실시예에 따른 안티 치트 검출 방법을 나타내는 흐름도이다.
도 5는 본 개시의 몇몇 실시예에 따른 안티 치트 검출을 위한 다른 방법을 나타내는 흐름도이다.
도 6은 본 개시의 몇몇 실시예를 구현할 때 사용하기에 적합한 예시적인 컴퓨팅 환경의 블록도이다.
본 개시의 출원 대상은 법적 요구사항을 충족시키기 위해 본 명세서에서 구체적으로 설명된다. 그러나, 설명 자체가 이 특허의 범위를 제한하려는 것은 아니다. 오히려, 발명자들은 청구된 출원 대상이 다른 현재 또는 미래의 기술과 함께, 이 문서에 설명된 단계와 유사한 단계의 조합 또는 상이한 단계를 포함하도록 다른 방식으로 구현될 수도 있음을 고려했다. 또한, "단계" 및/또는 "블록"이라는 용어가 사용된 방법의 상이한 요소를 내포하기 위해 본 명세서에서 사용될 수 있지만, 이 용어는 개별 단계의 순서가 명시적으로 설명되지 않는 한 및 개별 단계의 순서가 명시적으로 설명된 경우를 제외하고 본 명세서에 개시된 다양한 단계들 사이의 임의의 특정 순서를 암시하는 것으로 해석되어서는 안 된다.
온라인 멀티플레이어 비디오 게임 산업은 전 세계 모든 인구 통계에서 엄청난 인기를 얻었다. 온라인 멀티플레이어 비디오 게임이 주류 미디어에 등장함에 따라, e스포츠와 같은 새로운 산업은 게임 영향력을 높이고, 남들보다 뛰어나며, 경쟁적인 게임 이벤트에서 이기고자 하는 수많은 게이머(즉, 사용자 계정이 있는 사용자)를 끌어들인다. 경쟁이 치열해짐에 따라, 많은 게이머가 스킬 및 전술적 노하우에서 다른 사람들보다 우월하게 될 것이다. 그러나 다른 사람들은 불공정한 기술 전략을 사용하여 부당한 성공을 달성할 수 있다. 게이머가 온라인 멀티플레이어 게임에서 치팅 기술을 사용하는 데는 다수의 상이한 이유가 있지만, 게임 개발자는 규칙에 따라 플레이하는 사람들에게 공평한 경쟁의 장을 제공하기 위해 이러한 치터를 막으려 한다.
해커와 게이머가 개발하고 활용하는 많은 유형의 기술 치트가 있다. 게임 익스플로잇, 자동화된 사용자 액션, 게임 오버레이 및 게임 상태 조작은 잘 알려진 몇 가지 유형의 치팅 기술이다. 이를 위해, 안티 치트 개발자는 일반적으로 그 중에서도 치트 검출 또는 치트 방지의 카테고리에 속할 수 있는 안티 치트 툴 및 서비스를 만들었다.
안티 치트 검출 기술은 본질적으로 플레이어가 치팅하고 있는지 여부 또는 플레이어가 치팅할 가능성을 결정할 수 있는 방법 또는 전략을 포함한다. 일례로, 소정의 치트 프로그램의 서명이 식별되고 안티 치트 라이브러리에 추가될 수 있으므로, 안티 바이러스 프로그램과 거의 마찬가지로, 게임 디바이스의 런타임 메모리가 스캔되어 게임플레이 중에 치트 프로그램이 실행되고 있는지 여부를 결정할 수 있다. 불행히도, 치트 기술 또는 프로그램의 서명이 알려져 있어야만 식별이 가능하기 때문에, 이러한 안티 치트 검출 방법은 일반적으로 이들 치팅 기술의 해커나 개발자보다 한 단계 뒤처지는 경향이 있다.
또 다른 치트 검출 방법은 치트 프로그램이 활용될 가능성을 결정하기 위한 휴리스틱 분석을 포함한다. 보다 구체적으로, 치트 프로그램의 서명이 알려져 있지 않은 경우에도, 소정 코드 흐름 동작을 분석하여 치팅 표시자가 있는지 여부를 결정할 수 있다. 그러나, 이 치트 검출 방법은 더 발전된 치팅 기법이 여전히 들키지 않을 수 있으므로 완전한 증거는 아니다.
반면에 치트 방지 방법은 게임 애플리케이션 코드를 난독화하는 기법을 포함할 수 있으므로, 해커가 치트를 생성하는 데 이용가능한 많은 표준 툴을 사용하기 어렵게 한다. 또한, 개발자는 게임 애플리케이션 프로세스를 샌드박싱하여 일반적인 주입 기법을 방지하거나, 또는 그 중에서도 외부 프로세스가 게임 애플리케이션 프로세스 또는 메모리를 확보하지 못하게 하도록 학습해왔다.
일반적으로, 게임 디바이스의 운영 체제의 애플리케이션 계층에서 실행되는 안티 치트는 쉽게 검출될 수 있다. 따라서 해커는 그러한 안티 치트를 역설계하고 차선책을 개발하여 사용된 임의의 검출 또는 방지 전략을 쉽게 우회할 수 있다. 이것 때문에, 안티 치트 개발자는 안티 치트 커널 드라이버 기술을 개발하여 게임 디바이스에 로딩된 운영 체제의 커널 계층에서 안티 치트 검출 및 방지 모듈을 실행하는 능력을 가능하게 할 수 있다. 커널 계층에서 실행되는 동안, 커널 계층 안티 치트 모듈은 게임 디바이스(예컨대, 운영 체제 또는 메모리)의 상태를 검증하거나, 또는 달리 말하면, 운영 체제가 안전(예컨대, 시스템 파일에 오류가 없고, 커널 디버거가 첨부되지 않으며, 가상 환경이 존재하지 않고, 소정의 고위험 소프트웨어가 존재하지 않음, 자체 무결성 체크가 실패하지 않음)하다고 결정할 수 있다. 따라서 커널 계층에서 안티 치트 모듈을 실행하면 해커가 수행 중인 안티 치트 프로세스를 검출하고 역설계하기가 훨씬 더 어려워졌다.
커널 기반 안티 치트 기술은 성공을 입증했지만, 이제 이들 커널 레벨 검출 및 방지 메커니즘을 우회하기 위해 불행하게도 해커가 이용하고 있는 몇 가지 루프 홀을 제시한다. 보다 구체적으로, 기존의 안티 치트 기술에서, 안티 치트 커널 드라이버는 전형적으로 게임 애플리케이션 또는 관련 안티 치트 애플리케이션이 시작될 때까지, 즉 실행될 때까지 로딩되지 않는다(따라서 운영 체제 안전 체크가 수행되지 않음). 애드 혹(ad hoc) 기반으로 안티 치트 커널 드라이버를 로딩하는 것의 주요 단점은 시스템 부팅과 게임 애플리케이션 개시 사이의 시간이 계속 체크되지 않는다는 것이다. 기본적으로, 해커에게는 초기 부팅부터 게임 애플리케이션이 개시되고 안티 치트 커널 드라이버가 로딩될 때까지 언제든지 운영 체제와 메모리를 위변조할 기회가 주어진다. 따라서 해커는 안티 치트 커널 드라이버가 로딩되는 시점 직전에 트랙을 정리하도록 학습하여, 안티 치트 커널 드라이버가 로딩되고 시스템 유효성 체크가 수행되는 시점에 시스템 상태가 체크되고 검증된다.
이와 같이, 본 개시의 다양한 실시예는 게임 디바이스가 작동 중인 임의의 시점에 운영 체제 및 메모리 상태의 위변조를 방지하기 위해 게임 디바이스를 부팅하는 동안 안티 치트 커널 드라이버를 로딩하는 것에 관한 것이다. 부팅 시 안티 치트 커널 드라이버를 로딩함으로써, 게임 디바이스는 게임 애플리케이션 또는 안티 치트 툴이 실행될 수 있는 안전하고 위변조되지 않은 실행 환경을 확실히 유지할 수 있다. 몇몇 실시예에서, 이 보안 실행 환경은 원격 안티 치트 서버와 통신할 수 있는 안티 치트 애플리케이션을 초기화하는 데 이용될 수 있다. 원격 안티 치트 서버는 다양한 안티 치트 모듈을 게임 디바이스에 전달할 수 있으므로 "온 디맨드" 또는 애드 혹 기반으로 보안 실행 환경 내에서 안티 치트 모듈이 실행될 수 있다. 안티 치트 모듈을 안티 치트 서버에 원격으로 저장하고 안티 치트 모듈을 게임 디바이스에 전송하여 애드 혹 실행되게 함으로써, 이러한 모듈이 게임 디바이스에서 분석되고 역설계될 기회가 크게 감소한다. 또한, 안티 치트 모듈은 분석을 위해 원격 안티 치트 서버로 다시 전달되는 결과를 생성할 수 있다. 분석에 기초하여, 안티 치트 서버는 게임 디바이스에서 치팅 기술이 검출되었다고 결정할 수 있으며, 결과적으로 게임 서버가 게임 디바이스 또는 게임 디바이스와 관련된 사용자 계정에 대한 추가 온라인 게임플레이를 금지하거나 하지 못하게 한다.
이제 도 1을 참조하면, 본 개시의 몇몇 실시예가 이용될 수 있는 예시적인 시스템(100)을 도시하는 개략도가 제공된다. 본 명세서에서 설명된 이 구성 및 다른 구성은 단지 예로서 설명된 것임을 이해해야 한다. 다른 구성 및 요소(예컨대, 머신, 인터페이스, 기능, 순서, 기능의 그룹화 등)는 표시된 것에 추가하거나 그 대신 사용될 수 있으며, 몇몇 요소는 완전히 생략될 수 있다. 또한, 본 명세서에 설명된 많은 요소는 별개의 또는 분산된 구성요소로서 또는 다른 구성요소와 함께 그리고 임의의 적절한 조합 및 위치에서 구현될 수 있는 기능적 엔티티이다. 하나 이상의 엔티티에 의해 수행되는 것으로 본 명세서에 설명된 다양한 기능은 하드웨어, 펌웨어 및/또는 소프트웨어에 의해 수행될 수 있다. 예를 들어, 메모리에 저장된 명령어를 실행하는 프로세서에 의해 다양한 기능이 수행될 수 있다.
도 1의 시스템은 비제한적인 예로서 LAN, WAN, 인터넷, 또는 이들의 임의의 조합과 같은 네트워크(130)를 통해 게임 디바이스(120)와 통신할 수 있는 게임 서버(110)를 포함한다. 게임 서버(110)는 그 중에서도 게임 디바이스(120)와 같은 복수의 게임 디바이스를 위한 온라인 멀티플레이어 게임을 호스팅할 수 있다. 게임 서버(110)는 또한 네트워크(130)를 통해 안티 치트 서버(140)와 통신할 수 있고, 유사하게, 안티 치트 서버(140)는 게임 디바이스(120)와 같은 각각의 게임 디바이스와 통신할 수 있다. 몇몇 양상에서, 게임 디바이스(12)는 게임 디바이스에 설치된 게임 애플리케이션(예를 들어, 온라인 멀티플레이어 게임)이 개시되는 것에 응답하거나 이에 기초하여 게임 서버(110)와 안티 치트 서버(140) 각각과 네트워크 연결(들)을 수립할 수 있다. 본 명세서에 설명된 다양한 실시예에 따르면, 게임 서버(110), 게임 디바이스(120) 또는 안티 치트 서버(140) 각각은 도 6과 관련하여 더 상세히 설명된 바와 같이 하나 이상의 컴퓨팅 디바이스를 포함할 수 있다.
게임 디바이스(120)는 바람직하게는 사용자(즉, 게이머)와 관련된 사용자 계정과 연관되어 있다. 몇몇 실시예에서, 게임 디바이스(120)는 그 중에서도 게임 디바이스의 운영 체제 및 메모리가 위변조되지 않는 것을 보장하는 안티 치트 기술을 포함한다. 게임 애플리케이션이 개시될 때(즉, 실행, 시작, 실행될 때) 안티 치트 커널 드라이버가 로딩되는 기존의 안티 치트 기술과 달리, 운영 체제(예를 들어, 마이크로소프트 윈도우)가 게임 디바이스의 메모리에 로딩되는 동안(즉, 부팅 시) 게임 디바이스(120)는 안티 치트 커널 드라이버를 게임 디바이스(120)의 메모리에 로딩할 수 있다. 안티 치트 커널 드라이버가 부팅 동안 로딩된 게임 디바이스(120)는 기존의 안티 치트 기술보다 더 나은 게임 디바이스(120)(예를 들어, 이의 운영 체제 및 메모리)의 무결성을 보장할 수 있는데, 이는 부팅 시 안티 치트 커널 드라이버의 로딩이 게임 애플리케이션이 개시되기 전에 운영 체제 또는 메모리 위변조가 게임 디바이스(120)에서 발생할 수 없음을 보장하기 때문이다.
안티 치트 커널 드라이버가 게임 디바이스(120)의 부팅 시에 로딩될 때, 게임 디바이스(120)는 게임 디바이스(120)의 운영 체제의 커널 계층 또는 애플리케이션 계층에서 안티 치트 검출 또는 방지 동작을 실행하기 위한 보안 환경을 생성할 수 있다. 몇몇 실시예에서, 게임 디바이스(120)는 부팅 시 시작하는 다양한 측정 및 체크를 연속적으로 또는 주기적으로 수행하여 유효한 시스템 상태를 보장할 수 있다. 몇몇 양상에서, 게임 디바이스(120)가 자신의 시스템 상태가 유효하지 않다고 결정하면, 안티 치트 서버(140) 또는 게임 서버(110) 중 하나 또는 둘 모두에 대한 연결을 방지할 수 있다.
몇몇 실시예에서, 게임 디바이스(120)는 네트워크(130)를 통해 안티 치트 서버(140)와의 세션을 수립할 수 있다. 보안 환경이 갖춰진 상태에서, 게임 디바이스(120)는 네트워크(130)를 통해 안티 치트 서버(140)로부터 하나 이상의 안티 치트 모듈을 수신할 수 있다. 안티 치트 모듈은 그 중에서도 게임 디바이스(120)의 애플리케이션 계층 또는 커널 계층에서 실행될 수 있는 바이너리 또는 실행가능 코드를 포함할 수 있다. 몇몇 양상에서, 안티 치트 서버(140)는 안티 치트 서버(140)에 결합된 메모리 또는 데이터베이스에 저장된 복수의 안티 치트 모듈 중에서 임의의 유형의 안티 치트 모듈(예컨대, 애플리케이션 모드 모듈, 커널 모드 모듈)을 동적으로 선택하고, 선택된 안티 치트 모듈을 게임 디바이스(120)에 전달할 수 있다.
몇몇 실시예에서, 게임 디바이스(120)는 수신된 안티 치트 모듈을 실행할 수 있다. 몇몇 양상에서, 안티 치트 모듈이 커널 모드 모듈이면, 게임 디바이스(120)는 수신된 안티 치트 모듈을 로딩된 안티 치트 커널 드라이버에 전송할 수 있어서, 안티 치트 모듈이 게임 디바이스(20)의 커널 계층에서 실행될 수 있다. 몇몇 다른 양상에서, 안티 치트 모듈이 사용자 모드 모듈이면, 게임 디바이스(120)는 게임 디바이스(120)의 애플리케이션 계층에서 수신된 안티 치트 모듈을 간단히 실행할 수 있다. 일단 실행되면, 게임 디바이스(120)는 안티 치트 모듈을 실행한 결과를 생성하고, 그 결과를 네트워크(130)를 통해 안티 치트 서버(140)에 다시 전달할 수 있다.
몇몇 실시예에서, 안티 치트 서버(140)는 네트워크를 통해 게임 디바이스(120)로부터 결과를 수신할 수 있다. 안티 치트 서버는 결과를 분석하고, 그 결과가 실행된 안티 치트 모듈이 게임 디바이스(120)에서 치팅 시도 또는 치팅 기술의 형태를 검출했음을 나타내는지를 결정할 수 있다. 몇몇 양상에서, 안티 치트 서버(140)는 게임 서버(110)와의 연결을 해제하라는 명령어를 네트워크(130)를 통해 게임 디바이스(120)에 전달할 수 있다. 몇몇 다른 양상에서, 안티 치트 서버(140)는 게임 디바이스(120)에 대해 안티 치트 완화 조치를 취하라는 명령어를 네트워크(130)를 통해 게임 서버(110)에 전달할 수 있다. 안티 치트 완화 조치는, 비제한적인 예로서, 게임 디바이스(120)와 연관된 사용자 계정 금지, 게임 디바이스(120)와의 네트워크 연결의 강제 종료, 게임 디바이스(120)와 연관된 인식된 하드웨어 또는 하드웨어 어드레스 금지 등을 포함할 수 있다.
이제 도 2를 참조하면, 본 개시의 몇몇 실시예가 이용될 수 있는 안티 치트 검출 또는 방지 동작을 실행하기 위한 보안 환경을 생성하는 예시적인 게임 디바이스(120)(도 1에 유사하게 도시됨)를 도시하는 블록도(200)가 제공된다. 다양한 실시예에서, 게임 디바이스(120)는 도 6에 도시된 바와 같은 적어도 하나의 컴퓨팅 디바이스, 게임 콘솔, 휴대용 게임 디바이스, 모바일 디바이스(예를 들어, 폰, 태블릿) 등을 포함할 수 있다. 본 명세서에 개시된 다양한 구성요소는 개시된 실시예를 용이하게 하기 위해 특수 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있음이 고려된다. 초기 부팅(예를 들어, 전원 켜기, 시동)시에, 게임 디바이스(120)는 적어도 커널 계층 및 애플리케이션 계층을 갖는 운영 체제를 게임 디바이스(120)의 메모리에 로딩할 수 있다. 게임 디바이스(120)는 일단 부팅되면 운영 체제에 그래픽 사용자 인터페이스(GUI)를 제시하고, 게임 디바이스(120)의 메모리에 설치된 온라인 멀티플레이어 게임과 같은 게임 애플리케이션의 개시(예컨대, 시작, 실행)을 가능하게 할 수 있다. 다양한 실시예에서, 게임 디바이스(120)는 본 명세서에 설명되는 바와 같이 안티 치트 검출 및 방지를 가능하게 하는 구성요소 및 모듈을 포함할 수 있다. 도 1에 따라 또한 설명된 바와 같이, 게임 디바이스(120)는 게임 애플리케이션의 검출된 개시에 응답하여 그러한 안티 치트 메커니즘을 초기화할 수 있고, 검출된 개시에 기초하여 게임 서버(110)와 안티 치트 서버(140) 각각 사이에 세션을 추가로 수립할 수 있다.
몇몇 실시예에서, 게임 디바이스(120)는 게임 디바이스(120)의 메모리에 안티 치트 커널 드라이버를 로딩하는 커널 드라이버 초기화 구성요소(210)를 포함할 수 있다. 커널 드라이버가 전형적으로 하드웨어 디바이스와 이를 이용하는 애플리케이션 간의 명령어를 변환하는 데 이용되지만, 본 개시의 실시예는 안티 치트 검출 및 방지 모듈이 커널 계층에서 로딩되고 실행될 수 있게 하는 안티 치트 커널 드라이버를 로딩한다. 그렇게 함으로써, 커널 계층에서 수행되는 안티 치트 검출 및 방지 동작은 해커가 그러한 동작을 검출 및/또는 역설계하는 것을 훨씬 더 어렵게 만든다. 커널 드라이버 초기화 구성요소(210)는 부팅 시 안티 치트 커널 드라이버를 로딩하는 동안 안티 치트 커널 드라이버의 로딩이 시스템 불안정성 또는 성능 문제를 야기하는지 여부를 결정하기 위해 운영 체제 및 메모리의 상태를 모니터링할 수 있다. 몇몇 실시예에서, 커널 드라이버 초기화 구성요소(210)가 시스템 불안정성 또는 성능 문제(예를 들어, 커널 충돌)를 검출하는 경우, 커널 드라이버 초기화 구성요소(210)는 안티 치트 커널 드라이버를 동적으로 언로딩하거나 부팅 시 추가로 로딩하는 것을 동적으로 방지하여 게임 디바이스(120)의 향후 부팅으로 인해 추가적인 불안정성 또는 성능 문제가 발생하지 않도록 한다.
몇몇 실시예에서, 게임 디바이스(120)는 그 중에서도 게임 디바이스(120)에 설치된 게임 애플리케이션을 실행하기 위해 로딩된 운영 체제 및 메모리의 상태를 연속적으로, 주기적으로 또는 애드 혹 기반으로 검증할 수 있는 시스템 상태 검증 구성요소(220)를 포함할 수 있다. 다시 말해, 부팅 시 로딩된 안티 치트 커널 드라이버를 사용하여, 시스템 상태 검증 구성요소(220)는 운영 체제 및 메모리에 대한 다양한 체크 및 측정을 수행하여 운영 체제의 시스템 파일이 부팅 시 유효하거나, 운영 체제의 시스템 파일에 대한 변경이 부팅 후 위변조되지 않았음을 보장할 수 있다. 몇몇 실시예에서, 시스템 상태 검증 구성요소(220)는 운영 체제의 시스템 파일에 대한 변경(예를 들어, 샌드박스)을 방지할 수 있다.
몇몇 실시예에서, 게임 디바이스(120)는 그 중에서도 어떠한 시스템 파일도 손상되거나 위변조되지 않거나, 어떠한 커널 디버거도 이용되고 있지 않거나, 어떠한 가상 환경도 이용되고 있지 않거나, 위험도가 높거나 잘 알려진 치팅 소프트웨어가 실행되고 있지 않거나, 안티 치트 커널 드라이버의 자체 무결성 체크가 실패하지 않음을 연속적으로, 주기적으로 또는 애드 혹 기반으로 보장할 수 있는 안티 치트 검출 구성요소(230)를 포함할 수 있다. 안티 치트 검출 구성요소(230)는 부팅 시에 로딩된 안티 치트 커널 드라이버를 사용하여 이러한 치팅 기술과 관련된 알려진 동작 및 마커에 대해 운영 체제 및 메모리를 스캔할 수 있다. 몇몇 실시예에서, 치팅 기술이 검출되면, 안티 치트 검출 구성요소(230)는 문제가 해결될 때까지 설치된 게임 애플리케이션이 개시되거나 플레이되지 못하게 할 수 있다. 몇몇 양상에서, 문제가 되는 치팅 기술을 제거하고 게임 디바이스(120)를 재시작함으로써 문제가 해결될 수 있다.
몇몇 실시예에서, 게임 디바이스(120)는 부팅 시 로딩된 안티 치트 커널 드라이버를 사용하여 게임 디바이스(120)의 커널 계층 또는 애플리케이션 계층에서 로딩 및 실행될 안티 치트 모듈을 수신할 수 있는 커널 모듈 실행 구성요소(240)를 포함할 수 있다. 몇몇 양상에서, 안티 치트 모듈은 수신된 모듈의 유형에 따라 커널 모드 또는 사용자 모드 중 하나로 실행될 수 있다. 다양한 실시예에서, 커널 모듈 실행 구성요소(240)에 의해 수신된 안티 치트 모듈은 안티 치트 바이너리 또는 특정 안티 치트 기술을 검출하기 위해 커널 계층에서 로딩 및 실행될 수 있는 다른 실행 파일을 포함할 수 있다. 커널 모듈 실행 구성요소(240)는 수신된 안티 치트 모듈의 실행 결과로서 특정 치트 기술이 게임 디바이스(120)에서 검출되었는지 여부를 결정하기 위해 분석될 수 있는 결과를 생성할 수 있다.
설명되는 바와 같이, 커널 모듈 실행 구성요소(240)는 안티 치트 서버(예를 들어, 도 1의 안티 치트 서버(140))로부터 네트워크를 통해 게임 디바이스(120)로 전송된 복수의 안티 치트 모듈 중 어느 하나를 수신하여, 안티 치트 모듈이 "온 디맨드", 즉, 안티 치트 서버의 요청에 따라 게임 디바이스(120)에 의해 원격으로 실행될 수 있다. 몇몇 추가 실시예에서, 안티 치트 모듈은 실행 완료 즉시 커널 모듈 실행 구성요소(240)에 의해 삭제될 수 있어, 해커에게 안티 치트 모듈을 분석할 기회가 주어지지 않는다. 안티 치트 모듈을 실행될 게임 디바이스(120)에 전달하기 위한 이러한 애드 혹 방안은 해커가 이용되고 있는 안티 치트 방법론을 역설계하고 분석하기 어렵게 하는 것으로 고려된다.
다양한 실시예에서, 게임 디바이스(120)는 게임 애플리케이션의 개시에 응답하여 게임 애플리케이션을 메모리에 로딩하는 게임 애플리케이션 처리 구성요소(250)를 포함할 수 있다. 게임 애플리케이션은 예로서, 온라인 멀티플레이어 게임을 포함할 수 있다. 게임 애플리케이션 처리 구성요소(250)는 게임 디바이스(120)의 메모리에 게임 상태, 사용자 계정 정보 및 게임 플레이를 가능하게 하는 다양한 코드 또는 데이터를 저장할 수 있다. 몇몇 추가 실시예에서, 게임 애플리케이션 처리 구성요소(250)는 네트워크를 통해 게임 서버(예를 들어, 도 1의 게임 서버(110))와 세션을 수립하는 게임 서버 인터페이싱 구성요소(260)와 통신할 수 있다. 게임 애플리케이션 처리 구성요소(250)는 그 중에서도 게임 서버 인터페이싱 구성요소(260)를 통해 사용자 계정 정보(예를 들어, 사용자 이름, 비밀번호)를 전달하여 게임 서버에 대한 액세스를 획득할 수 있다. 게임 애플리케이션 처리 구성요소(250)는 게임 서버와 게임 데이터를 교환할 수 있고, 또한 게임 서버 인터페이싱 구성요소(260)를 통해 다양한 명령어, 알림 또는 경고를 수신할 수 있다. 몇몇 실시예에서, 알림 또는 경고는 게임 디바이스(120) 상에서 실행되는 안티 치트 모듈이 치팅 기술을 검출했다는 결정에 응답하여 게임 서버 인터페이싱 구성요소(260)를 통해 게임 서버로부터 수신될 수 있다. 이를 위해, 게임 애플리케이션 처리 구성요소(250)는 (예를 들어, 게임 애플리케이션을 통해) 그래픽 사용자 인터페이스로 알림 또는 경고를 표시하도록 제공할 수 있다.
다양한 실시예에서, 게임 디바이스(120)는 부팅 시 로딩된 안티 치트 커널 드라이버와 인터페이싱할 수 있고, 안티 치트 서버와 데이터(예를 들어, 안티 치트 모듈, 결과)를 교환할 수 있고/있거나 안티 치트 서버로부터 수신된 안티 치트 모듈을 실행 또는 삭제할 수 있는 안티 치트 관리 구성요소(270)를 포함할 수 있다. 몇몇 실시예에서, 안티 치트 관리 구성요소(270)는 게임 디바이스(120)의 부팅 시에 로딩된 안티 치트 커널 드라이버를 활성화할 수 있는 커널 드라이버 인터페이싱 구성요소(272)를 포함할 수 있다. 커널 드라이버 인터페이싱 구성요소(272)는 안티 치트 커널 드라이버가 부팅 시 로딩되지 않은 경우 안티 치트 커널 드라이버를 로딩하고 활성화할 수도 있다고 고려된다. 몇몇 실시예에서, 커널 드라이버 인터페이싱 구성요소(272)는 안티 치트 관리 구성요소(270)와 그 중에서도 시스템 상태 검증 구성요소(220), 안티 치트 검출 구성요소(230) 또는 커널 모듈 실행 구성요소(240)와 같은 게임 디바이스(120)의 하나 이상의 구성요소 사이의 데이터 교환을 가능하게 할 수 있다. 기본적으로, 안티 치트 관리 구성요소(270)는 게임 디바이스(120)의 다른 그러한 구성요소에 의해 수행되는 동작(예를 들어, 상태 검증, 안티 치트 검출)을 초기화하거나 시작할 수 있다. 몇몇 양상에서, 커널 드라이버 인터페이싱 구성요소(272)는 안티 치트 관리 구성요소(270)에 의해 커널 모듈 실행 구성요소(240)에 안티 치트 모듈 및 안티 치트 모듈을 실행하기 위한 명령어를 전송하는 데 이용될 수 있다. 몇몇 추가 양상에서, 커널 드라이버 인터페이싱 구성요소(272)는 안티 치트 관리 구성요소(270)에 의해 커널 모듈 실행 구성요소(240)에 의해 생성된 실행된 안티 치트 모듈의 결과를 수신하는 데 이용될 수 있다.
몇몇 실시예에서, 안티 치트 관리 구성요소(270)는 게임 디바이스(120)와 도 1의 안티 치트 서버(140)와 같은 안티 치트 서버 사이에 네트워크 세션을 수립하는 안티 치트 서버 인터페이싱 구성요소(274)를 포함할 수 있다. 네트워크 세션은 게임 디바이스(120)에 설치된 게임 애플리케이션의 검출된 개시에 기초하여 수립되는 것으로 고려된다. 게임 애플리케이션이 안티 치트 관리 구성요소(270)와 연관될 수 있다는 것도 고려된다. 그들 사이에 수립된 네트워크 세션은 연속적, 주기적 또는 애드 혹 방식으로 데이터를 교환하는 데 이용될 수 있다. 몇몇 양상에서, 안티 치트 서버 인터페이싱 구성요소(274)는 네트워크를 통해 안티 치트 서버(140)로부터 전달되는 안티 치트 모듈을 수신할 수 있다. 몇몇 추가 양상에서, 안티 치트 서버 인터페이싱 구성요소(274)는 수신된 안티 치트 모듈이 게임 디바이스(120) 상에서 실행되는 것에 기초하여 생성된 하나 이상의 결과를 전송할 수 있다. 몇몇 실시예에서, 안티 치트 서버 인터페이싱 구성요소(274)는 어떤 안티 치트 모듈(들)이 실행되는지, 그러한 안티 치트 모듈(들)이 언제 실행되는지, 또는 그러한 안티 치트 모듈(들)이 언제 게임 디바이스(120)에 의해 삭제되는지를 정의하는 명령어를 안티 치트 서버(140)로부터 수신할 수 있다.
몇몇 실시예에서, 안티 치트 관리 구성요소(270)는 안티 치트 서버 인터페이싱 구성요소(274)를 통해 안티 치트 서버(140)로부터 수신된 명령어에 기초하여 안티 치트 서버(140)로부터 수신된 안티 치트 모듈을 관리하는 모듈 관리 구성요소(276)를 포함할 수 있다. 몇몇 양상에서, 그리고 앞에서 간략하게 논의된 바와 같이, 수신된 명령어는 게임 디바이스(120)에서 수행될 특정 태스크(예를 들어, 모듈 실행, 타이밍, 처리)를 포함할 수 있다. 이와 관련하여, 모듈 관리 구성요소(276)는 안티 치트 서버(140)로부터 수신된 명령어를 해석하고 이에 따라 그로부터 수신된 안티 치트 모듈을 관리할 수 있다. 안티 치트 관리 구성요소(270)는 게임 디바이스(120)의 커널 계층으로부터 모듈을 로딩, 실행 또는 언로딩하기 위해 적어도 커널 드라이버 인터페이싱 구성요소(272)와 통신할 수 있는 것으로 고려된다.
이제 도 3을 참조하면, 본 개시의 몇몇 실시예가 이용될 수 있는 게임 디바이스(예를 들어, 도 1 및 도 2의 게임 디바이스(120)) 상의 안티 치트 모듈의 수신, 로딩, 실행 및/또는 삭제를 원격으로 관리하기 위한 도 1에 유사하게 도시된 예시적인 안티 치트 서버(140)를 도시하는 블록도(300)가 제공된다. 다양한 실시예에서, 안티 치트 서버(140)는 도 6에 도시된 바와 같은 적어도 하나의 컴퓨팅 디바이스를 포함할 수 있다. 본 명세서에 개시된 다양한 구성요소는 개시된 실시예를 가능하게 하기 위해 특수 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있는 것으로 고려된다.
몇몇 실시예에서, 안티 치트 서버(140)는 게임 디바이스(120)와의 통신을 가능하게 하는 안티 치트 클라이언트 인터페이싱 구성요소(310)를 포함할 수 있어서, 무엇보다도 게임 디바이스(120) 상의 안티 치트 동작이 원격으로 관리될 수 있다. 안티 치트 서버(140)는 게임 디바이스(120)로부터 수신되는 세션 요청에 기초하여 네트워크를 통해 게임 디바이스(120)와의 세션을 수립하는 데 안티 치트 클라이언트 인터페이싱 구성요소(310)를 이용할 수 있다. 몇몇 실시예에 따르면, 안티 치트 서버(140)는 수립된 네트워크 세션을 통해 게임 디바이스(120)에서 실행될 하나 이상의 안티 치트 모듈을 게임 디바이스(120)로 전달하는 데 안티 치트 클라이언트 인터페이싱 구성요소(310)를 이용할 수 있다. 이에 대응하여, 안티 치트 서버(140)는 분석을 위해 그리고 게임 디바이스(120)가 치팅 기술을 활용하고 있는지에 대한 후속 결정을 하기 위해 동일하거나 후속적으로 수립된 세션을 통해 실행된 안티 치트 모듈의 결과(들)를 수신할 수 있다.
몇몇 실시예에서, 하이 레벨에서, 안티 치트 서버(140)는 자체적으로, 게임 디바이스(120)와의 통신을 위해 안티 치트 모듈을 선택하거나, 게임 디바이스(120)에 어떻게 또는 언제 안티 치트 모듈을 로딩, 실행 또는 삭제할지 명령하는 명령어를 생성 및 전달하거나, 게임 디바이스(120)에서 실행된 안티 치트 모듈의 결과를 분석하거나, 또는 안티 치트 모듈 결과 분석을 수행한 후 게임 디바이스(120)에 어떻게 동작(예를 들어, 스탠바이, 연결해제)할지 명령하는 명령어를 생성하고 전달하는 안티 치트 조정 구성요소(320)를 포함할 수 있다.
몇몇 실시예에 따르면, 안티 치트 조정 구성요소(320)는 복수의 안티 치트 모듈 중에서 안티 치트 모듈을 선택하는 모듈 선택 구성요소(330)를 포함할 수 있다. 다양한 실시예에서, 복수의 안티 치트 모듈은 그 중에서도 커널 모드 안티 치트 모듈 또는 사용자 모드 안티 치트 모듈을 포함할 수 있다. 안티 치트 모듈은 안티 치트 서버(140)에 결합된 데이터베이스 또는 다른 메모리 디바이스에 저장될 수 있다. 본 명세서에서 전술된 바와 같이, 게임 디바이스(120)와 별개로 안티 치트 모듈을 저장하는 것은 해커가 안티 치트가 실행되고 있음을 예측하기 어렵게 하며, 안티 치트를 역설계하기도 어렵게 한다. 모듈 선택 구성요소(330)는 하나 이상의 선택 규칙세트에 기초하여 통신 및 실행을 위해 안티 치트 모듈을 선택할 수 있는 것으로 고려된다. 예로서, 선택 규칙세트는 특정 세트의 온라인 멀티플레이어 게임이 플레이되는 소정의 환경에 기초하여 정의될 수 있다. 예를 들어, 특정 순서, 조합 또는 유형의 하나 이상의 안티 치트 모듈(들)의 선택은 일련의 전문 e스포츠 게임이 플레이되고 있는지 여부 대 일상적인 사용자가 게임을 플레이하고 있는지 여부에 따라 다를 수 있다.
몇몇 실시예에 따르면, 안티 치트 조정 구성요소(320)는 게임 디바이스(120)와 수립된 세션을 통해 게임 디바이스(120)에 전송하기 위한 명령어를 생성하는 모듈 태스킹 구성요소(340)를 포함할 수 있다. 명령어는 그 중에서도 안티 치트 모듈의 바이너리 또는 기타 실행파일, 안티 치트 모듈을 언제 또는 어디(예컨대, 커널 계층, 애플리케이션 계층)에서 실행할지를 정의하는 커맨드 또는 안티 치트 검출 및 방지를 가능하게 하는 소정의 동작으로 게임 디바이스(120)에 태스크를 부여하는 다른 지시를 포함할 수 있는 전자 메시지로서 구현될 수 있다. 몇몇 양상에서, 메시지는 게임 디바이스에게 실행 후 안티 치트 모듈을 저장하거나 삭제하도록 지시하는 커맨드를 포함할 수 있지만, 바람직한 실시예에서, 게임 디바이스는 실행 시 및/또는 실행의 결과를 안티 치트 서버(140)에 전달할 때 안티 치트 모듈을 자체적으로 삭제할 수 있다.
몇몇 실시예에 따르면, 안티 치트 조정 구성요소(320)는 안티 치트 서버(140)로부터 전송된 안티 치트 모듈이 게임 디바이스(120)에서 실행된 것에 응답하여 게임 디바이스(120)로부터 보고를 안티 치트 클라이언트 인터페이싱 구성요소(310)를 통해 수신하는 모듈 결과 분석 구성요소(350)를 포함할 수 있다. 몇몇 실시예에서, 보고는 그 중에서도 실행된 안티 치트 모듈의 바이너리 결과(예를 들어, 치팅 검출됨, 치팅 검출되지 않음)를 포함할 수 있다. 몇몇 다른 실시예에서, 보고는 실행된 안티 치트 모듈에 의해 수집된 통계 또는 비구조화 데이터를 포함할 수 있다. 이러한 방식으로, 소정의 휴리스틱 또는 데이터 분석이 평가되어 게임 디바이스(120)에서 치팅의 가능성을 결정하거나 치팅의 확인을 설정할 수 있다. 따라서 모듈 결과 분석 구성요소(350)는 보고를 분석하여 실행된 안티 치트 모듈에 의해 게임 디바이스(120)에서 치팅이 검출되었거나 방지되었는지 여부를 결정할 수 있다. 몇몇 실시예에서, 게임 디바이스(120)가 치팅하고 있었다고 결정되면, 모듈 결과 분석 구성요소(350)는 설명되는 바와 같이 다양한 안티 치트 완화 동작을 수행할 수 있다.
몇몇 실시예에 따르면, 안티 치트 조정 구성요소(320)는 안티 치트 클라이언트 인터페이싱 구성요소(310)를 통해 게임 디바이스(120)의 소정의 동작을 제어하기 위해 게임 디바이스(120)에 전달될 메시지를 생성할 수 있는 게임 디바이스 제어 구성요소(360)를 포함할 수 있다. 몇몇 양상에서, 메시지는 게임 디바이스(120)에게 특정 동작을 수행하도록 지시하는 커맨드를 포함할 수 있다. 예로서, 메시지는 게임 디바이스(120)에게 안티 치트 서버(140) 또는 게임 서버(110)로부터 연결을 해제하도록 지시하는 커맨드를 포함할 수 있다. 연결해제 커맨드는 모듈 결과 분석 구성요소(350)가 게임 디바이스(120)가 치팅 기술을 사용하고 있다고 결정한 것에 응답하여 생성된 새로운 메시지에 포함될 수 있다. 몇몇 양상에서, 커맨드는 또한 게임 디바이스(120)가 안티 치트 서버(140) 또는 게임 서버(110)와의 미래 세션을 수립하지 못하게 할 수도 있는 것으로 고려된다. 다른 예에서, 메시지는 게임 디바이스(120)에 안티 치트 서버(140)로부터 다른 메시지, 명령어 또는 커맨드를 스탠바이 및 대기하라고 지시하는 커맨드를 포함할 수 있다.
몇몇 실시예에서, 안티 치트 서버(140)는 게임 서버(예를 들어, 도 1의 게임 서버(110))와 전자 메시지를 통신할 수 있는 게임 서버 인터페이싱 구성요소(370)를 포함할 수 있고, 게임 서버(110) 상의 온라인 멀티플레이어 게임에 대해 게임 디바이스(120)가 승인 또는 거부되는지를 게임 서버(110)에 알릴 수 있다. 몇몇 예에서, 안티 치트 서버(140)는 게임 서버(110)에게 게임 디바이스(120)의 안티 치트 검출 상태를 알리는 연속적 또는 주기적 메시지를 게임 서버(110)에 전송할 수 있다. 다시 말해서, 안티 치트 서버(140)가 게임 디바이스(120)로부터 수신된 결과에 기초하여 게임 디바이스(120)가 치팅 기술을 이용하고 있다고 결정하면, 안티 치트 서버(140)는 이에 응답하여 안티 치트 완화 명령어를 게임 서버(110)에 전달할 수 있다. 그러한 명령어는 그 중에서도 게임 디바이스(120) 상의 치팅의 확인 또는 가능성, 게임 디바이스(120)와 연관된 사용자 계정, 게임 디바이스(120)와 연관된 하드웨어 서명(들), 검출된 치트의 특성 및/또는 심각도, 네트워크 정보(예를 들어, IP 어드레스) 및/또는 게임 디바이스(120)와 연관된 임의의 다른 식별 정보를 포함할 수 있다고 고려된다.
이제 도 4를 참조하면, 안티 치트 검출을 위한 방법을 예시하는 흐름도가 제공된다. 방법은 또한 검출된 손상된 시스템 상태(즉, 위변조된 것으로 결정된 시스템)에 기초하여 게임 디바이스(예를 들어, 도 1 및 도 2의 게임 디바이스(120))가 게임 서버(예를 들어, 도 1의 게임 서버(110))에 액세스하는 것을 차단하는 것도 가능하게 한다. 블록(410)에 도시된 바와 같이, 게임 디바이스는 도 2의 커널 드라이버 초기화 구성요소(210)와 같은 커널 드라이버 초기화 구성요소를 이용하여 게임 디바이스의 부팅 프로세스 동안 안티 치트 커널 드라이버를 메모리에 로딩할 수 있다. 다양한 실시예에서, 게임 디바이스는 안티 치트 커널 드라이버가 적절하게 로딩되고, 안정적이며, 시스템 불안정을 야기하지 않을 것임을 보장하기 위해 운영 체제 및 메모리를 모니터링하면서 안정성 체크를 수행하는 데 커널 드라이버 초기화 구성요소를 이용할 수 있다. 예를 들어, 게임 디바이스는 안티 치트 커널 드라이버를 로딩한 결과로서 커널 충돌 또는 패닉이 발생하는 경우 추적할 수 있다. 이를 위해, 게임 디바이스는 부팅 프로세스를 동적으로 수정하고 반복적인 커널 충돌이나 패닉이 발생하는 것을 방지하는 데 커널 드라이버 초기화 구성요소를 이용할 수 있다.
안티 치트 커널 드라이버가 부팅 프로세스 동안 메모리에 로딩되는 것에 기초하여, 블록(420)에서, 게임 디바이스는 시스템 상태 검증 구성요소(예를 들어, 도 2의 시스템 상태 검증 구성요소(220))를 이용하여 운영 체제 파일, 게임 디바이스의 메모리 및 운영 체제의 다른 양상에 대해 일련의 체크를 수행하여 게임 디바이스의 유효한 상태를 결정한다. 바람직하게는, 이러한 체크는 게임 디바이스의 부팅 프로세스가 완료되기 전에 수행된다. 이러한 방식으로, 기존의 안티 치트 기술에서와 같이 게임 애플리케이션을 개시할 때만 수행되는 시스템 상태 검증을 방해하려는 고급 시도를 방지할 수 있다.
블록(430)에서, 안티 치트 커널 드라이버가 부팅 프로세스 동안 로딩된 게임 디바이스는 안티 치트 커널 드라이버가 로딩된 후 시스템 상태(예컨대, 메모리의 블록(들) 또는 시스템 파일)가 위변조되었는지 여부를 검출하기 위한 일련의 검출 벡터 또는 동작을 포함하는 안티 치트 검출 구성요소(예를 들어, 도 2의 안티 치트 검출 구성요소(230))를 이용할 수 있다. 몇몇 실시예에서, 게임 디바이스는 안티 치트 검출 구성요소를 연속적으로 또는 주기적으로 이용하여 시스템 상태의 특성 또는 시스템 상태를 위변조하려는 임의의 시도를 추적(예를 들어, 메모리에 저장, 플래그 설정, 식별) 및 저장할 수 있다. 보다 구체적으로, 안티 치트 커널 드라이버가 부팅 시 로딩되는 것에 의해, 안티 치트 검출 구성요소는 다양한 치트 기술이 시스템 상태를 위변조할 수 있기 전에 메모리의 블록(들) 및/또는 시스템 파일을 효과적으로 샌드박싱할 수 있다. 그러나, 안티 치트 커널 드라이버가 로딩된 후 시스템 상태를 위변조하려는 시도가 있는 경우, 안티 치트 검출 구성요소를 이용하여 이러한 시도를 추적하고 게임 디바이스의 위변조된 상태를 추가로 추적할 수 있다. 몇몇 다른 실시예에서, 게임 디바이스는 게임 디바이스의 상태가 변경되었는지 여부를 결정하기 위해 부팅 시에 유효하다고 결정된 제1 시스템 상태를 나중에(예를 들어, 게임 애플리케이션이 개시될 때) 결정된 상태와 간단히 비교할 수 있다.
블록(440)에서, 게임 디바이스의 안티 치트 검출 구성요소는 시스템 상태가 무효이거나 위변조되었다는 결정에 기초하여 게임 디바이스(120)와 게임 서버(110) 사이의 액세스를 차단할 수 있으며, 이는 게임 디바이스가 게임 서버에서 호스팅되는 임의의 온라인 멀티플레이어 게임에 참여하는 것을 효과적으로 방지한다. 다양한 실시예에서, 안티 치트 검출 구성요소는 시스템 상태의 상황을 게임 애플리케이션 처리 구성요소(예를 들어, 도 2의 게임 애플리케이션 처리 구성요소(250)), 게임 서버 인터페이싱 구성요소(예를 들어, 도 2의 게임 서버 인터페이싱 구성요소(260)) 및/또는 안티 치트 서버 인터페이싱 구성요소(예를 들어, 도 2의 안티 치트 서버 인터페이싱 구성요소(274))로 전송하여 게임 디바이스가 게임 서버를 통해 온라인 게임플레이에 참여하는 것을 효과적으로 방지한다. 비제한적인 예로서, 게임 서버 또는 안티 치트 서버의 호스트 어드레스를 차단하거나, 게임 서버 또는 안티 치트 서버에 대한 네트워크 연결을 차단하거나, 게임 애플리케이션이 게임 서버에 대한 아웃고잉 연결을 수립하지 못하게 하거나, 안티 치트 서버에 무효 시스템 상태를 전송하거나, 이의 임의의 조합에 의해 온라인 게임 참여를 방지할 수 있다. 몇몇 실시예에서, 안티 치트 검출 구성요소(230)는 독립적으로, 또는 게임 애플리케이션 처리 구성요소(250)를 통해, 게임 디바이스가 게임 디바이스에 결합된 디스플레이에 표시할 알림을 제공하게 하는 알림을 생성할 수 있다. 몇몇 양상에서, 알림은 온라인 게임 참여가 가능해질 수 있도록 검출된 치트 기술이 제거될 필요가 있고 게임 디바이스 재시작될 필요가 있음을 게임 디바이스의 사용자에게 알릴 수 있다.
이제 도 5를 참조하면, 안티 치트 검출을 위한 방법을 도시하는 흐름도가 제공된다. 블록(510)에 도시된 바와 같이, 게임 디바이스(예를 들어, 도 1 및 도 2의 게임 디바이스(120))는 게임 디바이스의 부팅 프로세스 동안 메모리에 안티 치트 커널 드라이버를 로딩하는 데 커널 드라이버 초기화 구성요소(예를 들어, 도 2의 커널 드라이버 초기화 구성요소(210))를 이용할 수 있다. 다양한 실시예에서, 게임 디바이스는 안티 치트 커널 드라이버가 적절하게 로딩되고, 안정적이며, 시스템 불안정을 일으키지 않을 것임을 보장하기 위해 운영 체제 및 메모리를 모니터링하면서 안정성 체크를 수행하는 데 커널 드라이버 초기화 구성요소를 이용할 수 있다. 예를 들어, 게임 디바이스는 안티 치트 커널 드라이버를 로딩한 결과로서 커널 충돌 또는 패닉이 발생하는 경우 추적할 수 있다. 이를 위해, 게임 디바이스는 부팅 프로세스를 동적으로 수정하고 반복적인 커널 충돌이나 패닉이 발생하는 것을 방지하는 데 커널 드라이버 초기화 구성요소를 이용할 수 있다.
몇몇 실시예에 따르면, 게임 디바이스는 시스템 상태 검증 구성요소(예를 들어, 도 2의 시스템 상태 검증 구성요소(220))를 이용하여 운영 체제 파일, 게임 디바이스의 메모리 및 운영 체제의 다른 양상에 대한 일련의 체크를 수행하여 안티 치트 커널 드라이버가 부팅 프로세스 동안 메모리에 로딩되는 것에 의해 게임 디바이스의 유효한 상태를 결정할 수 있다. 이러한 체크는 게임 디바이스의 부팅 프로세스가 완료되기 전에 수행되는 것이 바람직하다. 이러한 방식으로, 기존의 안티 치트 기술에서와 같이 게임 애플리케이션을 개시할 때에만 수행되는 시스템 상태 검증을 방해하려는 고급 시도를 방지할 수 있다. 안티 치트 커널 드라이버가 부팅 프로세스 동안 로딩된 게임 디바이스는 안티 치트 커널 드라이버가 로딩된 후 시스템 상태(예컨대, 메모리의 블록(들) 또는 시스템 파일)가 위변조되었는지 여부를 검출하기 위한 일련의 검출 벡터 또는 동작을 포함하는 안티 치트 검출 구성요소(예를 들어, 도 2의 안티 치트 검출 구성요소(230))를 이용할 수 있다. 몇몇 실시예에서, 게임 디바이스는 안티 치트 검출 구성요소를 연속적으로 또는 주기적으로 이용하여 시스템 상태 또는 시스템 상태를 위변조하려는 임의의 시도를 추적 및 저장할 수 있다. 보다 구체적으로, 안티 치트 커널 드라이버가 부팅 시 로딩되는 것에 의해, 안티 치트 검출 구성요소는 다양한 치트 기술이 시스템 상태를 위변조할 수 있기 전에 메모리의 블록(들) 및/또는 시스템 파일을 효과적으로 샌드박싱할 수 있다. 그러나, 안티 치트 커널 드라이버가 로딩된 후 시스템 상태를 위변조하려는 시도가 있는 경우, 안티 치트 검출 구성요소를 이용하여 이러한 시도를 추적하고 게임 디바이스의 위변조된 상태를 추가로 추적할 수 있다.
게임 디바이스의 안티 치트 검출 구성요소는 시스템 상태가 유효다는 결정에 기초하여 게임 디바이스(120)와 게임 서버(110) 사이의 액세스를 가능하게 하여, 게임 디바이스는 게임 서버에서 호스팅되는 온라인 멀티플레이어 게임에 참여할 수 있다. 다양한 실시예에서, 안티 치트 검출 구성요소는 시스템 상태의 상황을 게임 애플리케이션 처리 구성요소(예를 들어, 도 2의 게임 애플리케이션 처리 구성요소(250)), 게임 서버 인터페이싱 구성요소(예를 들어, 도 2의 게임 서버 인터페이싱 구성요소(260)) 및/또는 안티 치트 서버 인터페이싱 구성요소(예를 들어, 도 2의 안티 치트 서버 인터페이싱 구성요소(274))로 전송하여 게임 디바이스와 게임 서버 사이의 연결을 가능하게 할 수 있다.
블록(520)에 도시된 바와 같이, 몇몇 실시예에 따르면, 게임 디바이스는 네트워크를 통해 안티 치트 서버와의 세션을 수립하는 데 안티 치트 서버 인터페이싱 구성요소를 이용할 수 있다. 몇몇 양상에서, 세션은 게임 서버 또는 안티 치트 서버 중 하나 또는 둘 모두와 연관된 게임 애플리케이션의 검출된 개시에 기초하여 수립될 수 있다. 몇몇 양상에서, 안티 치트 서버와의 세션은 게임 디바이스와 게임 서버 사이에 수립된 다른 세션과 동시에 수립 및/또는 활성화된다.
안티 치트 관리 구성요소(예를 들어, 도 2의 안티 치트 관리 구성요소(270))는 (예를 들어, 안티 치트 서버 인터페이싱 구성요소를 통해) 안티 치트 서버와 게임 디바이스의 커널 사이의 통신을 가능하게 할 수 있고, 게임 디바이스는 커널 드라이버 인터페이싱 구성요소(예를 들어, 커널 드라이버 인터페이싱 구성요소(272))를 사용하여 로딩된 안티 치트 커널 드라이버와 통신한다. 따라서, 블록(530)에서, 게임 디바이스는 안티 치트 서버 인터페이싱 구성요소를 통해 그리고 네트워크를 통해 안티 치트 서버로부터 게임 디바이스로의 전달을 위해 선택된 안티 치트 모듈을 수신할 수 있다. 몇몇 실시예에서, 커널 드라이버 인터페이싱 구성요소는 수신된 안티 치트 모듈을 게임 디바이스의 커널 모듈 실행 구성요소(예를 들어, 도 2의 커널 모듈 실행 구성요소(240))에 전송할 수 있다.
몇몇 실시예에서, 커널 모듈 실행 구성요소는 안티 치트 모듈의 실행에 기초하여 보고 또는 결과를 생성할 수 있다. 따라서, 블록(550)에서, 커널 모듈 실행 구성요소는 실행된 안티 치트 모듈의 결과를 커널 계층으로부터 안티 치트 서버 인터페이싱 구성요소로 보낼 수 있어서, 안티 치트 서버 인터페이싱 구성요소는 그 결과를 네트워크를 통해 안티 치트 서버에 전달할 수 있다.
몇몇 실시예에 따르면, 안티 치트 서버(예를 들어, 도 1 및 도 3의 안티 치트 서버(140))는 실행된 안티 치트 모듈의 결과를 수신하고 분석할 수 있다. 몇몇 양상에서, 안티 치트 서버는 게임 디바이스가 치팅 기술을 이용하고 있다는 절대적인 결정을 하거나, 또는 신뢰의 임계 레벨에 기초하여 게임 디바이스가 치팅 기술을 이용하고 있다는 확신 있는 결정을 할 수 있다. 안티 치트 서버가 게임 디바이스가 치팅 기술을 이용하고 있다고 결정하는 경우, 안티 치트 서버는 게임 서버에 메시지를 전송하여 게임 서버에게 게임 디바이스와 연관된 사용자 계정, 게임 디바이스 자체, 게임 디바이스의 네트워크 어드레스, 게임 디바이스와 연관된 하드웨어 서명 또는 어드레스(들) 등을 부팅, 연결해제 또는 금지하도록 지시할 수 있다. 몇몇 양상에서, 안티 치트 서버는 게임 서버에 대한 액세스를 연결해제하거나 금지하라는 명령어와 함께 메시지를 게임 디바이스에 전송할 수 있다. 게임 디바이스가 게임 세션을 유지하게 하기 위해 또는 몇몇 양상에서 온라인 플레이를 가능하게 하도록 게임 서버와의 네트워크 연결을 유지하게 하기 위해, 게임 디바이스는 또한 수립된 연결 또는 요청 시 또는 주기적으로 안티 치트 서버에 연결할 수 있는 입증된 능력을 가져야 하는 것으로 고려된다. 이러한 방식으로, 게임 디바이스를 위변조하는 것은 안티 치트 서버 또는 게임 서버가 취하는 안티 치트 완화 조치에 대한 영향을 줄일 수 있다.
본 명세서에 설명된 바와 같이, 게임 서버가 안티 치트 서버로부터 (게임 서버에게 안티 치트 조치(예를 들어, 부팅, 연결해제 또는 금지)를 취하도록 지시하는) 메시지를 수신할 때, 게임 서버는 게임 서버와 게임 디바이스 사이에 수립된 네트워크 세션을 종료할 수 있다. 몇몇 다른 실시예에서, 게임 서버는 게임 디바이스가 참여하고 있는 임의의 진행중인 게임 세션을 종료할 수 있다. 몇몇 추가 실시예에서, 게임 서버는 네트워크를 통해 게임 디바이스에 전달되는 알림을 생성할 수 있어서, 게임 세션의 종료 또는 수립된 네트워크 세션의 종료에 기초하여, 게임 디바이스가 전달된 알림을 표시하기 위해 제공할 수 있다. 다양한 양상에서, 표시된 알림은 게임 디바이스 상에서 치팅 기술이 검출되거나 방지되었다는 통지를 포함할 수 있다. 몇몇 추가 양상에서, 통지는 게임 디바이스 또는 이와 연관된 사용자 계정에 부과된 처벌(예를 들어, 일시적 금지, 영구적 금지)을 나타낼 수 있다.
본 개시의 실시예를 설명하였지만, 본 개시의 다양한 양상에 대한 일반적인 맥락을 제공하기 위해 본 개시의 실시예가 구현될 수 있는 예시적인 운영 환경이 아래에서 설명된다. 특히 먼저 도 6을 참조하면, 본 개시의 실시예를 구현하기 위한 예시적인 운영 환경이 도시되고 일반적으로 컴퓨팅 디바이스(600)로서 지정된다. 컴퓨팅 디바이스(600)는 적절한 컴퓨팅 환경의 일례일 뿐이며, 개시된 실시예의 사용 또는 기능의 범위에 대하여 임의의 제한을 제안하려는 것은 아니다. 컴퓨팅 디바이스(600)가 예시된 구성요소 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서도 안 된다.
본 명세서에서 실시예는 컴퓨터 또는 다르나 머신, 예컨대, 개인 데이터 어시스턴트 또는 기타 휴대용 디바이스에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어를 포함하는 컴퓨터 코드 또는 머신 사용가능 명령어의 일반적인 맥락에서 설명될 수 있다. 일반적으로, 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함하는 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상적 데이터 유형을 구현하는 코드를 지칭한다. 설명된 실시예는 휴대용 디바이스, 가전 제품, 범용 컴퓨터, 보다 전문적인 컴퓨팅 디바이스 등을 포함하는 다양한 시스템 구성에서 실행될 수 있다. 설명된 실시예는 태스크가 통신 네트워크를 통해 연결된 원격 처리 디바이스에 의해 수행되는 분산 컴퓨팅 환경에서도 실행될 수 있다.
도 6을 참조하면, 컴퓨팅 디바이스(600)는 다음 디바이스, 즉 메모리(612), 하나 이상의 프로세서(614), 하나 이상의 프리젠테이션 구성요소(616), 입출력(I/O) 포트(618), 입출력 구성요소(620) 및 예시적인 전원(622)을 직접 또는 간접적으로 연결하는 버스(610)를 포함한다. 버스(610)는 (어드레스 버스, 데이터 버스 또는 이들의 조합과 같은) 하나 이상의 버스일 수 있는 것을 나타낸다. 도 6의 다양한 블록이 명확성을 위해 선으로 표시되었지만, 실제로는 다양한 구성요소를 구분하는 것이 명확하지 않고, 비유를 하자면, 선은 더 정확하게는 회색이고 흐릿할 것이다. 예를 들어, 디스플레이 디바이스와 같은 프레젠테이션 구성요소를 I/O 구성요소라고 간주할 수 있다. 또한, 프로세서는 메모리를 갖는다. 발명자는 이것이 기술의 본질임을 인식하고, 도 6의 다이어그램이 본 개시의 하나 이상의 실시예와 관련하여 사용될 수 있는 예시적인 컴퓨팅 디바이스의 예시일 뿐임을 반복한다. "워크스테이션", "서버", "랩톱", "휴대용 디바이스" 등으로서 그러한 카테고리 간에는 구별이 이루어지지 않으며, 이는 모두 도 6 및 "컴퓨팅 디바이스"에 대한 참조의 범위 내에서 고려되기 때문이다.
컴퓨팅 디바이스(600)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨팅 디바이스(600)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고 휘발성 및 비휘발성 매체, 및 착탈식 및 비착탈식 매체를 모두 포함한다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 모두 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다목적 디스크(DVD) 또는 다른 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 다른 자기 저장장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 디바이스(600)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지 않는다. 컴퓨터 저장 매체는 신호 그 자체를 포함하지 않는다. 통신 매체는 전형적으로 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현하고 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변경된 특성 중 하나 이상을 갖는 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체 및 음향, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함한다. 위의 것 중 임의의 것의 조합도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
메모리(612)는 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 메모리는 착탈식, 비착탈식 또는 이들의 조합일 수 있다. 예시적인 하드웨어 디바이스는 솔리드 스테이트 메모리, 하드 드라이브, 광학 디스크 드라이브 등을 포함한다. 컴퓨팅 디바이스(600)는 메모리(612) 또는 I/O 구성요소(620)와 같은 다양한 엔티티로부터 데이터를 읽는 하나 이상의 프로세서를 포함한다. 프리젠테이션 구성요소(들)(616)는 사용자 또는 다른 디바이스에 데이터 표시를 제시한다. 예시적인 프리젠테이션 구성요소는 디스플레이 디바이스, 스피커, 인쇄 구성요소, 진동 구성요소 등을 포함한다.
I/O 포트(618)는 컴퓨팅 디바이스(600)가 I/O 구성요소(620)를 포함하는 다른 디바이스에 논리적으로 연결되도록 하며, 그 중 일부는 내장될 수 있다. 예시적인 구성요소는 마이크, 조이스틱, 게임 패드, 위성 방송 수신 안테나, 스캐너, 프린터, 무선 디바이스 등을 포함한다. I/O 구성요소(620)는 허공 제스처, 목소리, 또는 사용자에 의해 생성된 다른 생리학적 입력을 처리하는 내추럴 사용자 인터페이스(natural user interface: NUI)를 제공할 수 있다. 어떤 경우에는 추가 처리를 위해 입력이 적절한 네트워크 요소로 전송될 수 있다. NUI는 음성 인식, 스타일러스 인식, 얼굴 인식, 생체 인식, 화면 상에 및 화면에 인접한 제스처 인식, 허공 제스처, 머리 및 눈 추적 및 컴퓨팅 디바이스(600)의 디스플레이와 연관된 터치 인식(아래에서 더 자세히 설명됨)의 임의의 조합을 구현할 수 있다. 컴퓨팅 디바이스(600)에는 제스처 검출 및 인식을 위해 입체 카메라 시스템, 적외선 카메라 시스템, RGB 카메라 시스템, 터치스크린 기술 및 이들의 조합과 같은 깊이 카메라가 장착될 수 있다. 추가적으로, 컴퓨팅 디바이스(600)에는 모션의 검출을 가능하게 하는 가속도계 또는 자이로스코프가 장착될 수 있다. 가속도계 또는 자이로스코프의 출력은 컴퓨팅 디바이스(600)의 디스플레이에 제공되어 몰입형 증강 현실 또는 가상 현실을 렌더링할 수 있다.
이해될 수 있는 바와 같이, 본 개시의 실시예는 그 중에서도 안티 치트 검출을 위한 시스템 및 방법을 제공한다. 본 개시는 모든 면에서 제한적이기보다는 예시적인 것으로 의도된 특정 실시예와 관련하여 설명되었다. 대안적인 실시예는 본 개시가 그 범위를 벗어나지 않고 속하는 기술분야에서 당업자에게 명백해질 것이다.
전술한 내용으로부터, 본 개시의 실시예는 시스템 및 방법에 명백하고 고유한 다른 이점과 함께 전술된 모든 목표 및 목적을 달성하도록 잘 적응된 것임을 알 수 있을 것이다. 소정의 특징 및 하위조합은 유용하며 다른 특징 및 하위조합을 참조하지 않고 이용될 수 있음이 이해될 것이다. 이는 청구범위에 의해 고려되고 청구범위 내에 있다.

Claims (20)

  1. 컴퓨터 사용가능 명령어를 저장하는 비일시적 컴퓨터 저장 매체로서,
    상기 컴퓨터 사용가능 명령어는, 하나 이상의 컴퓨팅 디바이스에 의해 사용될 때, 상기 하나 이상의 컴퓨팅 디바이스로 하여금 동작을 수행하게 하되, 상기 동작은,
    게임 디바이스의 부팅 프로세스의 완료 전에 상기 게임 디바이스의 메모리에 안티 치트(anti-cheat) 커널 드라이버를 로딩하는 것과,
    상기 부팅 프로세스의 완료 전에, 상기 로딩된 안티 치트 커널 드라이버를 통해 상기 게임 디바이스의 시스템 상태를 검증하는 것과,
    상기 부팅 프로세스가 완료된 후에, 상기 로딩된 안티 치트 커널 드라이버를 통해, 상기 시스템 상태에 대한 변경을 검출하는 것과,
    상기 로딩된 안티 치트 커널 드라이버를 통해, 상기 검출된 시스템 상태에 대한 변경에 기초하여 상기 시스템 상태가 손상되었다고 결정하는 것과,
    상기 안티 치트 커널 드라이버와 연관된 게임 애플리케이션이 개시되는 것에 응답하여, 상기 결정된 손상된 시스템 상태에 기초하여 상기 게임 애플리케이션과 연관된 게임 서버에 대한 액세스를 차단하는 것을 포함하는
    비일시적 컴퓨터 저장 매체.
  2. 제1항에 있어서,
    상기 동작은, 상기 시스템 상태가 손상되었다는 표시를 네트워크를 통해 원격 안티 치트 서버에 전송하는 것과, 상기 원격 안티 치트 서버로부터 상기 게임 서버 또는 상기 안티 치트 서버 중 적어도 하나에 대한 액세스를 차단하라는 명령어를 수신하는 것을 더 포함하는
    비일시적 컴퓨터 저장 매체.
  3. 제2항에 있어서,
    상기 게임 서버에 대한 액세스를 차단하는 것은 상기 안티 치트 서버와의 수립된 연결을 종료하는 것 또는 상기 안티 치트 서버와의 네트워크 연결을 방지하는 것 중 하나를 포함하는
    비일시적 컴퓨터 저장 매체.
  4. 제1항에 있어서,
    상기 동작은 상기 안티 치트 커널이 로딩되는 동안 상기 게임 디바이스의 안정성 및 성능을 모니터링하는 것을 더 포함하고,
    상기 시스템 상태는 상기 로딩된 커널이 게임 디바이스 불안정성 또는 성능 문제를 일으키지 않는다는 결정에 기초하여 검증되는
    비일시적 컴퓨터 저장 매체.
  5. 제1항에 있어서,
    상기 시스템 상태가 손상되었다고 결정하는 것은 상기 게임 디바이스의 커널 계층에서 수행되는
    비일시적 컴퓨터 저장 매체.
  6. 제5항에 있어서,
    시스템 파일 세트 및 상기 메모리 내의 하나 이상의 메모리 블록이 모니터링되고 분석되어 상기 시스템 상태를 검증하고 상기 시스템 상태가 손상되었다고 결정하는
    비일시적 컴퓨터 저장 매체.
  7. 제1항에 있어서,
    상기 동작은, 상기 안티 치트 커널 드라이버와 연관된 상기 게임 애플리케이션이 개시되는 것에 응답하여, 상기 결정된 손상된 시스템 상태를 나타내는 그래픽 알림을 표시하도록 더 제공하는 것을 더 포함하는
    비일시적 컴퓨터 저장 매체.
  8. 컴퓨터 사용가능 명령어를 저장하는 비일시적 컴퓨터 저장 매체로서,
    상기 컴퓨터 사용가능 명령어는, 하나 이상의 컴퓨팅 디바이스에 의해 사용될 때, 상기 하나 이상의 컴퓨팅 디바이스로 하여금 동작을 수행하게 하되, 상기 동작은,
    게임 디바이스 상의 게임 애플리케이션의 개시에 기초하여, 상기 게임 디바이스와 안티 치트 서버 사이에 제1 네트워크 세션을 수립하고 상기 게임 디바이스와 게임 서버 사이에 제2 네트워크 세션을 수립하는 것과,
    상기 게임 디바이스에 의해 온 디맨드(on-demand) 실행을 위해 상기 안티 치트 서버로부터 상기 게임 디바이스로 전달된 안티 치트 모듈을 수신하는 것 - 상기 안티 치트 모듈은 상기 안티 치트 서버에 저장된 복수의 안티 치트 모듈로부터 선택됨 - 과,
    상기 안티 치트 모듈을 상기 게임 디바이스의 메모리로 로딩되었던 안티 치트 커널 드라이버에 전송하는 것 - 상기 안티 치트 커널 드라이버는 상기 게임 디바이스의 초기 부팅 프로세스의 완료 전에 상기 메모리로 로딩되었고 상기 안티 치트 모듈은 상기 초기 부팅 프로세스가 완료된 후 상기 로딩된 안티 치트 커널 드라이버로 전송됨 - 과
    상기 초기 부팅 프로세스가 완료된 후, 상기 안티 치트 모듈이 상기 로딩된 안티 치트 커널 드라이버에 전송되는 것에 기초하여 상기 게임 디바이스의 커널 계층에서 상기 안티 치트 모듈을 실행하는 것과,
    상기 실행된 안티 치트 모듈의 결과를 상기 게임 디바이스로부터 상기 안티 치트 서버로 전달하는 것 - 상기 결과는 상기 게임 디바이스에서 검출된 치트를 나타냄 - 과,
    상기 게임 서버 또는 상기 안티 치트 서버 중 하나로부터 수신된 알림을 표시하도록 제공하는 것 - 상기 표시된 알림은 상기 검출된 치트를 나타냄 - 을 포함하는
    비일시적 컴퓨터 저장 매체.
  9. 제8항에 있어서,
    상기 동작은 상기 검출된 치트에 기초하여 상기 제1 네트워크 세션 또는 상기 제2 네트워크 세션 중 적어도 하나를 종료하라는 명령어를 수신하는 것을 더 포함하는
    비일시적 컴퓨터 저장 매체.
  10. 제8항에 있어서,
    상기 로딩된 안티 치트 커널 드라이버는 상기 초기 부팅 프로세스의 완료 전에 상기 게임 디바이스의 시스템 상태를 보안하는
    비일시적 컴퓨터 저장 매체.
  11. 제10항에 있어서,
    상기 시스템 상태는 상기 게임 디바이스의 상기 메모리 내의 적어도 하나의 메모리 블록 및 상기 게임 디바이스의 운영 체제와 연관된 적어도 하나의 시스템 파일을 포함하는
    비일시적 컴퓨터 저장 매체.
  12. 제11항에 있어서,
    상기 시스템 상태는 상기 적어도 하나의 메모리 블록 및 상기 적어도 하나의 시스템 파일을 샌드박싱(sandboxing)함으로써 보안되는
    비일시적 컴퓨터 저장 매체.
  13. 제8항에 있어서,
    상기 로딩된 안티 치트 커널 드라이버는 상기 초기 부팅 프로세스의 완료 전에 상기 게임 디바이스의 시스템 상태를 검증하는
    비일시적 컴퓨터 저장 매체.
  14. 제8항에 있어서,
    상기 안티 치트 모듈은 상기 안티 치트 커널 드라이버로 전송되고 상기 안티 치트 모듈은 상기 안티 치트 모듈의 수신에 응답하여 실행되는
    비일시적 컴퓨터 저장 매체.
  15. 제8항에 있어서,
    상기 동작은, 상기 안티 치트 모듈이 실행되는 것에 기초하여 상기 게임 디바이스의 상기 메모리로부터 상기 안티 치트 모듈을 삭제하는 것을 더 포함하는
    비일시적 컴퓨터 저장 매체.
  16. 제8항에 있어서,
    상기 안티 치트 모듈은 모듈 선택 규칙 세트에 기초하여 상기 안티 치트 서버에 의해 선택되는
    비일시적 컴퓨터 저장 매체.
  17. 제8항에 있어서,
    상기 안티 치트 모듈은 상기 게임 디바이스가 상기 게임 서버와 온라인 멀티플레이어 게임 세션을 수립하는 동안 실행되는
    비일시적 컴퓨터 저장 매체.
  18. 제8항에 있어서,
    상기 안티 치트 서버는 상기 검출된 치트를 나타내는 메시지를 상기 게임 서버에 전달하도록 구성되고, 상기 게임 서버는 상기 전달된 메시지의 수신에 기초하여 복수의 안티 치트 완화 동작 중 하나를 수행하도록 구성되는
    비일시적 컴퓨터 저장 매체.
  19. 안티 치트 검출을 위한 컴퓨터로 구현된 방법으로서,
    게임 디바이스에 의해, 상기 게임 디바이스의 부팅 프로세스의 완료 전에 상기 게임 디바이스의 메모리에 안티 치트 커널 드라이버를 로딩하는 단계와,
    상기 부팅 프로세스의 완료 전에, 상기 로딩된 안티 치트 커널 드라이버를 통해 상기 게임 디바이스에 의해, 상기 게임 디바이스의 시스템 상태를 검증하는 단계와,
    상기 부팅 프로세스가 완료된 후에, 상기 로딩된 안티 치트 커널 드라이버를 통해 상기 게임 디바이스에 의해, 상기 시스템 상태에 대한 변경을 검출하는 단계와,
    상기 로딩된 안티 치트 커널 드라이버를 통해 상기 게임 디바이스에 의해, 상기 검출된 시스템 상태에 대한 변경에 기초하여 상기 시스템 상태가 손상되었다고 결정하는 단계와,
    상기 안티 치트 커널 드라이버와 연관된 게임 애플리케이션이 개시되는 것에 응답하여, 상기 게임 디바이스에 의해, 상기 결정된 손상된 시스템 상태에 기초하여 상기 게임 애플리케이션과 연관된 게임 서버에 대한 액세스를 차단하는 단계를 포함하는
    컴퓨터로 구현된 방법.
  20. 제19항에 있어서,
    상기 게임 디바이스에 의해, 상기 시스템 상태가 손상되었다는 표시를 네트워크를 통해 원격 안티 치트 서버에 전송하는 단계와,
    상기 게임 디바이스에 의해, 상기 원격 안티 치트 서버로부터 상기 게임 서버 또는 상기 안티 치트 서버 중 적어도 하나에 대한 액세스를 차단하라는 명령어를 수신하는 단계를 더 포함하는
    컴퓨터로 구현된 방법.
KR1020227038283A 2020-04-07 2021-04-07 안티 치트 검출을 위한 시스템 및 방법 KR102502495B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237005539A KR102651821B1 (ko) 2020-04-07 2021-04-07 안티 치트 검출을 위한 시스템 및 방법

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063006670P 2020-04-07 2020-04-07
US63/006,670 2020-04-07
US17/223,954 2021-04-06
US17/223,954 US11439911B2 (en) 2020-04-07 2021-04-06 Systems and methods for anti-cheat detection
PCT/US2021/026247 WO2021207407A1 (en) 2020-04-07 2021-04-07 Systems and methods for anti-cheat detection

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237005539A Division KR102651821B1 (ko) 2020-04-07 2021-04-07 안티 치트 검출을 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20220151712A KR20220151712A (ko) 2022-11-15
KR102502495B1 true KR102502495B1 (ko) 2023-02-21

Family

ID=77921222

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227038283A KR102502495B1 (ko) 2020-04-07 2021-04-07 안티 치트 검출을 위한 시스템 및 방법
KR1020237005539A KR102651821B1 (ko) 2020-04-07 2021-04-07 안티 치트 검출을 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020237005539A KR102651821B1 (ko) 2020-04-07 2021-04-07 안티 치트 검출을 위한 시스템 및 방법

Country Status (5)

Country Link
US (3) US11439911B2 (ko)
EP (1) EP4110482A4 (ko)
KR (2) KR102502495B1 (ko)
CN (2) CN115335127B (ko)
WO (1) WO2021207407A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090143144A1 (en) 2007-11-30 2009-06-04 Schluessler Travis T Add-in card based cheat detection platform for online applications
US20120079472A1 (en) 2008-03-26 2012-03-29 Aristocrat Technologies Australia Pty Limited Gaming machine
US20140051522A1 (en) 2005-09-07 2014-02-20 Bally Gaming International, Inc. Device identification
US11040285B1 (en) 2015-03-27 2021-06-22 Electronic Arts Inc. Secure anti-cheat system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162649B1 (en) 2000-06-30 2007-01-09 Internet Security Systems, Inc. Method and apparatus for network assessment and authentication
US6902481B2 (en) 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8302199B2 (en) * 2005-04-06 2012-10-30 Valve Corporation Anti-cheat facility for use in a networked game environment
US8784196B2 (en) 2006-04-13 2014-07-22 Igt Remote content management and resource sharing on a gaming machine and method of implementing same
CN101473333B (zh) * 2006-06-21 2011-09-07 威步系统股份公司 入侵检测的方法和系统
US20080305869A1 (en) 2006-09-05 2008-12-11 Cognisafe Ltd. Prevention of cheating in on-line interaction
US9805196B2 (en) 2009-02-27 2017-10-31 Microsoft Technology Licensing, Llc Trusted entity based anti-cheating mechanism
CN102222185B (zh) * 2011-05-25 2014-02-26 成都康禾科技有限公司 一种避免操作系统启动文件被感染的方法
US10528740B2 (en) * 2017-06-15 2020-01-07 International Business Machines Corporation Securely booting a service processor and monitoring service processor integrity
CN107909414A (zh) * 2017-12-13 2018-04-13 北京奇虎科技有限公司 应用程序的反作弊方法及装置
CN110292777B (zh) * 2018-03-22 2020-09-04 北京金山安全软件有限公司 一种游戏作弊检测方法及装置
CN109453514A (zh) * 2018-10-25 2019-03-12 珠海市君天电子科技有限公司 一种游戏作弊检测方法及装置
CN109902476A (zh) * 2019-01-25 2019-06-18 上海基分文化传播有限公司 一种反作弊方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140051522A1 (en) 2005-09-07 2014-02-20 Bally Gaming International, Inc. Device identification
US20090143144A1 (en) 2007-11-30 2009-06-04 Schluessler Travis T Add-in card based cheat detection platform for online applications
US20120079472A1 (en) 2008-03-26 2012-03-29 Aristocrat Technologies Australia Pty Limited Gaming machine
US11040285B1 (en) 2015-03-27 2021-06-22 Electronic Arts Inc. Secure anti-cheat system

Also Published As

Publication number Publication date
CN115335127A (zh) 2022-11-11
EP4110482A1 (en) 2023-01-04
KR20230030666A (ko) 2023-03-06
CN116688517A (zh) 2023-09-05
US20210308586A1 (en) 2021-10-07
KR20220151712A (ko) 2022-11-15
US11806628B2 (en) 2023-11-07
WO2021207407A1 (en) 2021-10-14
US20230405470A1 (en) 2023-12-21
US20220266150A1 (en) 2022-08-25
EP4110482A4 (en) 2023-08-09
US11439911B2 (en) 2022-09-13
CN115335127B (zh) 2023-06-09
KR102651821B1 (ko) 2024-03-27

Similar Documents

Publication Publication Date Title
US11077376B2 (en) Managing game metrics and authorizations
US11654365B2 (en) Secure anti-cheat system
KR101888712B1 (ko) 운영 체제 구성 값 보호 기법
KR101663338B1 (ko) 치팅 방지 방법, 치팅 방지 시스템 및 컴퓨터 판독가능 매체
JP5249315B2 (ja) クローズド・システムのためのプログラミング・フレームワーク
US9836601B2 (en) Protecting anti-malware processes
US20070238524A1 (en) Active validation of network devices
US9833709B2 (en) Game console system, method and computer program product with anti-malware/spyware and parental control capabilities
US20080182659A1 (en) In-play detection of altered game data
US11520895B2 (en) System and method for dynamic verification of trusted applications
KR20060059757A (ko) 컴퓨터 프로그램에 의한 자동입력 방지방법
KR102502495B1 (ko) 안티 치트 검출을 위한 시스템 및 방법
EP4398137A2 (en) Systems and methods for anti-cheat detection
KR100731550B1 (ko) 악성 컴퓨터 프로그램 실시간 감지 방법
Skaar The potential of Trusted Computing for Strengthening Security in Massively Multiplayer Online Games
US20210192026A1 (en) Define Return Value at Runtime
KR20220151813A (ko) 게임 내 인증 방법 및 컴퓨팅 장치
RANSOM TRENDS 2017: SECURITY

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant