KR101896459B1 - Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information - Google Patents

Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information Download PDF

Info

Publication number
KR101896459B1
KR101896459B1 KR1020170111246A KR20170111246A KR101896459B1 KR 101896459 B1 KR101896459 B1 KR 101896459B1 KR 1020170111246 A KR1020170111246 A KR 1020170111246A KR 20170111246 A KR20170111246 A KR 20170111246A KR 101896459 B1 KR101896459 B1 KR 101896459B1
Authority
KR
South Korea
Prior art keywords
sensor
mobile
game client
mobile game
virtual machine
Prior art date
Application number
KR1020170111246A
Other languages
Korean (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 KR1020170111246A priority Critical patent/KR101896459B1/en
Application granted granted Critical
Publication of KR101896459B1 publication Critical patent/KR101896459B1/en

Links

Images

Classifications

    • 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
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Disclosed are a method for distinguishing between a real device and a virtual machine and a mobile game system using sensor information of the device executing a mobile game client. The distinguishing method according to the present invention comprises: a step of receiving information about a predetermined sensor provided in an execution device of the mobile game client from the mobile game client; a step of analyzing whether the received sensor information includes data outputted by an actual sensor; and a step of determining whether the execution device of the game client is an actual mobile device or a virtual machine based on an analysis result.

Description

센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 방법 및 모바일 게임 시스템 {Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information}[0001] The present invention relates to a method for distinguishing between an actual device and a virtual machine using sensor information and a mobile game system,

본 발명은 모바일 게임에 대한 것으로, 더 구체적으로는 모바일 게임 클라이언트가 전송하는 센서 정보를 이용하여 게임 실행 기기가 실제 모바일 기기인지 가상 머신인지 구별하는 방법 및 그 시스템에 대한 것이다.The present invention relates to a mobile game, and more particularly, to a method and system for distinguishing whether a game executing device is an actual mobile device or a virtual machine by using sensor information transmitted from a mobile game client.

스마트폰(smart-phone) 등 모바일 기기의 컴퓨팅 성능이 향상되고 보급률이 폭발적으로 증가함에 따라 모바일 기기 전용으로 개발된 모바일 게임 역시 대중화되고 있다.As the computing performance of mobile devices such as smart phones has improved and the penetration rate has increased explosively, mobile games developed specifically for mobile devices have also become popular.

통상적으로 모바일 기기와 PC(Personal Computer)는 하드웨어, 운영체제(OS) 등이 서로 다르기 때문에, 모바일 기기용 애플리케이션은 PC에서 동작하지 않는다. 그러나, PC에 가상 머신을 설치하여 실행하면 PC에서도 모바일 기기 전용 애플리케이션을 실행할 수 있게 된다. Since the mobile device and the PC (Personal Computer) are different from each other in terms of hardware, operating system (OS), etc., the mobile device application does not operate on the PC. However, when a virtual machine is installed on a PC and executed, the PC can execute a dedicated application for the mobile device.

가상 머신(Virtual Machine)은 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터를 에뮬레이션(emulation)하는 소프트웨어이다. 가상 머신은 에뮬레이터(emulator)의 역할을 수행할 수도 있는데, 다른 컴퓨터 프로세서를 위해 쓰인 응용 소프트웨어나 운영체제가 동작할 수 있게 도와 준다.A virtual machine is a software implementation of a computing environment, that is, software that emulates a computer. A virtual machine can also act as an emulator, allowing applications or operating systems used for other computer processors to work.

이러한 가상 머신이 악용되는 일 예로서, PC에 모바일 장치 에뮬레이터를 실행하고 에뮬레이터 실행 환경에서 게임 앱과 자동입력 게임 핵을 동시에 실행하는 경우가 있다. 이 경우, 게이머의 조작에 의해 게임이 이루어지지 않고 자동입력 게임 핵에 의해 게임이 자동으로 수행될 수 있다. 이렇게 자동입력 게임 핵에 의해 게임이 자동으로 수행될 경우, 실제 모바일 기기 상에서 일반 사용자의 조작에 의해 게임이 이루어질 때보다 스코어가 높을 수 밖에 없다.As an example of such a virtual machine being abused, there is a case where a mobile device emulator is executed in a PC and a game app and an automatic input game nucleus are simultaneously executed in an emulator execution environment. In this case, the game can be automatically performed by the automatic input game nucleus without the game being performed by the operation of the gamer. If the game is automatically performed by the automatic input game nucleus, the score will be higher than when a game is performed by an ordinary user on an actual mobile device.

따라서, 정직하게 모바일 기기에서 게임을 실행하는 사용자와 PC의 가상 머신을 통해 게임을 하는 사용자 간에는 심각하게 불평등한 게임 환경이 주어지며, 그에 따른 플레이어들의 불만이 증가하고 있으며 플레이어들이 해당 모바일 게임 서비스를 외면하는 이유가 되기도 한다.Therefore, there is a serious unequal gaming environment between a user who executes a game on a mobile device honestly and a user who plays a game through a virtual machine of the PC, and the complaints of the players are increasing, It is also a reason to turn away.

또한, 모바일 게임의 스코어에 따른 금적적인 이득이 게이머들에게 주어질 수도 있기 때문에 가상 머신의 자동입력 게임 핵 등에 의해 자동으로 게임을 실행하는 경우 사회 문제화될 수 있다.In addition, since a financial gain according to a score of a mobile game may be given to a gamer, it can become a social problem when a game is automatically executed by a nucleus of an automatic input game of a virtual machine.

따라서, 모바일 게임 클라이언트 역할을 하는 애플리케이션의 실행 환경이 실제 모바일 기기 환경인지 아니면 가상 머신을 이용한 가상 환경인지를 탐지하고, 가상 머신이 이용되는 경우는 해당 애플리케이션의 구동을 제한하는 등의 조치가 필요할 것이다.Accordingly, it is necessary to detect whether the execution environment of an application serving as a mobile game client is an actual mobile device environment or a virtual environment using a virtual machine, and to restrict the operation of the application when the virtual machine is used .

가상 머신 실행 환경 탐지 기술로서, 종래에는 운영체제의 빌드 이름, 번호 등의 컴파일된 운영체제 내부 특징 값을 이용하는 방법이 사용되었다. 즉, PC에서 에뮬레이터가 실행되면 모바일 장치 하드웨어를 모방하고 그 모방된 하드웨어에 모바일 운영체제(OS)를 실행시키는데, 이때 가상 머신 실행 환경에서 구동되는 모바일 운영체제는 에뮬레이터에 따라 구별 가능한 특징 값을 가지게 된다. 즉, 종래에는 이 모바일 운영체체의 특징 값을 추출하여 가상 머신 사용 여부를 판단하였다.As a technique for detecting a virtual machine execution environment, a method using a compiled operating system internal feature value such as a build name and a number of an operating system has been conventionally used. That is, when the emulator is executed in the PC, the mobile device imitates the hardware of the mobile device and executes the mobile operating system (OS) on the imitated hardware. At this time, the mobile operating system running in the virtual machine execution environment has the distinguishable feature value according to the emulator. That is, conventionally, the feature values of the mobile operating body are extracted to determine whether or not the virtual machine is used.

그러나, 이러한 방법에 의하면 이미 알고 있는 가상 머신을 검출할 수는 있으나 신규하거나 변종된 모바일 운영체제를 실행시키는 가상 머신은 검출할 수 없다는 문제가 있다.However, according to this method, there is a problem that it is not possible to detect a virtual machine which can detect a known virtual machine but execute a new or variant mobile operating system.

본 발명은 상기와 같은 종래 기술의 문제점을 해소하기 위한 것으로, 센서 정보를 이용하여 모바일 게임 클라이언트의 실행 환경이 가상 머신 실행 환경인지 실제 모바일 기기가 사용되고 있는지 여부를 구별하되, 신규하거나 변종된 가상 머신 실행 환경까지 검출할 수 있는 방법 및 시스템을 제공하기 위한 것이다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to provide a virtual game machine which distinguishes whether an execution environment of a mobile game client is a virtual machine execution environment or an actual mobile device, And to provide a method and system capable of detecting even the execution environment.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따라 모바일 게임 서버가 모바일 게임 클라이언트를 실행하는 기기의 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 방법은, 모바일 게임 클라이언트로부터 상기 모바일 게임 클라이언트의 실행 기기가 구비한 소정의 센서에 대한 정보를 수신하는 단계와; 상기 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석하는 단계와; 상기 분석의 결과에 기초하여 상기 게임 클라이언트의 실행 기기가 실제 모바일 기기인지 가상 머신인지 여부를 판정하는 단계;를 포함할 수 있다.According to another aspect of the present invention, there is provided a method for distinguishing an actual device from a virtual machine using sensor information of a device that executes a mobile game client, Comprising: receiving information on a predetermined sensor included in an execution device of a mobile game client; Analyzing whether the received sensor information includes data output by an actual sensor; And determining whether the execution device of the game client is an actual mobile device or a virtual machine based on a result of the analysis.

상기 분석 단계에서, 상기 센서 정보에 포함된 측정 데이터를 이용하여 상기 센서가 실제로 존재하는지 여부, 상기 측정 데이터의 변동 양상 및 상기 측정 데이터의 변동량 중 적어도 하나를 분석함으로써 상기 측정 데이터가 실제 센서에 의해 만들어진 데이터인지 또는 조작된 데이터인지 여부를 판단할 수 있다.Analyzing at least one of whether the sensor is actually present, a variation of the measurement data, and a variation amount of the measurement data by using the measurement data included in the sensor information, It can be determined whether the data is created or manipulated.

상기 분석 단계에서, 상기 센서 정보에 포함된 측정 데이터의 변동 양상을 분석한 결과, 특정 값이 반복하여 출현하거나 고정 값을 가지고 있는 경우 상기 센서 정보가 조작된 데이터를 포함하고 있다고 판단할 수 있다.In the analyzing step, if the specific value repeatedly appears or has a fixed value as a result of analyzing the variation pattern of the measurement data included in the sensor information, it can be determined that the sensor information includes the manipulated data.

상기 분석 단계에서, 상기 센서 정보가 측정 데이터를 포함하지 않는 경우, 실제 센서가 존재하지 않는 것으로 판단하고, 상기 판정 단계에서, 상기 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정할 수 있다.In the analysis step, when the sensor information does not include measurement data, it is determined that no actual sensor exists, and in the determination step, it can be determined that the execution device of the game client is a virtual machine.

상기 방법은, 상기 모바일 게임 클라이언트로부터 상기 실행 기기의 기기 정보를 수신하는 단계와; 상기 기기 정보를 이용하여 상기 실행 기기가 구비해야 할 필수 센서들을 판단하는 단계를 더 포함하고, 상기 분석 단계에서, 상기 센서 정보가 상기 필수 센서들의 측정 데이터를 포함하고 있지 않으면 상기 필수 센서들이 존재하지 않는 것으로 판단하고, 상기 판정 단계에서, 상기 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정할 수 있다.The method includes receiving device information of the executing device from the mobile game client; Further comprising the step of determining essential sensors to be provided by the executing device by using the device information. In the analyzing step, if the sensor information does not include the measurement data of the essential sensors, the essential sensors do not exist It is determined that the execution device of the game client is a virtual machine in the determination step.

본 발명의 다른 실시예에 따라 모바일 게임 클라이언트를 실행하는 기기의 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 모바일 게임 시스템은, 모바일 게임 클라이언트를 실행하여 온라인 게임 서비스를 사용자에게 제공하고 기기의 센서 정보를 수집하여 모바일 게임 서버로 전송하는 사용자 단말과; 복수의 사용자 단말에 모바일 게임 서비스를 제공하고, 모바일 게임 클라이언트로부터 상기 모바일 게임 클라이언트의 실행 기기가 구비한 소정의 센서에 대한 정보를 수신하면, 상기 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석하고, 상기 분석의 결과에 기초하여 상기 게임 클라이언트를 실행하는 사용자 단말이 실제 모바일 기기인지 가상 머신인지 여부를 판정하는 모바일 게임 서버;를 포함할 수 있다.According to another embodiment of the present invention, a mobile game system that distinguishes an actual device from a virtual machine using sensor information of a device that executes a mobile game client, A user terminal for collecting sensor information and transmitting the collected sensor information to a mobile game server; When receiving information on a predetermined sensor included in an execution device of the mobile game client from a mobile game client, the received sensor information provides data to be output by an actual sensor to a plurality of user terminals, And determining whether the user terminal executing the game client is an actual mobile device or a virtual machine based on a result of the analysis.

본 발명에 의하면, 모바일 기기에 구비된 다수의 센서 중 하나 이상의 측정 데이터를 이용하여 모바일 게임 클라이언트의 실행 기기가 실제 모바일 기기인지 가상 머신인지 여부를 구별할 수 있으며, 기존의 알려진 가상 머신 뿐만 아니라 신규하거나 변종된 가상 머신 실행 환경까지 검출할 수 있다는 효과가 있다.According to the present invention, it is possible to distinguish whether an execution device of a mobile game client is an actual mobile device or a virtual machine by using one or more measurement data among a plurality of sensors provided in the mobile device, Or the virtual machine execution environment which is variant can be detected.

도 1은 본 발명의 일 실시예에 따라 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 모바일 게임 시스템의 네트워크 구성을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따라 모바일 게임 서버가 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 방법을 설명하기 위한 순서도이다.
도 3(a)는 가상 머신에서 실행되는 모바일 게임 클라이언트가 송신하는 가속도 센서 정보의 예를, 도 3(b)는 실제 모바일 기기에서 실행되는 모바일 게임 클라이언트가 송신하는 가속도 센서 정보의 예를 도시한 그래프이다.
도 4는 가상 머신이 생성하는 가속도 센서의 측정 데이터를 예시한 그래프이다.
FIG. 1 is a diagram illustrating a network configuration of a mobile game system that distinguishes an actual device from a virtual machine using sensor information according to an embodiment of the present invention. Referring to FIG.
2 is a flowchart illustrating a method of distinguishing an actual device from a virtual machine using a sensor according to an embodiment of the present invention.
3 (a) shows an example of acceleration sensor information transmitted by a mobile game client executed in a virtual machine, and FIG. 3 (b) shows an example of acceleration sensor information transmitted by a mobile game client Graph.
4 is a graph illustrating measurement data of an acceleration sensor generated by a virtual machine.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다. The terms used in this specification will be briefly described and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Also, in certain cases, there may be a term selected arbitrarily by the applicant, in which case the meaning thereof will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term, not on the name of a simple term, but on the entire contents of the present invention.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...수단", "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When an element is referred to as "including" an element throughout the specification, it is to be understood that the element may include other elements as well, without departing from the spirit or scope of the present invention. The term " means ", "part "," module ", etc. in the specification means units for processing at least one function or operation, Lt; / RTI >

아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

도 1은 본 발명의 일 실시예에 따라 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 모바일 게임 시스템의 네트워크 구성을 설명하기 위한 도면이다.FIG. 1 is a diagram illustrating a network configuration of a mobile game system that distinguishes an actual device from a virtual machine using sensor information according to an embodiment of the present invention. Referring to FIG.

도 1을 참조하면, 모바일 게임 시스템은 인터넷 등의 네트워트를 통해 사용자에게 모바일 게임 서비스를 제공하는 모바일 게임 서버(100), 모바일 게임 서버(100)에 접속하여 온라인 게임을 플레이하도록 하는 모바일 게임 클라이언트를 구동하는 복수의 사용자 단말(200)를 포함한다.Referring to FIG. 1, the mobile game system includes a mobile game server 100 for providing a mobile game service to a user through a network such as the Internet, a mobile game client for accessing a mobile game server 100 to play an online game, And a plurality of user terminals 200 to be driven.

또한, 본 발명에서 모바일 게임 서버(100)는 원칙적으로 모바일 디바이스(110)에 게임 서비스를 제공하며, 모바일 게임 서버(100)가 제공하는 모바일 게임 클라이언트는 스마트폰 등의 모바일 디바이스(110)에서만 실행되도록 프로그래밍되어 있다. 그러나, 도 1에 도시된 바와 같이 가상 머신(121)을 설치하고 그에 따른 가상 모바일 환경에서 모바일 게임 클라이언트를 실행시키는 데스크탑 컴퓨터나 노트북 컴퓨터 등의 비정상 기기(120)가 존재할 수 있다.In the present invention, the mobile game server 100 provides a game service to the mobile device 110, and the mobile game server 100 provides the mobile game server 100 with only the mobile device 110 such as a smart phone . However, as shown in FIG. 1, there may be an abnormal device 120 such as a desktop computer or a notebook computer that installs the virtual machine 121 and executes the mobile game client in the virtual mobile environment.

본 발명에 따른 사용자 단말(200)은 모바일 게임 클라이언트를 실행하여 온라인 게임 서비스를 사용자에게 제공하고 기기의 센서 정보를 수집하여 모바일 게임 서버(100)로 전송하며, 이를 위해 프로세서, 메모리, 통신 모듈, 입출력 장치 등을 구비하는 컴퓨팅 시스템이다.The user terminal 200 according to the present invention executes a mobile game client to provide an online game service to a user and collects sensor information of the device and transmits the collected information to the mobile game server 100. For this purpose, An input / output device, and the like.

모바일 게임 서버(100)는 복수의 사용자 단말(200)에 모바일 게임 서비스를 제공하는 게임 서비스 제공 모듈 외에, 사용자 단말(200)에서 실행되는 모바일 게임 클라이언트로부터 소정의 센서에 대한 정보를 수신하면, 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석하고, 상기 분석의 결과에 기초하여 게임 클라이언트를 실행하는 사용자 단말이 실제 모바일 기기인지 가상 머신인지 여부를 판정하는 가상머신 구별 모듈을 구비한다.In addition to the game service providing module for providing a mobile game service to a plurality of user terminals 200, the mobile game server 100 receives information on a predetermined sensor from a mobile game client executed in the user terminal 200, And a virtual machine distinguishing module for analyzing whether the sensor information includes actual data output by the sensor and determining whether the user terminal executing the game client is an actual mobile device or a virtual machine based on the result of the analysis .

센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 모바일 게임 시스템과 그 방법에 대한 다양한 실시예는 도 2 내지 도 4를 참조하여 아래에서 더욱 상세히 설명하기로 한다.Various embodiments of a mobile game system and method for distinguishing between an actual device and a virtual machine using sensor information will be described in detail below with reference to FIGS. 2 to 4.

도 2는 본 발명의 일 실시예에 따라 게임 위젯을 호출하는 과정을 설명하기 위한 순서도이다.2 is a flowchart illustrating a process of calling a game widget according to an embodiment of the present invention.

먼저, 사용자 단말(200)의 게임 아이콘을 터치하여 모바일 게임 클라이언트를 실행시키고 모바일 게임 서버(100)에 접속하여 온라인 게임을 시작한다. 이때, 사용자 단말(200)이 모바일 기기가 아닌 경우에는 모바일 게임 클라이언트가 실행되지 않으므로 가상의 모바일 환경을 만든 다음에 모바일 게임 클라이언트를 실행하게 될 것이다. 모바일 게임 클라이언트는 게임을 진행하는 동안 모바일 게임 서버(100)의 요청에 따라 센서 정보를 획득하여 모바일 게임 서버(100)로 전송한다.First, a game icon of the user terminal 200 is touched to launch a mobile game client and connect to the mobile game server 100 to start an online game. At this time, if the user terminal 200 is not a mobile device, a mobile game client is not executed, so a virtual mobile environment is created and then a mobile game client is executed. The mobile game client acquires sensor information at the request of the mobile game server 100 and transmits the sensor information to the mobile game server 100 during the game.

모바일 기기는 다양한 유형의 센서를 구비하는데, 표 1은 스마트폰이 구비하고 있는 센서를 예시한 것이다. 근래에 사용되고 있는 휴대폰은 사용자에게 더 나은 경험을 제공하기 위해 다양한 센서들을 제공하고 있으며, 위치 정보와 같이 민감한 정보를 제외하고는 특별한 권한 획득이 없어도 그 측정 데이터를 사용할 수 있도록 공개하고 있다.Mobile devices have various types of sensors, and Table 1 illustrates the sensors that the smartphone has. Recent mobile phones offer various sensors to provide users with a better experience and disclose that the measurement data can be used without special authorization, except for sensitive information such as location information.

센서 이름Sensor name 설명Explanation 가속도acceleration 핸드폰을 손에 쥐고 사용하면 항상 발생It always happens when you use a cell phone in your hand 기울기inclination 핸드폰을 손에 쥐고 사용하면 항상 발생It always happens when you use a cell phone in your hand light 핸드폰의 방향 및 환경 상태에 따라 수시로 변경됨Changes from time to time depending on the direction of the mobile phone and the condition of the environment. 자기장magnetic field 일부 결제 시스템을 위해 도입되어 있는 센서Sensors introduced for some payment systems 가로세로Horizontal and vertical 가로 화면 모드/세로 화면 모드를 판단하기 위한 것으로,
에뮬레이터에서도 기본 제공
For determining the horizontal screen mode / vertical screen mode,
Built-in emulator
압력pressure 기압 센서로 GPS 삼각 측량이 불가능할 때 고도 판단을 위해 사용Used for altitude determination when GPS triangulation is not possible with air pressure sensor 근접Almost 통화중 볼에 핸드폰을 대는 경우의 터치 센서 오동작을 방지하기 위한
화면 ON/OFF를 위해 사용
To prevent malfunction of the touch sensor when placing a mobile phone on the ball during a call
Used for screen ON / OFF
온도Temperature 고열, 저열 상태일 때 핸드폰 작도 유무를 결정함Determine whether or not a cell phone will be constructed when it is in a high heat or low temperature condition.

표 2는 여러 유형의 센서를 기술하기 위해 본 발명에서 사용하는 상수를 나열한 것이다.Table 2 lists the constants used in the present invention to describe various types of sensors.

ConstantsConstants intint TYPE_ACCELERROMETERTYPE_ACCELERROMETER A constant describing an accelerometer
sensor type
A constant describing an accelerometer
센서 형
intint TYPE_ALLTYPE_ALL A constant describing all sensor typeA constant describing all sensor type intint TYPE_GYROSCOPETYPE_GYROSCOPE A constant describing a gyroscope
sensor type
A constant describing a gyroscope
센서 형
intint TYPE_LIGHTTYPE_LIGHT A constant describing an light sensor typeA constant describing an light sensor type intint TYPE_MAGNETIC_FIELDTYPE_MAGNETIC_FIELD A constant describing a magnetic field
sensor type
A constant describing a magnetic field
센서 형
intint TYPE_ORIENTATIONTYPE_ORIENTATION This constant id deprecated.
use SensorManager.getOrientation()
This constant id deprecated.
use SensorManager.getOrientation ()
intint TYPE_PRESSURETYPE_PRESSURE A constant describing a pressure sensor typeA constant describing a pressure sensor type intint TYPE_PROXIMITYTYPE_PROXIMITY A constant describing an proximity sensor typeA constant describing an proximity sensor type intint TYPE_TEMPERRATURETYPE_TEMPERRATURE A constant describing a temperature sensor typeA constant describing a temperature sensor type

모바일 게임 서버(100)는 상기 센서들 중에서 적어도 하나의 센서가 측정한 값들을 모바일 게임 클라이언트로 요청하여 수집한다. 바람직하게는 가속도 센서, 자이로스코프(기울기 센서), 광 센서, 자기장 센서, 방향 센서 중 적어도 하나의 측정 데이터를 수신할 수 있다.The mobile game server 100 requests and collects the values measured by at least one of the sensors from the mobile game client. Preferably, measurement data of at least one of an acceleration sensor, a gyroscope (tilt sensor), an optical sensor, a magnetic field sensor, and a direction sensor may be received.

이와 같이, 단계 S20에서는 모바일 게임 클라이언트의 실행 기기가 구비한 소정의 센서에 대한 정보를 수신한다. 소정의 센서에 대한 정보는 모바일 게임 서버(100)가 요청하는 유형의 센서가 출력하는 측정값들을 포함할 것이다.As described above, in step S20, information on a predetermined sensor included in the executing device of the mobile game client is received. The information about the predetermined sensor will include the measurement values output by the sensor of the type requested by the mobile game server 100. [

단계 S21에서는 모바일 게임 클라이언트로부터 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석한다.In step S21, it is analyzed whether the sensor information received from the mobile game client includes data output by the actual sensor.

구체적으로는 분석 단계에서, 센서 정보에 포함된 측정 데이터를 이용하여 해당 센서가 실제로 존재하는지 여부, 측정 데이터의 변동 양상 및 상기 측정 데이터의 변동량 중 적어도 하나를 분석함으로써 측정 데이터가 실제 센서에 의해 만들어진 데이터인지 또는 조작된 데이터인지 여부를 판단할 수 있다.More specifically, in the analysis step, the measurement data included in the sensor information is used to analyze at least one of whether the corresponding sensor actually exists, the variation of the measurement data, and the variation amount of the measurement data, It can be determined whether the data is data or manipulated data.

예를 들어, 모바일 게임 클라이언트가 보내주는 센서 정보에 포함된 측정 데이터의 변동 양상을 분석한 결과, 특정 값이 반복하여 출현하거나 고정 값을 가지고 있는 경우 해당 센서 정보가 조작된 데이터를 포함하고 있다고 판단할 수 있다. 이 경우 결과적으로, 모바일 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정될 것이다.For example, when the variation of the measurement data included in the sensor information sent from the mobile game client is analyzed, if the specific value repeatedly appears or has a fixed value, it is determined that the sensor information includes the manipulated data can do. As a result, in this case, it is determined that the execution device of the mobile game client is a virtual machine.

가속도 센서, 자이로스코프(기울기 센서), 자기장 센서, 방향 센서 등은 모바일 기기가 평평한 바닥에 고정되어 위치하더라도 그 출력 데이터는 미세하게나마 변화한다. 따라서, 모바일 게임 클라이언트가 보내주는 상기 센서들의 정보가 소정 시간 이상 고정된 값을 유지하고 있다면 가상 머신에 의한 실행으로 판정할 수 있을 것이다.Acceleration sensors, gyroscopes (tilt sensors), magnetic field sensors, direction sensors, etc., even if the mobile device is fixed on a flat surface, its output data changes slightly. Therefore, if the information of the sensors sent from the mobile game client maintains a fixed value for a predetermined time or more, it can be determined that the game is executed by the virtual machine.

또 다른 예로, 모바일 게임 클라이언트가 보내주는 센서 정보가 측정 데이터를 포함하지 않는 경우, 실제 센서가 존재하지 않는 것으로 판단할 수 있다. 이 경우에도 결과적으로, 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정될 것이다.As another example, if the sensor information sent by the mobile game client does not include measurement data, it can be determined that no real sensor exists. In this case as well, it will be determined that the executing device of the game client is a virtual machine.

또 다른 예로, 실제로 사용자가 모바일 기기를 손에 쥐고 게임을 실행할 때 해당 센서의 측정값 변동 양상에 대한 통계 데이터를 이용하여, 모바일 게임 클라이언트가 보내주는 센서 정보의 측정 데이터의 변동 양상과 비교 분석함으로써 이 센서 정보가 실제 센서가 출력하는 데이터로 구성되었는지 판단할 수 있다.As another example, when a user actually holds a mobile device in his / her hand and compares the variation in the measured data of the sensor information sent by the mobile game client with statistical data on the variation in the measured value of the sensor, It can be determined whether the sensor information is composed of data output from the actual sensor.

또 다른 예로, 실제로 사용자가 모바일 기기를 손에 쥐고 게임을 실행할 때 해당 센서 측정값 변동량에 대한 통계 데이터를 이용하여, 모바일 게임 클라이언트가 보내주는 센서 정보의 측정 데이터의 변동량과 비교 분석함으로써 이 센서 정보가 실제 센서가 출력하는 데이터로 구성되었는지 판단할 수 있다.As another example, when the user actually holds the mobile device in his / her hand and compares the variation of the measured data of the sensor information sent by the mobile game client with the statistical data of the sensor measured value variation, It is possible to judge whether or not the sensor is composed of data outputted from the actual sensor.

본 발명에서는 복수의 센서가 출력하는 데이터를 분석하여 실제 센서들이 존재하는지 판단할 수 있다. 예를 들어, 가속도 센서, 자이로스코프(기울기 센서), 자기장 센서, 방향 센서 등은 모바일 기기의 방향성에 따라 유사한 비율로 그 x값, y값, z값이 변화한다. 즉, 가속도 센서의 x값이 특정 값만큼 변화한다면 다른 센서들의 x값도 유사한 비율로 변화하게 된다. 따라서, 현재의 모바일 게임 클라이언트 실행 환경의 가속도 센서, 자이로스코프(기울기 센서), 자기장 센서, 방향 센서 등의 측정 값이 유사한 비율로 변동하지 않고 있다면 가상 머신에 의한 실행으로 판정할 수 있을 것이다.In the present invention, it is possible to determine whether actual sensors exist by analyzing data output from a plurality of sensors. For example, the acceleration value, the gyroscope (tilt sensor), the magnetic field sensor, the direction sensor, and the like change in x value, y value, and z value at a similar rate depending on the directionality of the mobile device. That is, if the x value of the acceleration sensor changes by a specific value, the x value of the other sensors also changes at a similar rate. Therefore, if the measured values of the acceleration sensor, the gyroscope (tilt sensor), the magnetic field sensor, the direction sensor, and the like of the current mobile game client execution environment do not fluctuate at a similar rate, it can be determined by the execution by the virtual machine.

다음으로, 상기 분석의 결과에 기초하여 게임 클라이언트의 실행 기기가 실제 모바일 기기인지 가상 머신인지 여부를 판정한다. 구체적으로, 단계 S21의 분석 결과 실제 센서가 출력하는 데이터로 판단되면(S22), 실제 모바일 기기에서 모바일 게임을 진행하고 있은 것으로 판정하고(S23), 그렇지 않으면 가상 머신에 의하 모바일 게임 클라이언트를 실행하는 비정상 상태로 판정한다(S24).Next, based on the result of the analysis, it is determined whether the execution device of the game client is an actual mobile device or a virtual machine. Specifically, if it is determined in step S21 that the actual sensor outputs the data (S22), it is determined that the mobile game is being performed on the actual mobile device (S23). Otherwise, the mobile game client is executed by the virtual machine It is determined to be in an abnormal state (S24).

이와 같이 본 발명에서 모바일 게임 클라이언트로부터 수집하는 센서 정보는 모바일 게임이 실제 모바일 기기에서 실행되고 있는지 가상 환경에서 실행되고 있는지 구분하기 위한 것으로, 센서 정보에 포함되는 측정 값들이 실제 센서에서 출력되는 데이터인지 아니면 가상 환경을 제공하는 에뮬레이터(Emulator)가 만들어 내는 것인지 여부에 따라 가상 머신의 사용 여부를 구별한다.In the present invention, the sensor information collected from the mobile game client is used to distinguish whether the mobile game is being executed in a real mobile device or a virtual environment. If the measurement values included in the sensor information are data Whether or not a virtual machine is used depends on whether or not it is generated by an emulator that provides a virtual environment.

모바일 기기가 구비하는 다양한 센서들의 센서 정보는 실제 모바일 기기를 사용하는데 필수적인 존재가 되었으나, 모바일 기기가 아닌 PC 환경 속의 에뮬레이터에서는 그렇지 않고 이들 센서가 존재하기 않으므로 센서 정보를 가짜로 조작하여 모바일 게임 서버(100)로 보내게 된다.Sensor information of various sensors provided by mobile devices is indispensable to use real mobile devices. However, since there is no such sensor in an emulator in a PC environment other than a mobile device, 100).

일반적으로 휴대폰 등의 모바일 기기는 사용자와 함께 이동하며 사용자가 한자리에 멈춰서 게임을 하더라도 모바일 기기를 손에 쥐고 한 손으로 터치하면서 게임을 즐기기 때문에 모바일 기기 자체는 멈춰 있는 것이 아니라 계속 움직이며 기울기도 계속 변동하게 된다. 또한, 게임을 즐기는 동안 핸드폰의 방향 및 환경 상태가 바뀌기 마련이므로 동일한 장소에서 게임을 하더라도 광 센서가 측정하는 값이 미세하게 변동한다.Generally, a mobile device such as a mobile phone moves with a user, and even if a user stops playing the game, the user holds the mobile device in his / her hand and enjoys the game while touching with one hand. Therefore, the mobile device itself is not stopped, . Also, since the direction and environmental conditions of the mobile phone are changed while playing the game, the value measured by the optical sensor varies finely even if the game is played in the same place.

사용자가 모바일 기기를 손에 쥐고 게임을 즐기는 동안 상기와 같은 이유로 몇몇 센서의 측정값은 계속 변동하며, 본 발명에서는 특히 가속도 센서, 기울기 센서, 광 센서 및 근접 센서를 이용한다. 이들 센서의 출력 데이터는 단순하게 1과 0으로 구분되는 것이 아니라 매우 세밀한 수치로 기록되도 있기 때문에, 작은 변화에도 세밀하게 수치가 변동된다.While the user holds the mobile device in his / her hand and enjoys the game, the measurement values of some sensors continuously change for the same reasons. In the present invention, in particular, acceleration sensors, tilt sensors, optical sensors and proximity sensors are used. Since the output data of these sensors are not simply divided into 1 and 0 but are recorded in very fine numerical values, the numerical values are finely changed even with small changes.

하지만, 가상 머신이 사용되는 에뮬레이터 환경의 경우, 가상으로 구현하기 번거로운 센서는 제거한 채로 실행되며, 일부 필수적인 센서들은 특정 값을 전달하도록 단순하게 구현되어 있다. 따라서, 센서 정보에 특정 측정 값이 계속해서 출현하거나 고정된 측정 값이 사용되는 경우가 많으며, 본 발명에서는 이에 대한 분석을 통해 가상의 모바일 기기와 실제 모바일 기기를 구분한다.However, in the case of an emulator environment where a virtual machine is used, the virtual sensor is executed without removing the troublesome sensor, and some essential sensors are simply implemented to transmit a specific value. Therefore, in many cases, a certain measurement value appears in the sensor information or a fixed measurement value is used. In the present invention, a virtual mobile device and an actual mobile device are distinguished through analysis.

예를 들어, 화면의 밝기 조정에 사용되는 광 센서 측정 값의 안드로이드 내부 정의를 살펴보면 값이 매우 광범위하게 다루어지고 있음을 알 수 있다. 표 3은 광 센서의 측정 값 척도들을 예시한 것이다.For example, if you look inside the Android definition of the light sensor measurements used to adjust the brightness of the screen, you can see that the values are being handled extensively. Table 3 illustrates measurement metrics of the optical sensor.

광센서의 측정값 척도들Measurement values of optical sensors ●SensorManager.LIGHT_NO_MOON: 0.001
●SensorManager.LIGHT_FULLMOON: 0.25
●SensorManager.LIGHT_CLOUDY: 100
●SensorManager.LIGHT_SUNRISE: 400
●SensorManager.LIGHT_OVERCAST: 10000
●SensorManager.LIGHT_SHADE: 20000
●SensorManager.LIGHT_SUNLIGHT: 110000
●SensorManager.LIGHT_SNLIGHT_MAX: 120000
● SensorManager.LIGHT_NO_MOON: 0.001
● SensorManager.LIGHT_FULLMOON: 0.25
● SensorManager.LIGHT_CLOUDY: 100
● SensorManager.LIGHT_SUNRISE: 400
● SensorManager.LIGHT_OVERCAST: 10000
● SensorManager.LIGHT_SHADE: 20000
● SensorManager.LIGHT_SUNLIGHT: 110000
● SensorManager.LIGHT_SNLIGHT_MAX: 120000

광 센서의 경우 주/야간의 화면 밝기 조절을 위해 근래의 모바일 기기 대부분에 포함되어 있으나 PC 환경, 즉 가상의 모바일 게임 환경에는 존재하지 않는다. 광 센서 측정 데이터의 경우도 추가 권한 없이 얻을 수 있는 기기 정보(모델명)와의 매칭을 통해 해당 센서가 존재해야 하는 모델인데도 광 센서가 없는 경우 가상 머신이거나 고장 기기로 판단할 수 있다. 또한, 광 센서의 측정 값을 센서 정보로 보내오기는 하지만 고정된 값이거나 특정 측정 값이 계속 출현하는 경우는 실제 센서가 없으며 가상 머신에 의한 게임 플레이 중인 것으로 판단할 수 있다.The optical sensor is included in most of the recent mobile devices for adjusting the screen brightness of day / night, but it does not exist in the PC environment, that is, the virtual mobile game environment. In the case of optical sensor measurement data, it can be judged to be a virtual machine or a faulty device in the absence of an optical sensor even though the corresponding sensor is present through matching with device information (model name) that can be obtained without additional authority. Also, although the measured value of the optical sensor is sent to the sensor information, if the measured value is a fixed value or a certain measured value continues to appear, it is judged that there is no actual sensor and the game is being played by the virtual machine.

가속도 센서의 출력 데이터의 경우 도 3에 도시된 예와 같이 가상 머신과 실제 모바일 기기가 전송하는 정보의 양상이 확연히 다르다.In the case of the output data of the acceleration sensor, the information transmitted by the virtual machine and the actual mobile device is significantly different as in the example shown in FIG.

도 3(a)는 가상 머신이 생성하여 출력하는 가속도 측정 값을 그래프로 도시한 것으로, 시간이 흘러도 동일한 x, y, z 값을 가짐을 알 수 있다.FIG. 3A is a graph showing the acceleration measurement values generated and output by the virtual machine, and it can be seen that they have the same x, y, and z values over time.

도 3(b)는 실제 모바일 기기가 가속도 센서를 통해 측정한 데이터를 그래프로 도시한 것으로, 시간이 지남에 따라 미세하게 변화하는 x, y, z 방향의 가속도를 가짐을 알 수 있다.FIG. 3 (b) is a graph showing data measured by an actual mobile device through an acceleration sensor, and it can be seen that the acceleration has an x, y, and z direction that varies finely with time.

몇몇 가상 머신들은 가속도 변동 양상에 따라 비정상적인 모바일 게임 사용을 감지하는 상황에 대비하기 위해, 센서 값을 변경해주는 기능을 포함하고 있다. 그러나, 도 4의 예와 같이 실제 상황에서 재현하기 힘든 고정 값을 계속해서 재생산하는 양상을 보인다.Some virtual machines include the ability to change sensor values to detect unusual mobile game usage in response to acceleration variations. However, as in the example of Fig. 4, the fixed values that are hard to reproduce in actual situations are continuously reproduced.

도 4의 가속도 센서 그래프를 보면, 가상 머신에 의해 게임을 실행하는 사용자가 가상 환경에서 제공하는 핸드폰 흔들기 버튼(40)을 일정 간격을 두고 2번 눌르거나 동일 기능을 실행하기 위한 조작(Ctrl+O)을 했을 때 측정 값이 동일하게 반복됨을 알 수 있다.4, when a user who executes a game by a virtual machine presses a cell phone waving button 40 provided in a virtual environment twice at a predetermined interval or performs an operation (Ctrl + O ), The measured values are repeated in the same manner.

이와 같이 가속도 센서의 출력 값이 변동하는 패턴을 분석하여 사람이 쥐고 사용하는 모바일 기기가 실제로 구비하는 가속도 센서가 출력할 수 있는 데이터의 변동 패턴을 가진 것으로 판단되면 모바일 게임 클라이언트의 실행 기기가 실제 모바일 기기인 것으로 판정하고, 그렇지 않은 경우는 가상 머신이 모바일 게임 클라이언트를 실행하고 있다고 판정할 수 있다.When the pattern of the output value of the acceleration sensor is analyzed and it is determined that the mobile device that the user holds and uses has a variation pattern of data that can be output by the acceleration sensor actually provided, It can be determined that the device is a device, and if not, it can be determined that the virtual machine is running the mobile game client.

한편, 모바일 기기의 유형이나 모델마다 필수적으로 구비하고 있는 센서들이 있으므로, 이를 이용하여 가상 머신인지 실제 기기인지 구별할 수 있다.On the other hand, since there are sensors which are indispensably provided for each type of mobile device or model, it is possible to distinguish between a virtual machine and an actual device.

이를 위해 모바일 게임 서버(100)는, 모바일 게임 클라이언트로부터 상기 실행 기기의 기기 정보를 수신하고, 수신된 기기 정보를 이용하여 상기 실행 기기가 구비해야 할 필수 센서들을 판단할 것이다. 기기 정보는 제조회사, 모델명 등의 정보를 포함할 수 있다. To this end, the mobile game server 100 receives the device information of the executing device from the mobile game client, and uses the received device information to determine essential sensors to be provided by the executing device. The device information may include information such as manufacturer, model name, and the like.

모바일 게임 서버(100)는 이들 필수 센서의 측정값을 보내달라고 모바일 게임 클라이언트로 요청하고, 모바일 게임 클라이언트가 보내주는 센서 정보가 이들 필수 센서들의 측정 데이터를 포함하고 있지 않으면 필수 센서들이 존재하지 않으며, 게임 클라이언트의 실행 기기가 실제 모바일 기기가 아니고 가상 머신인 것으로 판정할 수 있다.The mobile game server 100 requests the mobile game client to send the measured values of these essential sensors and if the sensor information sent by the mobile game client does not include the measurement data of these essential sensors, It can be determined that the execution device of the game client is not a real mobile device but a virtual machine.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to an embodiment of the present invention can be implemented in the form of a program command which can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, It belongs to the scope of right.

100: 모바일 게임 서버
200: 사용자 단말
110: 모바일 기기
120: PC(Personal Computer)
121: 가상 머신
100: Mobile game server
200: user terminal
110: Mobile device
120: PC (Personal Computer)
121: Virtual Machines

Claims (11)

모바일 게임 서버가 모바일 게임 클라이언트를 실행하는 기기의 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 방법에 있어서,
모바일 게임 클라이언트로부터 상기 모바일 게임 클라이언트의 실행 기기가 구비한 소정의 센서에 대한 정보를 수신하는 단계와;
상기 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석하는 단계와;
상기 분석의 결과에 기초하여 상기 게임 클라이언트의 실행 기기가 실제 모바일 기기인지 가상 머신인지 여부를 판정하는 단계;를 포함하는 것을 특징으로 하는 방법.
A method of distinguishing an actual device from a virtual machine using sensor information of a device that executes a mobile game client,
Receiving information on a predetermined sensor included in an execution device of the mobile game client from a mobile game client;
Analyzing whether the received sensor information includes data output by an actual sensor;
And determining whether the execution device of the game client is an actual mobile device or a virtual machine based on a result of the analysis.
제1항에 있어서,
상기 분석 단계에서, 상기 센서 정보에 포함된 측정 데이터를 이용하여 상기 센서가 실제로 존재하는지 여부, 상기 측정 데이터의 변동 양상 및 상기 측정 데이터의 변동량 중 적어도 하나를 분석함으로써 상기 측정 데이터가 실제 센서에 의해 만들어진 데이터인지 또는 조작된 데이터인지 여부를 판단하는 것을 특징으로 하는 방법.
The method according to claim 1,
Analyzing at least one of whether the sensor is actually present, a variation of the measurement data, and a variation amount of the measurement data by using the measurement data included in the sensor information, Determining whether the data is generated data or manipulated data.
제1항에 있어서,
상기 분석 단계에서, 상기 센서 정보에 포함된 측정 데이터의 변동 양상을 분석한 결과, 특정 값이 반복하여 출현하거나 고정 값을 가지고 있는 경우 상기 센서 정보가 조작된 데이터를 포함하고 있다고 판단하는 것을 특징으로 하는 방법.
The method according to claim 1,
The analyzing step determines that the sensor information includes the manipulated data when the specific value repeatedly appears or has a fixed value as a result of analyzing the variation pattern of the measurement data included in the sensor information. How to.
제1항에 있어서,
상기 분석 단계에서, 상기 센서 정보가 측정 데이터를 포함하지 않는 경우, 실제 센서가 존재하지 않는 것으로 판단하고,
상기 판정 단계에서, 상기 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정하는 것을 특징으로 하는 방법.
The method according to claim 1,
In the analysis step, when the sensor information does not include measurement data, it is determined that no actual sensor exists,
Wherein the determining step determines that the executing device of the game client is a virtual machine.
제1항에 있어서,
상기 모바일 게임 클라이언트로부터 상기 실행 기기의 기기 정보를 수신하는 단계와;
상기 기기 정보를 이용하여 상기 실행 기기가 구비해야 할 필수 센서들을 판단하는 단계를 더 포함하고,
상기 분석 단계에서, 상기 센서 정보가 상기 필수 센서들의 측정 데이터를 포함하고 있지 않으면 상기 필수 센서들이 존재하지 않는 것으로 판단하고,
상기 판정 단계에서, 상기 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정하는 것을 특징으로 하는 방법.
The method according to claim 1,
Receiving device information of the executing device from the mobile game client;
Further comprising the step of determining essential sensors to be provided by the executing device using the device information,
Wherein in the analyzing step, if the sensor information does not include measurement data of the essential sensors, it is determined that the essential sensors do not exist,
Wherein the determining step determines that the executing device of the game client is a virtual machine.
모바일 게임 서버가 모바일 게임 클라이언트를 실행하는 기기의 센서 정보를 이용하여 실제 기기와 가상 머신을 구별하는 방법을 실행하기 위해 기록매체에 기록된 컴퓨터 프로그램에 있어서, 상기 방법은,
모바일 게임 클라이언트로부터 상기 모바일 게임 클라이언트의 실행 기기가 구비한 소정의 센서에 대한 정보를 수신하는 단계와;
상기 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석하는 단계와;
상기 분석의 결과에 기초하여 상기 게임 클라이언트의 실행 기기가 실제 모바일 기기인지 가상 머신인지 여부를 판정하는 단계;를 포함하는 것을 특징으로 하는 기록매체에 기록된 컴퓨터 프로그램.
A computer program recorded on a recording medium for executing a method for a mobile game server to distinguish between an actual device and a virtual machine using sensor information of a device executing a mobile game client,
Receiving information on a predetermined sensor included in an execution device of the mobile game client from a mobile game client;
Analyzing whether the received sensor information includes data output by an actual sensor;
And determining whether the execution device of the game client is an actual mobile device or a virtual machine based on the result of the analysis.
모바일 게임 클라이언트를 실행하여 온라인 게임 서비스를 사용자에게 제공하고 기기의 센서 정보를 수집하여 모바일 게임 서버로 전송하는 사용자 단말과;
복수의 사용자 단말에 모바일 게임 서비스를 제공하고, 모바일 게임 클라이언트로부터 상기 모바일 게임 클라이언트의 실행 기기가 구비한 소정의 센서에 대한 정보를 수신하면, 상기 수신되는 센서 정보가 실제 센서에 의해 출력되는 데이터를 포함하는지를 분석하고, 상기 분석의 결과에 기초하여 상기 게임 클라이언트를 실행하는 사용자 단말이 실제 모바일 기기인지 가상 머신인지 여부를 판정하는 모바일 게임 서버;를 포함하는 것을 특징으로 하는 모바일 게임 시스템.
A user terminal that executes a mobile game client to provide an online game service to a user, collects sensor information of the device, and transmits the collected information to the mobile game server;
When receiving information on a predetermined sensor included in an execution device of the mobile game client from a mobile game client, the received sensor information provides data to be output by an actual sensor to a plurality of user terminals, And determining whether the user terminal executing the game client is an actual mobile device or a virtual machine based on a result of the analysis.
제7항에 있어서,
상기 모바일 게임 서버는, 상기 센서 정보에 포함된 측정 데이터를 이용하여 상기 센서가 실제로 존재하는지 여부, 상기 측정 데이터의 변동 양상 및 상기 측정 데이터의 변동량 중 적어도 하나를 분석함으로써 상기 측정 데이터가 실제 센서에 의해 만들어진 데이터인지 또는 조작된 데이터인지 여부를 판단하는 것을 특징으로 하는 모바일 게임 시스템.
8. The method of claim 7,
Wherein the mobile game server analyzes at least one of whether the sensor is actually present, a variation of the measurement data, and a variation amount of the measurement data using the measurement data included in the sensor information, Wherein the mobile game system determines whether the data is generated or manipulated data.
제7항에 있어서,
상기 모바일 게임 서버는, 상기 센서 정보에 포함된 측정 데이터의 변동 양상을 분석한 결과, 특정 값이 반복하여 출현하거나 고정 값을 가지고 있는 경우 상기 센서 정보가 조작된 데이터를 포함하고 있다고 판단하는 것을 특징으로 하는 모바일 게임 시스템.
8. The method of claim 7,
The mobile game server analyzes the variation of the measurement data included in the sensor information and determines that the sensor information includes the manipulated data when the specific value repeatedly appears or has a fixed value Mobile game system.
제7항에 있어서,
상기 모바일 게임 서버는, 상기 센서 정보가 측정 데이터를 포함하지 않는 경우, 실제 센서가 존재하지 않는 것으로 판단하고, 상기 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정하는 것을 특징으로 하는 모바일 게임 시스템.
8. The method of claim 7,
Wherein the mobile game server determines that an actual sensor does not exist when the sensor information does not include measurement data and determines that the execution device of the game client is a virtual machine.
제7항에 있어서,
상기 모바일 게임 서버는, 상기 모바일 게임 클라이언트로부터 상기 실행 기기의 기기 정보를 수신하고, 수신된 기기 정보를 이용하여 상기 실행 기기가 구비해야 할 필수 센서들을 판단하며, 상기 센서 정보가 상기 필수 센서들의 측정 데이터를 포함하고 있지 않으면 상기 필수 센서들이 존재하지 않으며 상기 게임 클라이언트의 실행 기기가 가상 머신인 것으로 판정하는 것을 특징으로 하는 모바일 게임 시스템.
8. The method of claim 7,
Wherein the mobile game server receives device information of the executing device from the mobile game client, determines essential sensors to be provided by the executing device using the received device information, And if it does not contain data, it determines that the required sensors do not exist and that the execution device of the game client is a virtual machine.
KR1020170111246A 2017-08-31 2017-08-31 Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information KR101896459B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170111246A KR101896459B1 (en) 2017-08-31 2017-08-31 Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170111246A KR101896459B1 (en) 2017-08-31 2017-08-31 Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information

Publications (1)

Publication Number Publication Date
KR101896459B1 true KR101896459B1 (en) 2018-10-18

Family

ID=64132964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170111246A KR101896459B1 (en) 2017-08-31 2017-08-31 Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information

Country Status (1)

Country Link
KR (1) KR101896459B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200117289A (en) * 2019-04-03 2020-10-14 넷마블 주식회사 Method for detecting macro program and mobile device performing the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120020609A (en) * 2010-08-30 2012-03-08 주식회사 엔씨소프트 Method of detecting unknown bot of online game
KR20150114292A (en) * 2014-04-01 2015-10-12 한국전자통신연구원 Method of detecting game bot by using online game log data
KR20150116299A (en) * 2014-04-07 2015-10-15 (주)스마일게이트엔터테인먼트 Method and apparatus for detecting aimbot of online game

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120020609A (en) * 2010-08-30 2012-03-08 주식회사 엔씨소프트 Method of detecting unknown bot of online game
KR20150114292A (en) * 2014-04-01 2015-10-12 한국전자통신연구원 Method of detecting game bot by using online game log data
KR20150116299A (en) * 2014-04-07 2015-10-15 (주)스마일게이트엔터테인먼트 Method and apparatus for detecting aimbot of online game

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200117289A (en) * 2019-04-03 2020-10-14 넷마블 주식회사 Method for detecting macro program and mobile device performing the same
KR102220516B1 (en) * 2019-04-03 2021-02-25 넷마블 주식회사 Method for detecting macro program and mobile device performing the same

Similar Documents

Publication Publication Date Title
CN108733427B (en) Configuration method and device of input assembly, terminal and storage medium
EP3114556B1 (en) Proximity sensor-based interactions
US9937415B1 (en) Virtual controller for touchscreen
US20160066119A1 (en) Sound effect processing method and device thereof
CN111352844B (en) Test method and related device
CN105431813A (en) Attributing user action based on biometric identity
CN105477854A (en) Handle control method, device and system applied in intelligent terminal
US20120127089A1 (en) Method and apparatus for performing user-defined macros
CN108804153A (en) Preloading method, apparatus, storage medium and the terminal of application program
CN112437294B (en) Method, device and equipment for testing identity hiding function and storage medium
WO2019076255A1 (en) Game application control method, and device
US20160313912A1 (en) Method and device for providing controller
CN110888740B (en) Incremental memory determining method, device and equipment of small program and storage medium
KR101896459B1 (en) Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information
JP7286705B2 (en) Automatic input detection method and system
KR102478952B1 (en) Method for storing image and electronic device thereof
KR20200113834A (en) Apparatus and method for providing application information
US10929085B2 (en) Electronic apparatus for controlling display of virtual input interface in environment of a plurality of output screens and operating method thereof
CN108769149B (en) Application partition processing method and device and computer readable storage medium
KR101530533B1 (en) Emulator Excultion Environment Detection
KR20120105839A (en) Game service system and game execution method thereof
KR102220516B1 (en) Method for detecting macro program and mobile device performing the same
KR20140112120A (en) Method for processing user gesture input in online game
KR102204599B1 (en) Method for outputting screen and display device for executing the same
WO2016139993A1 (en) Game program and information processing device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant