KR102220516B1 - Method for detecting macro program and mobile device performing the same - Google Patents

Method for detecting macro program and mobile device performing the same Download PDF

Info

Publication number
KR102220516B1
KR102220516B1 KR1020190039205A KR20190039205A KR102220516B1 KR 102220516 B1 KR102220516 B1 KR 102220516B1 KR 1020190039205 A KR1020190039205 A KR 1020190039205A KR 20190039205 A KR20190039205 A KR 20190039205A KR 102220516 B1 KR102220516 B1 KR 102220516B1
Authority
KR
South Korea
Prior art keywords
mobile device
touches
macro program
input
auxiliary
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190039205A
Other languages
Korean (ko)
Other versions
KR20200117289A (en
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 KR1020190039205A priority Critical patent/KR102220516B1/en
Publication of KR20200117289A publication Critical patent/KR20200117289A/en
Application granted granted Critical
Publication of KR102220516B1 publication Critical patent/KR102220516B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2109Game systems

Landscapes

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

Abstract

매크로 프로그램 탐지 방법 및 이를 수행하는 모바일 디바이스가 개시된다. 개시된 매크로 프로그램 탐지 방법은 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집하고, 복수의 터치들의 좌표에 기초하여 복수의 터치들을 복수의 군집들로 분류하며, 복수의 터치들이 분류된 복수의 군집들 및 복수의 터치들의 시간에 기초하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지한다.A method of detecting a macro program and a mobile device performing the same are disclosed. The disclosed macro program detection method collects coordinates and times of a plurality of touches input to a mobile device, classifies a plurality of touches into a plurality of clusters based on the coordinates of the plurality of touches, and classifies a plurality of touches into a plurality of clusters. It is detected whether the plurality of touches are input by the macro program based on the time of the clusters and the plurality of touches.

Description

매크로 프로그램 탐지 방법 및 이를 수행하는 모바일 디바이스{METHOD FOR DETECTING MACRO PROGRAM AND MOBILE DEVICE PERFORMING THE SAME}Macro program detection method and mobile device that performs it {METHOD FOR DETECTING MACRO PROGRAM AND MOBILE DEVICE PERFORMING THE SAME}

아래의 설명은 매크로 프로그램 탐지 방법 및 이를 수행하는 모바일 디바이스에 관한 것이다.The following description relates to a macro program detection method and a mobile device performing the same.

모바일 단말의 보급에 힘입어 온라인을 이용한 모바일 게임이 증가되고 있는 추세이다. 특히 수많은 동시 접속자들이 게임 내에서 미션이나 퀘스트를 수행함으로써 진행되는 MMORPG(Massively Multiplayer Online Role Playing Game)는 게임의 원활한 진행을 위해 레벨을 올리거나 아이템을 모으는 것이 중요하다. 하지만, 부정한 방식으로, 아이템이나 경험치나 게임 머니를 모으는 게임 플레이어들이 발생함에 따라, 정상적 방식으로 게임을 하는 다른 게임 플레이어들에게 직접 및 간접적으로 피해를 주는 일이 발생하고 있다. 따라서, 게임을 제공하는 업체는 부정한 방식으로 게임을 하는 게임 플레이어들을 구별하는 방법을 개발하는 것이 필요하다.With the spread of mobile terminals, online mobile games are on the rise. In particular, in MMORPG (Massively Multiplayer Online Role Playing Game), where a large number of simultaneous users perform missions or quests in the game, it is important to raise levels or collect items for the smooth progress of the game. However, as game players who collect items, experience points, or game money in an illegal manner occur, damage has occurred to other game players who play the game in a normal manner, directly and indirectly. Therefore, it is necessary for a company providing a game to develop a method of distinguishing game players who play games in an illegal manner.

일실시예에 따른 모바일 디바이스의 매크로 프로그램 탐지 방법은 상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집하는 단계; 상기 복수의 터치들의 좌표에 기초하여, 상기 복수의 터치들을 복수의 군집들로 분류하는 단계; 및 상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여, 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하는 단계를 포함한다.According to an embodiment, a method of detecting a macro program of a mobile device includes: collecting coordinates and times of a plurality of touches input to the mobile device; Classifying the plurality of touches into a plurality of clusters based on coordinates of the plurality of touches; And detecting whether the plurality of touches are input by a macro program, based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하는 단계는 상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들이 소정의 시간 간격으로 반복되는지 여부에 기초하여, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것인지 여부를 탐지할 수 있다.In the macro program detection method according to an embodiment, the detecting whether the plurality of touches are input by the macro program includes clusters corresponding to the plurality of touches input to the mobile device at a predetermined time interval. Based on whether or not it is repeated, it may be detected whether the plurality of touches are input by the macro program.

일실시예에 따른 매크로 프로그램 탐지 방법은 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 탐지된 경우, 상기 탐지된 결과를 검증하는 단계를 더 포함할 수 있다.The macro program detection method according to an embodiment may further include verifying the detected result when it is detected that the plurality of touches are input by the macro program.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에서 가상머신(Virtual Machine; VM)이 실행되는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.In the method of detecting a macro program according to an embodiment, verifying the detected result may verify the detected result based on whether a virtual machine (VM) is executed in the mobile device.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에 상기 복수의 터치들이 입력될 때 상기 모바일 디바이스에 포함된 자이로 센서(gyro sensor)의 출력 값이 변하는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.In the method for detecting a macro program according to an embodiment, verifying the detected result includes whether an output value of a gyro sensor included in the mobile device changes when the plurality of touches are input to the mobile device. Based on, it is possible to verify the detected result.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에 포함된 카메라에서 상기 모바일 디바이스를 제어하는 사용자가 감지되는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.In the macro program detection method according to an embodiment, verifying the detected result may verify the detected result based on whether a user controlling the mobile device is detected by a camera included in the mobile device. have.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에 상기 복수의 터치들이 입력되는 동안 상기 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.Verifying the detected result in the macro program detection method according to an embodiment is based on whether an output value of a GPS sensor included in the mobile device changes abnormally while the plurality of touches are input to the mobile device. Thus, the detected result can be verified.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.In the macro program detection method according to an embodiment, verifying the detected result is whether a predetermined time interval exists between repeated patterns among clusters corresponding to the plurality of touches input to the mobile device. Based on, it is possible to verify the detected result.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속하는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.In the macro program detection method according to an embodiment, verifying the detected result may verify the detected result based on whether a plurality of user IDs access the game server through the IP address of the mobile device. have.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.The verifying the detected result in the macro program detection method according to an embodiment is based on whether the character performing game play on the mobile device consistently acquires at least one of items, experience values, and game money for a predetermined time. Thus, the detected result can be verified.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 탐지된 결과를 검증하는 단계는 상기 모바일 디바이스에서 수행되는 게임 플레이��� 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부에 기초하여, 상기 탐지된 결과를 검증할 수 있다.In the macro program detection method according to an embodiment, verifying the detected result is based on whether the action of the character is repeated based on log analysis for game play performed on the mobile device, and verifying the detected result. can do.

일실시예에 따른 매크로 프로그램 탐지 방법은 상기 탐지된 결과가 검증된 경우, 상기 모바일 디바이스에서 수행되는 게임 플레이에 제재를 수행하고, 상기 탐지된 결과를 게임 서버로 전송하는 단계를 더 포함할 수 있다.The macro program detection method according to an embodiment may further include, when the detected result is verified, sanctioning game play performed on the mobile device, and transmitting the detected result to a game server. .

일실시예에 따른 매크로 프로그램 ���지 방법에서 상기 탐지된 결과가 검증되지 않은 경우, 상기 수집하는 단계, 상기 분류하는 단계 및 상기 탐지하는 단계가 다시 수행될 수 있다. In the macro program detection method according to an embodiment, when the detected result is not verified, the collecting step, the classifying step, and the detecting step may be performed again.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 복수의 군집들 각각은 상기 모바일 디바이스에서 실행되는 게임 어플리케이션 내 소정의 액션에 대응할 수 있다.In the method for detecting a macro program according to an embodiment, each of the plurality of clusters may correspond to a predetermined action in a game application executed on the mobile device.

일실시예에 따른 모바일 디바이스의 매크로 프로그램 탐지 방법은 상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표와 시간을 수집하는 단계; 상기 복수의 터치들의 좌표에 기초하여, 상기 복수의 터치들을 복수의 군집들로 분류하는 단계; 상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여, 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 1차 탐지하는 단계; 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 1차 탐지된 경우, 매크로 프로그램 탐지를 위한 보조 지표를 수집하는 단계; 및 상기 보조 지표에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지하는 단계를 포함한다.According to an embodiment, a method for detecting a macro program of a mobile device includes: collecting coordinates and times of a plurality of touches input to the mobile device; Classifying the plurality of touches into a plurality of clusters based on coordinates of the plurality of touches; First detecting whether the plurality of touches are input by a macro program based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches; Collecting auxiliary indicators for detection of a macro program when the plurality of touches are initially detected as being input by the macro program; And secondly detecting whether the plurality of touches are input by a macro program based on the auxiliary indicator.

일실시예에 따른 매크로 프로그램 탐지 방법에서 상기 보조 지표를 수집하는 단계는 상기 모바일 디바이스에서 가상머신이 실행되는지 여부; 상기 모바일 디바이스에 상기 복수의 터치들이 입력될 때 상기 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부; 상기 모바일 디바이스에 포함된 카메라에서 상기 모바일 디바이스를 제어하는 사용자가 감지되는지 여부; 상기 모바일 디바이스에 상기 복수의 터치들이 입력되는 동안 상기 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부; 상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부; 상기 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속하는지 여부; 상기 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부; 및 상기 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부 중 적어도 하나를 보조 지표로 수집할 수 있다.In the method for detecting a macro program according to an embodiment, the collecting of the auxiliary indicator may include whether a virtual machine is executed in the mobile device; Whether an output value of a gyro sensor included in the mobile device changes when the plurality of touches are input to the mobile device; Whether a camera included in the mobile device detects a user controlling the mobile device; Whether an output value of a GPS sensor included in the mobile device abnormally changes while the plurality of touches are input to the mobile device; Whether a predetermined time interval exists between repeated patterns among clusters corresponding to the plurality of touches input to the mobile device; Whether a plurality of user IDs access the game server through the IP address of the mobile device; Whether a character performing game play on the mobile device consistently acquires at least one of an item, an experience value, and a game money for a predetermined period of time; And whether or not an action of a character is repeated based on log analysis on game play performed on the mobile device as an auxiliary indicator.

일실시예에 따른 모바일 디바이스는 프로세서; 및 상기 프로세서에 의해 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고, 상기 적어도 하나의 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는 상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집하고, 상기 복수의 터치들의 좌표에 기초하여 상기 복수의 터치들을 복수의 군집들로 분류하며, 상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여, 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지한다.A mobile device according to an embodiment includes a processor; And a memory including at least one instruction executable by the processor, wherein when the at least one instruction is executed in the processor, the processor collects coordinates and times of a plurality of touches input to the mobile device, and , The plurality of touches are classified into a plurality of clusters based on the coordinates of the plurality of touches, and the plurality of touches are based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches. It detects whether it has been input by a macro program.

일실시예에 따른 모바일 디바이스에서 상기 프로세서는 상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들이 ���정의 시간 간격으로 반복되는지 여부에 기초하여, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것인지 여부를 탐지할 수 있다.In the mobile device according to an embodiment, the processor inputs the plurality of touches by the macro program based on whether clusters corresponding to the plurality of touches input to the mobile device are repeated at a predetermined time interval. It can be detected whether or not.

일실시예에 따른 모바일 디바이스에서 상기 프로세서는 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 탐지된 경우, 상기 탐지된 결과를 검증할 수 있다.In the mobile device according to an embodiment, when it is detected that the plurality of touches are input by the macro program, the processor may verify the detected result.

일실시예에 따른 모바일 디바이스는 프로세서; 및 상기 프로세서에 의해 실행 가능한 적어도 하나의 명령어를 포함하는 메모리를 포함하고, 상기 적어도 하나의 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는 상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표와 시간을 수집하고, 상기 복수의 터치들의 좌표에 기초하여 상기 복수의 터치들을 복수의 군집들로 분류하고, 상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 1차 탐지하고, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 1차 탐지된 경우 매크로 프로그램 탐지를 위한 보조 지표를 수집하며, 상기 보조 지표에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지한다.A mobile device according to an embodiment includes a processor; And a memory including at least one instruction executable by the processor, wherein when the at least one instruction is executed in the processor, the processor collects coordinates and times of a plurality of touches input to the mobile device , The plurality of touches are classified into a plurality of clusters based on the coordinates of the plurality of touches, and the plurality of touches are macros based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches. First detection of whether or not input by a program is performed, and when the plurality of touches are first detected as being input by the macro program, an auxiliary index for macro program detection is collected, and the plurality of Secondly, it is detected whether the touches of are input by the macro program.

일실시예에 따르면, 터치들의 좌표에 기초하여 터치들을 군집들로 분류하고 터치가 입력된 시간도 고려하여 매크로 프로그램을 탐지함으로써, 고정된 터치 좌표가 아닌 랜덤한 터치 좌표를 발생하게 끔 고도화된 매크로 프로그램도 효과적으로 탐지할 수 있다.According to an embodiment, an advanced macro to generate random touch coordinates instead of fixed touch coordinates by classifying touches into clusters based on the coordinates of the touches and detecting a macro program in consideration of the input time of the touch. Programs can also be detected effectively.

일실시예에 따르면, 보조 지표를 이용하여 매크로 프로그램을 2차 탐지함으로써, 정상적인 게임 플레이가 매크로 프로그램으로 오탐되는 것을 효과적으로 방지하고, 매크로 프로그램 탐지의 정확도를 효율적으로 향상시킬 수 있다.According to an embodiment, by secondary detection of a macro program using an auxiliary indicator, it is possible to effectively prevent normal game play from being falsely detected as a macro program, and to efficiently improve the accuracy of macro program detection.

도 1은 일실시예에 따른 게임 시스템을 나타낸 도면이다.
도 2는 일실시예에 따른 모바일 디바이스의 매크로 프로그램 탐지 방법을 나타낸 도면이다.
도 3은 일실시예에 따라 복수의 터치들을 복수의 군집들로 분류하는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라 모바일 디바이스에서 매크로 프로그램이 탐지된 이후의 동작을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 모바일 디바이스를 나타낸 도면이다.
1 is a diagram showing a game system according to an embodiment.
2 is a diagram illustrating a method of detecting a macro program by a mobile device according to an embodiment.
3 is a diagram for explaining a process of classifying a plurality of touches into a plurality of clusters according to an exemplary embodiment.
4 is a diagram illustrating an operation after a macro program is detected in a mobile device according to an embodiment.
5 is a diagram illustrating a mobile device according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 ��세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed in various forms and implemented. Accordingly, the embodiments are not limited to a specific disclosure form, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, these terms should be interpreted only for the purpose of distinguishing one component from other components. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.When a component is referred to as being "connected" to another component, it is to be understood that it may be directly connected or connected to the other component, but other components may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, action, component, part, or combination thereof exists, but one or more other features or numbers, It is to be understood that the presence or addition of steps, actions, components, parts, or combinations thereof, does not preclude the possibility of preliminary exclusion.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms, including technical or scientific terms, used herein have the same meaning as commonly understood by one of ordinary skill in the relevant technical field. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this specification. Does not.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 실시예의 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 관련 기술 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타내며, 공지된 기능 및 구조는 생략하도록 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. The specific structural or functional descriptions below are exemplified for the purpose of describing the embodiments only, and the scope of the embodiments should not be construed as being limited to the content described in the text. Those of ordinary skill in the related art can make various modifications and variations from these descriptions. In addition, the same reference numerals shown in each drawing denote the same member, and known functions and structures will be omitted.

도 1은 일실시예에 따른 게임 시스템을 나타낸 도면이다.1 is a diagram showing a game system according to an embodiment.

도 1을 참조하면, 일실시예에 따른 게임 시스템(100)은 모바일 디바이스(110), 게임 서버(120) 및 데이터베이스(130)를 포함한다.Referring to FIG. 1, a game system 100 according to an embodiment includes a mobile device 110, a game server 120, and a database 130.

모바일 디바이스(110)은 게임 어플리케이션을 실행 가능한 이동형 단������서, 예��� 들어, 스마트폰, 태블릿, 랩탑(laptop), PDA(Personal Digital Assistant) 등을 포함할 수 있다. 모바일 디바이스(110)은 게임 소프트웨어를 통해 게임 서버(120)에 접속할 수 있다. 게임 소프트웨어는 게임 어플리케이션 또는 게임 클라이언트 등으로 달리 표현될 수 있다.The mobile device 110 is a mobile terminal capable of executing a game application, and may include, for example, a smartphone, a tablet, a laptop, a personal digital assistant (PDA), or the like. The mobile device 110 may access the game server 120 through game software. The game software may be differently expressed as a game application or a game client.

도 1에는 모바일 디바이스(110)만이 게임 서버(120)에 접속되어 있는 것으로 도시되어 있으나 게임 서버(120)에는 여러 모바일 디바이스들이 접속될 수 있다.In FIG. 1, only the mobile device 110 is shown to be connected to the game server 120, but several mobile devices may be connected to the game server 120.

모바일 디바이스(110) 뿐 아니라 여러 모바일 디바이스들이 게임 서버(120)에 접속하여 게임을 플레이할 수 있다. 이 때, 모바일 디바이스(110)는 게임의 전 기능 또는 적어도 일부의 기능을 자동으로 플레이하는 매크로 프로그램이 사용되는지 여부를 탐지할 수 있다. 매크로 프로그램은 오토 매크로 프로그램일 수 있다. 오토 매크로 프로그램은 윈도우 환경에서 에뮬레이터를 이용하여 게임을 실행시키고, 게임 또는 에뮬레이터를 제어할 수 있는 윈도우 매크로 프로그램일 수 있다. 또는, 오토 매크로 프로그램은 모바일 디바이스(110)에 설치되어 사용될 수 있는 애플리케이션 형태일 수도 있다.Not only the mobile device 110 but also various mobile devices may access the game server 120 to play the game. In this case, the mobile device 110 may detect whether a macro program that automatically plays all or at least some of the functions of the game is used. The macro program may be an auto macro program. The auto macro program may be a window macro program capable of executing a game using an emulator in a window environment and controlling the game or the emulator. Alternatively, the auto macro program may be in the form of an application that can be installed and used on the mobile device 110.

이하, 모바일 디바이스(110)에서 매크로 프로그램이 탐지되는 과정에 대해서는 도면들을 참조하여 상세히 설명한다.Hereinafter, a process of detecting a macro program in the mobile device 110 will be described in detail with reference to the drawings.

도 2는 일실시예에 따른 모바일 디바이스의 매크로 프로그램 탐지 방법을 나타낸 도면이다.2 is a diagram illustrating a method of detecting a macro program by a mobile device according to an embodiment.

도 2를 참조하면, 일실시예에 따른 모바일 디바이스에 구비된 프로세서에 의해 수행되는 매크로 프로그램 탐지 방법이 도시된다. 여기서, 모바일 디바이스는 게임 어플리케이션을 실행하는 장치일 수 있다.Referring to FIG. 2, a method for detecting a macro program performed by a processor included in a mobile device according to an embodiment is illustrated. Here, the mobile device may be a device that executes a game application.

단계(210)에서, 모바일 디바이스는 터치 이벤트가 발���할 때 데이터를 수집할 수 있다. 모바일 디바이스는 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집할 수 있다. 예를 들어, 모바일 디바이스는 게임 어플리케이션의 시작 시점부터 종료 시점까지 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집할 수 있다. 모바일 디바이스는 터치의 좌표와 시간을 서로 매핑시켜 저장할 수 있으며, 터치마다 "{(x축 좌표, y축 좌표), 시간}"로 데이터를 수집할 수 있다. 예를 들어, 수집된 데이터는 [{(100, 110), 190214131020123}, {(170, 120), 190214131020234}, ...]와 같을 수 있다. 모바일 디바이스는 게임 어플리케이션 종료 후 재실행하는 경우를 대비하여, 수집된 데이터를 파일이나 데이터베이스 형태로 저장할 수 있다.In step 210, the mobile device may collect data when a touch event occurs. The mobile device may collect coordinates and times of a plurality of touches input to the mobile device. For example, the mobile device may collect coordinates and times of a plurality of touches input to the mobile device from the start point to the end point of the game application. The mobile device may map and store the coordinates and time of the touch with each other, and may collect data as "{(x-axis coordinates, y-axis coordinates), time}" for each touch. For example, the collected data may be [{(100, 110), 190214131020123}, {(170, 120), 190214131020234}, ...]. The mobile device may store the collected data in the form of a file or a database in case the game application is re-executed after termination.

실시예에 따라서, 모바일 디바이스는 터치 이벤트가 발생할 때 모바일 디바이스에 포함된 자이로 센서 및 GPS 센서 중 적어도 하나의 출력 값도 수집할 수 있다. 예를 들어, 자이로 센서의 출력 값은 모바일 디바이스의 움직임을 나타낼 수 있다. GPS 센서의 출력 값은 사용자의 이동에 따라 변하게 된다.According to an embodiment, when a touch event occurs, the mobile device may also collect an output value of at least one of a gyro sensor and a GPS sensor included in the mobile device. For example, the output value of the gyro sensor may indicate the movement of the mobile device. The output value of the GPS sensor changes according to the user's movement.

단계(220)에서, 모바일 디바이스는 복수의 터치들의 좌표에 기초하여, 복수의 터치들을 복수의 군집들로 분류한다. 모바일 디바이스는 터치 좌표들의 분포에 기초하여 복수의 터치들을 복수의 군집들로 분류할 수 있다. 복수의 군집들 각각은 모바일 디바이스에서 실행되는 게임 어플리케이션 내 소정의 액션에 대응할 수 있다. 예를 들어, 군집A는 이동 액션에 대응하고, 군집B는 공격 액션에 대응하며, 군집C는 아이템 사용 액션에 대응할 수 있다.In step 220, the mobile device classifies the plurality of touches into a plurality of clusters based on coordinates of the plurality of touches. The mobile device may classify a plurality of touches into a plurality of clusters based on the distribution of touch coordinates. Each of the plurality of clusters may correspond to a predetermined action in the game application executed on the mobile device. For example, cluster A may correspond to a movement action, cluster B corresponds to an attack action, and cluster C may correspond to an item use action.

단계(230)에서, 모바일 디바이스는 복수의 터치들이 분류된 복수의 군집들 및 복수의 터치들의 시간에 기초하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지할 수 있다. 모바일 디바이스는 입력되는 복수의 터치들에 대응하는 군집들이 소정의 시간 간격으로 반복되는지 여부에 기초하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지할 수 있다. 예를 들어, 입력되는 복수의 터치들에 대응하는 군집들이 소정의 시간 간격으로 반복되면, 모바일 디바이스는 복수의 터치들이 매크로 프로그램에 의해 입력된 것으로 판단할 수 있다. 반면, 입력되는 복수의 터치들에 대응하는 군집들이 소정의 시간 간격으로 반복되지 않으면, 모바일 디바이스는 복수의 터치들이 매크로 프로그램에 의해 입력되지 않은 것으로 판단할 수 있다.In step 230, the mobile device may detect whether the plurality of touches are input by the macro program based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches. The mobile device may detect whether the plurality of touches are input by the macro program based on whether clusters corresponding to the plurality of inputted touches are repeated at a predetermined time interval. For example, if clusters corresponding to a plurality of input touches are repeated at a predetermined time interval, the mobile device may determine that the plurality of touches have been input by a macro program. On the other hand, if clusters corresponding to a plurality of input touches are not repeated at a predetermined time interval, the mobile device may determine that the plurality of touches are not input by the macro program.

다시 말해, 모바일 디바이스는 각 군집들의 터치 입력 주기를 추출하여 소정 주기로 소정 시간만큼 연속적으로 터치가 발생하였는지 여부에 기초하여 매크로 프로그램을 탐지할 수 있다. 예를 들어, 군집A이 소정의 주기(예컨대, 3~5초 주기 등)로 소정 시간(예컨대, 12시간 등) 이상 터치되면, 매크로 프로그램이 사용되는 것으로 탐지될 수 있다. 또한, 터치가 소정의 순서(예컨대, 군집A, 군집B, 군집C 순서 등)대로 소정의 주기(예컨대, 1분 등)로 소정 시간(예컨대, 18시간 등) 이상 발생하면, 매크로 프로그램이 사용되는 것으로 탐지될 수 있다.In other words, the mobile device may detect the macro program based on whether or not a touch has been continuously generated for a predetermined time in a predetermined period by extracting the touch input period of each cluster. For example, when cluster A is touched for a predetermined period (eg, 3 to 5 second period, etc.) for a predetermined time (eg, 12 hours, etc.) or more, it may be detected that the macro program is used. In addition, if a touch occurs in a predetermined order (e.g. cluster A, cluster B, cluster C, etc.) in a predetermined period (e.g., 1 minute, etc.) for a predetermined time (e.g., 18 hours, etc.), the macro program is used. It can be detected as being.

일실시예에 따른 모바일 디바이스는 모바일 디바이스에 입력된 복수의 터치들 중 적어도 하나가 매크로 프로그램에 의해 입력된 것인지 여부도 탐지할 수 있다.The mobile device according to an embodiment may also detect whether at least one of a plurality of touches input to the mobile device is input by a macro program.

단계(230)에서 매크로 프로그램이 탐지된 경우 단계(240)가 이어서 수행되고, 단계(230)에서 매크로 프로그램이 탐지되지 않은 경우 단계(210)가 이어서 수행될 수 있다.If a macro program is detected in step 230, step 240 may be subsequently performed, and if a macro program is not detected in step 230, step 210 may be subsequently performed.

단계(240)에서, 모바일 디바이스는 매크로 프로그램 탐지를 위한 보조 지표를 수집할 수 있다.In step 240, the mobile device may collect an auxiliary indicator for detecting the macro program.

일실시예에 따른 모바일 디바이스는 모바일 디바이스에서 가상머신이 실행되는지 여부, 모바일 디바이스에 복수의 터치들이 입력될 때 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부, 모바일 디바이스에 포함된 카메라에서 모바일 디바이스를 제어하는 사용자가 감지되는지 여부, 모바일 디바이스에 복수의 터치들이 입력되는 동안 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부 및 모바일 디바이스에 입력되는 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부 중 적어도 하나를 보조 지표로 수집할 수 있다.The mobile device according to an embodiment includes whether a virtual machine is executed on the mobile device, whether an output value of a gyro sensor included in the mobile device changes when a plurality of touches are input to the mobile device, and whether a camera included in the mobile device changes. Whether the user controlling the mobile device is detected, whether the output value of the GPS sensor included in the mobile device abnormally changes while a plurality of touches are inputted to the mobile device, and whether a plurality of touches input to the mobile device At least one of whether a predetermined time interval exists between repeated patterns among clusters may be collected as an auxiliary indicator.

이 때, 모바일 디바이스는 모바일 디바이스에 포함된 카메라의 출력 이미지를 수집할 수 있다. 카메라의 출력 이미지에는 모바일 디바이스 주변의 이미지가 포함될 수 있다. 예컨대, 모바일 디바이스의 전면 카메라에서 출력된 이미지에는 모바일 디바이스를 제어하는 사용자의 모습이 포함될 수 있다.In this case, the mobile device may collect an output image of a camera included in the mobile device. The output image of the camera may include an image around the mobile device. For example, an image output from a front camera of the mobile device may include a user controlling the mobile device.

또한, 모바일 디바이스는 게임 서버로 매크로 프로그램 탐지를 위한 보조 지표를 요청할 수 있다. 게임 서버는 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 ���속하는지 여부, 모바일 디바이스에서 ���임 플���이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부, 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부 중 적어도 하나를 체크하고, 그 결과를 보조 지표로서 모바일 디바이스로 전송할 수 있다.In addition, the mobile device may request an auxiliary indicator for detecting a macro program from the game server. The game server determines whether a plurality of user IDs access the game server through the IP address of the mobile device, and whether the character performing game play on the mobile device consistently acquires at least one of items, experience points, and game money for a predetermined period of time. , It is possible to check at least one of whether or not an action of a character is repeated based on log analysis for game play performed on the mobile device, and transmit the result to the mobile device as an auxiliary indicator.

단계(250)에서, 모바일 디바이스는 앞서 수집한 보조 지표를 이용하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지할 수 있다. 매크로 프로그램을 2차 탐지하는 것은 매크로 프로그램 1차 탐지된 결과를 검증하는 것 또는 매크로 프로그램 1차 탐지가 오탐인지 여부를 판단하는 것으로 달리 표현될 수도 있다.In step 250, the mobile device may secondarily detect whether a plurality of touches are input by the macro program using the previously collected auxiliary indicator. The second detection of the macro program may be expressed differently as verifying the result of the first detection of the macro program or determining whether the first detection of the macro program is a false positive.

일실시예에 따른 모바일 디바이스는 (1) 모바일 디바이스에서 가상머신이 실행되는지 여부, (2) 모바일 디바이스에 복수의 터치들이 입력될 때 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부, (3) 모바일 디바이스에 포함된 카메라에서 모바일 디바이스를 제어하는 사용자가 감지되는지 여부, (4) 모바일 디바이스에 복수의 터치들이 입력되는 동안 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부, (5) 모바일 디바이스에 입력되는 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부, (6) 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속하는지 여부, (7) 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부 및 (8) 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부 중 적어도 하나의 보조 지표에 기초하여, 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지할 수 있다.The mobile device according to an embodiment includes (1) whether a virtual machine is executed on the mobile device, (2) whether the output value of the gyro sensor included in the mobile device changes when a plurality of touches are input to the mobile device, ( 3) Whether the user controlling the mobile device is detected by the camera included in the mobile device, (4) Whether the output value of the GPS sensor included in the mobile device changes abnormally while a plurality of touches are input to the mobile device, (5) Whether there is a predetermined time interval between repeated patterns among clusters corresponding to a plurality of touches input to the mobile device, (6) A game server where a plurality of user IDs are provided through the IP address of the mobile device. Access to, (7) whether the character performing game play on the mobile device consistently acquires at least one of items, experience points, and game money for a predetermined period of time, and (8) logs on game play performed on the mobile device On the basis of at least one auxiliary indicator of whether an action of a character based on analysis is repeated, it may be secondarily detected whether a plurality of touches are input by a macro program.

일반적으로, 매크로 프로그램은 모바일 디바이스에서 실행되는 가상머신에 의해 구동되고, 따라서 모바일 디바이스에서 가상머신이 실행되는지 여부에 기초하여 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스에 가상머신과 관련된 파일(예컨대, 특정 so/apk 파일, 기본 설치 파일 등)이 존재하는지 여부 및 모바일 디바이스의 배터리가 가상머신의 실행에 따른 변화를 나타내는지 여부(예컨대, 가상머신 실행에 따른 배터리의 급격한 감소 등) 중 적어도 하나에 기초하여, 모바일 디바이스에서 가상머신이 실행되는지 여부가 판단될 수 있다. 예를 들어, 모바일 디바이스는 모바일 디바이스에서 가상머신이 실행되면 매크로 프로그램이 실행되는 것으로 판단하고, 모바일 디바이스에서 가상머신이 실행되지 않으면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다.In general, the macro program is driven by a virtual machine running on the mobile device, and thus the macro program can be secondarily detected based on whether the virtual machine is running on the mobile device. For example, whether a file related to a virtual machine (e.g., a specific so/apk file, basic installation file, etc.) exists in the mobile device, and whether the battery of the mobile device indicates a change according to the execution of the virtual machine (e.g., Whether or not the virtual machine is executed in the mobile device may be determined based on at least one of (such as a rapid decrease in battery due to execution of the virtual machine). For example, the mobile device may determine that a macro program is executed when the virtual machine is executed on the mobile device, and may determine that the macro program is not executed if the virtual machine is not executed on the mobile device.

또한, 만약 사용자가 모바일 디바이스를 들고 사용할 경우, 모바일 디바이스가 흔들리게 되어 자이로 센서의 출력 값이 시간에 따라 변하게 된다. 반면, 매크로 프로그램에 의한 터치가 모바일 디바이스에 입력될 뿐 사용자의 직접적인 조작이 없는 경우, 모바일 디바이스가 물리적으로 흔들리지 않으므로 자이로 센서의 출력 값이 일정할 수 있다. 따라서, 모바일 디바이스에 복수의 터치들이 입력될 때 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부에 기초하여, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스는 복수의 터치들이 입력될 때 자이로 센서의 출력 값이 변하지 않으면 매크로 프로그램이 실행되는 것으로 판단하고, 자이로 센서의 출력 값이 변하면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다.In addition, if the user holds the mobile device and uses the mobile device, the mobile device shakes and the output value of the gyro sensor changes over time. On the other hand, when a touch by a macro program is input to the mobile device and there is no direct manipulation by the user, the mobile device is not physically shaken, and thus the output value of the gyro sensor may be constant. Accordingly, when a plurality of touches are input to the mobile device, the macro program may be secondarily detected based on whether an output value of the gyro sensor included in the mobile device changes. For example, if the output value of the gyro sensor does not change when a plurality of touches are input, the mobile device may determine that the macro program is executed, and if the output value of the gyro sensor changes, the macro program may not be executed.

또한, 만약 사용자가 모바일 디바이스를 직접 제어할 경우, 모바일 디바이스에 포함된 카메라를 통해 사용자를 촬영할 수 있다. 반면, 매크로 프로그램에 의한 터치만이 모바일 디바이스에 입력될 뿐이고 사용자가 모바일 디바이스를 직접 제어하지 않을 경우, 카메라의 출력 이미지에 사용자가 나타나지 않게 된다. 따라서, 모바일 디바이스에 포함된 카메라에서 모바일 디바이스를 제어하는 사용자가 감지되는지 여부에 기초하여, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스는 카메라에서 사용자가 감지되지 않으면 매크로 프로그램이 실행되는 것으로 판단���고, 카메라에서 사용자가 감지되면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다. 이 때, 얼굴 인식 기술(또는, 안면 인식 기술)을 이용하여 카메라에서 사용자가 감지되는지 여부가 판단될 수 있다.In addition, if the user directly controls the mobile device, the user may be photographed through a camera included in the mobile device. On the other hand, if only the touch by the macro program is input to the mobile device and the user does not directly control the mobile device, the user does not appear in the output image of the camera. Accordingly, the macro program may be secondarily detected based on whether a user controlling the mobile device is detected by a camera included in the mobile device. For example, the mobile device may determine that a macro program is to be executed when a user is not detected by the camera, and may determine that the macro program is not executed when a user is detected by the camera. In this case, it may be determined whether a user is detected by the camera using a face recognition technology (or a face recognition technology).

또한, 사용자가 모바일 디바이스를 실제 사용할 경우, GPS 센서의 출력 값은 사용자의 이동에 따라 변하게 되고, GPS 센서의 출력 값 변화량은 사용자의 이동 속도에 비례하게 된다. 다시 말해, GPS 센서의 출력 값 변화량에는 물리적인 제약이 존재한다. 반면, 매크로 프로그램 또는 매크로 프로그램을 구동하는 가상머신의 경우, GPS 센서의 출력 값을 소프트웨어적으로 변경 가능하므로 물리적인 제약이 존재하지 않는다. 이를테면, 순간적으로 GPS 센서의 출력 값을 한국에서 미국으로 소프트웨어적으로 변경하는 것이 가능하다. 따라서, 모바일 디바이스에 복수의 터치들이 입력되는 동안 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부에 기초하여, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스는 GPS 센서의 출력 값이 비정상적으로 변하면 매크로 프로그램이 실행되는 것으로 판단하고, GPS 센서의 출력 값이 정상적인 범위 내에서 변하면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다.In addition, when the user actually uses the mobile device, the output value of the GPS sensor changes according to the user's movement, and the amount of change in the output value of the GPS sensor is proportional to the user's moving speed. In other words, there is a physical limitation on the amount of change in the output value of the GPS sensor. On the other hand, in the case of a macro program or a virtual machine that drives the macro program, the output value of the GPS sensor can be changed by software, so there is no physical limitation. For example, it is possible to instantly change the output value of the GPS sensor from Korea to the US by software. Accordingly, the macro program may be secondarily detected based on whether an output value of a GPS sensor included in the mobile device changes abnormally while a plurality of touches are input to the mobile device. For example, the mobile device may determine that a macro program is executed when the output value of the GPS sensor changes abnormally, and may determine that the macro program is not executed when the output value of the GPS sensor changes within a normal range.

또한, 최근 쉽게 탐지되는 것을 방지하기 위하여 매크로 프로그램이 소정의 액션들을 연속적으로 수행한 뒤 의도적으로 소정 시간만큼 멈춘 후 다음 액션을 수행하는 경우가 있다. 이러한 매크로 프로그램도 누락없이 탐지하기 위해, 모바일 디바이스에 입력되는 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부를 더 고려해서, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 매크로 프로그램에 의해 군집A, 군집B, 군집C가 순서대로 터치된 후 소정 시간(예컨대, 1시간 등)동안 대기하고, 그 이후에 다시 군집A, 군집B, 군집C가 순서대로 터치되는 경우에도, 유효하게 매크로 프로그램이 2차 탐지될 수 있다.In addition, in order to prevent the detection from being easily detected recently, there is a case in which a macro program continuously performs predetermined actions and then intentionally stops for a predetermined time and then performs the next action. In order to detect such a macro program without omission, the macro program further detects whether a predetermined time interval exists between repeated patterns among clusters corresponding to a plurality of touches input to the mobile device. Can be. For example, cluster A, cluster B, and cluster C are sequentially touched by a macro program, and then wait for a predetermined time (e.g., 1 hour, etc.), and then cluster A, cluster B, and cluster C are sequentially displayed. Even when touched, the macro program can be effectively detected secondary.

또한, 사용자가 모바일 디바이스를 직접 제어할 경우, 모바일 디바이스의 IP 주소를 통해 하나의 사용자 ID가 게임 서버에 접속될 수 있다. 반면, 매크로 프로그램을 구동하는 가상머신을 통해 다수의 사용자 ID로 게임 플레이를 수행하면, 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속될 수 있다. 따라서, 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속하는지 여부에 기초하여, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스는 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속되면 매크로 프로그램이 실행되는 것으로 판단하고, 하나의 사용자 ID가 게임 서버에 접속되면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다.In addition, when the user directly controls the mobile device, one user ID may be connected to the game server through the IP address of the mobile device. On the other hand, if game play is performed with a plurality of user IDs through a virtual machine running a macro program, a plurality of user IDs may be connected to the game server through the IP address of the mobile device. Therefore, based on whether a plurality of user IDs access the game server through the IP address of the mobile device, the macro program may be secondarily detected. For example, the mobile device determines that a macro program is executed when a plurality of user IDs are connected to the game server through the IP address of the mobile device, and the macro program is not executed when one user ID is connected to the game server. I can judge.

또한, 사용자가 모바일 디바이스를 직접 제어할 경우, 모바일 디바이스에서 게임 플레이가 잘 수행될 때는 아이템, 경험치, 게임 머니가 많이 획득되는 반면, 게임 플레이가 잘 안될 때는 아이템, 경험치, 게임 머니가 적게 획득되게 된다. 이처럼, 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 아이템, 경험치, 게임 머니를 일정하게 획득하는 것은 현실적으로 불가능할 수 있다. 반면, 매크로 프로그램에 의해 게임 플레이가 수행되면, 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득할 수 있다. 따라서, 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부에 기초하여, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스는 게임 플레이를 수행하는 캐릭터가 소정 시간(예컨대, 12시간, 24시간 등) 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하면 매크로 프로그램이 실행되는 것으로 판단하고, 아이템, 경험치, 게임 머니가 일정하게 획득되지 않으면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다. 나아가, 소정 시간은 해당 캐릭터가 과거에 매크로 프로그램을 사용하는 것으로 탐지된 이력이 존재할 경우 이력이 없는 캐릭터보다 짧게 설정될 수도 있다. 예를 들어, 매크로 프로그램 사용이 한 번도 탐지되지 않은 경우 소정 시간은 24시간으로 설정되고, 1번 탐지된 경우 12시간, 2번 탐지된 경우 6시간으로 설정될 수도 있다.In addition, when the user directly controls the mobile device, a lot of items, experience and game money are acquired when the game play is well performed on the mobile device, whereas less items, experience and game money are acquired when the game is not well played. do. As such, it may be practically impossible for a character performing game play on a mobile device to consistently acquire items, experience points, and game money. On the other hand, when game play is performed by a macro program, a character performing game play on a mobile device may consistently acquire at least one of an item, experience value, and game money. Accordingly, the macro program may be secondarily detected based on whether the character performing game play on the mobile device consistently acquires at least one of items, experience values, and game money for a predetermined time. For example, the mobile device determines that a macro program is executed when a character performing game play consistently acquires at least one of items, experience points, and game money for a predetermined time (eg, 12 hours, 24 hours, etc.), If items, experience values, and game money are not consistently acquired, it may be determined that the macro program is not executed. Furthermore, the predetermined time may be set to be shorter than that of a character without a history when there is a history in which the character has been detected as using a macro program in the past. For example, if the use of a macro program is never detected, the predetermined time may be set to 24 hours, if detected once, 12 hours, and if detected twice, may be set to 6 hours.

또한, 사용자가 모바일 디바이스를 직접 제어할 경우, 게임 플레이를 수행하는 캐릭터의 액션이 게임 플레이의 상황에 따라 달라질 수 있다. 반면, 매크로 프로그램에 의해 게임 플레이가 수행되면, 캐릭터의 액션이 소정의 순서대로 반복되게 된다. 캐릭터의 액션은 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반하여 확인될 수 있다. 따라서, 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부에 기초하여, 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 모바일 디바이스는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되면 매크로 프로그램이 실행되는 것으로 판단하고, 캐릭터의 액션이 반복되지 않으면 매크로 프로그램이 실행되지 않는 것으로 판단할 수 있다. 이처럼, 로그 분석에 기반한 캐릭터의 액션을 고려할 경우, 모바일 디바이스에 입력되는 터치는 고려되지 않는다.In addition, when the user directly controls the mobile device, the action of the character performing game play may vary according to the game play situation. On the other hand, when game play is performed by the macro program, the actions of the characters are repeated in a predetermined order. The action of the character may be confirmed based on log analysis of game play performed on the mobile device. Accordingly, the macro program may be secondarily detected based on whether the action of the character is repeated based on log analysis on game play performed on the mobile device. For example, the mobile device may determine that a macro program is executed when an action of a character based on a log analysis of game play is repeated, and may determine that a macro program is not executed if the action of the character is not repeated. As described above, when the action of a character based on log analysis is considered, the touch input to the mobile device is not considered.

일실시예에 따른 모바일 디바이스는 앞서 설명한 보조 지표들 중 어느 하나에 기초하여 매크로 프로그램을 2차 탐지할 수 있다. The mobile device according to an embodiment may secondly detect the macro program based on any one of the aforementioned auxiliary indicators.

또는, 모바일 디바이스는 앞서 설명한 보조 지표들 중 적어도 둘 이상에 기초하여 매크로 프로그램을 2차 탐지할 수 있고, 이 때, 매크로 프로그램이 감지된 보조 지표에 비례하여 스코어가 증가하고, 이러한 스코어가 소정의 임계치를 초과하면 매크로 프로그램이 2차 탐지될 수 있다. 예를 들어, 앞서 설명한 총 8개의 보조 지표들을 모두 사용하여 매크로 프로그램을 2차 탐지할 경우, 8개의 보조 지표들 중 매크로 프로그램이 감지된 보조 지표의 개수가 5개이면 스코어가 5점으로 결정되고, 스코어가 소정의 임계치(예컨대, 4점)을 초과하므로 매크로 프로그램이 2차 탐지될 수 있다.Alternatively, the mobile device may secondarily detect the macro program based on at least two or more of the auxiliary indicators described above, and in this case, the score increases in proportion to the auxiliary indicator detected by the macro program, and the score is If the threshold is exceeded, the macro program can be detected secondarily. For example, in case of secondary detection of a macro program using all eight auxiliary indicators described above, if the number of auxiliary indicators detected by the macro program among the 8 auxiliary indicators is 5, the score is determined as 5 points. , Since the score exceeds a predetermined threshold (eg, 4 points), the macro program may be detected secondarily.

실시예에 따라서는 보조 지표들에 가중치가 적용될 수 있다. 예컨대, 가상머신의 실행 여부에 관련된 보조 지표는 다른 보조 지표보다 매크로 프로그램에 직접적이므로 해당 보조 지표에는 다른 보조 지표보다 2배 큰 가중치가 적용될 수 있다. 따라서, 다른 보조 지표로 스코어가 1점 상승할 때, 해당 보조 지표로는 스코어가 2점 상승할 수 있다. 또한, 모바일 디바이스에서 직접 확인 가능한 보조 지표에 게임 서버를 통해 확인해야 하는 보조 지표보다 높은 가중치가 적용될 수도 있다.Depending on the embodiment, weights may be applied to auxiliary indicators. For example, since an auxiliary indicator related to whether or not a virtual machine is executed is directly related to a macro program than other auxiliary indicators, a weight twice larger than that of other auxiliary indicators may be applied to the corresponding auxiliary indicator. Therefore, when the score increases by one point with another auxiliary index, the score may increase by two points with the corresponding auxiliary index. In addition, a higher weight may be applied to an auxiliary index that can be checked directly on the mobile device than the auxiliary index to be checked through a game server.

단계(250)에서 매트로가 2차 탐지된 경우 단계(260)가 이어서 수행되고, 단계(250)에서 매크로 프로그램이 2차 탐지되지 않은 경우 단계(210)가 이어서 수행될 수 있다.If the macro is detected secondarily in step 250, step 260 may be subsequently performed, and if the macro program is not detected secondarily in step 250, step 210 may be subsequently performed.

단계(260)에서, 모바일 디바이스는 제재를 수행하고, 게임 서버로 매크로 프로그램 탐지 결과를 전송할 수 있다. 매크로 프로그램 탐지 결과를 수신한 게임 서버는 매크로 프로그램이 사용된 모바일 디바이스나 사용자 ID를 데이터베이스에 저장하여 관리할 수 있다.In step 260, the mobile device may perform sanctions and transmit a macro program detection result to the game server. The game server receiving the macro program detection result may store and manage the mobile device or user ID in which the macro program is used in a database.

일실시예에 따르면, 매크로 프로그램이 탐지되거나, 매크로 프로그램의 사용 여부를 확인할 수 없는 경우에는 저장된 데이터가 삭제된 후 데이터가 다시 수집될 수 있다.According to an embodiment, when a macro program is detected or whether the macro program is used or not, the stored data may be deleted and then the data may be collected again.

이처럼, 보조 지표를 이용하여 매크로 프로그램을 2차 탐지함으로써, 정상적인 게임 플레이가 매크로 프로그램으로 오탐되는 것을 효과적으로 방지하고, 매크로 프로그램 탐지의 정확도를 효율적으로 향상시킬 수 있다.As described above, by secondary detection of the macro program using the auxiliary indicator, it is possible to effectively prevent normal game play from being falsely detected as a macro program, and to efficiently improve the accuracy of macro program detection.

도 3은 일실시예에 따라 복수의 터치들을 복수의 군집들로 분류하는 과정을 설명하기 위한 도면이다.3 is a diagram for explaining a process of classifying a plurality of touches into a plurality of clusters according to an exemplary embodiment.

도 3을 참조하면, 모바일 디바이스(110)에서 군집들이 분류된 예시가 도시된다. 도 3에 예시적으로 도시된 여러 점들 각각은 모바일 디바이스(100)에 입력된 터치를 나타낼 수 있다.Referring to FIG. 3, an example in which clusters are classified in the mobile device 110 is shown. Each of the dots exemplarily illustrated in FIG. 3 may represent a touch input to the mobile device 100.

모바일 디바이스(110)는 입력되는 복수의 터치들의 좌표를 이용하여, 복수의 군집들을 정의하고, 복수의 터치들을 해당 군집들로 분류할 수 있다. 이 때, 각 군집은 게임 어플리케이션 내 소정의 액션에 고유하게 대응할 수 있다. 군집들은 서로 겹치지 않게 결정될 수 있으며, 군집마다 다른 형태를 가질 수도 있다. 예컨대, 군집A는 이동 액션에 대응하고, 군집B는 공격 액션에 대응하며, 군집C는 아이템 사용 액션에 대응할 수 있다. 이를테면, 군집A는 이동 버튼이 위치하는 영역에 대응할 수 있으나, 이에 제한되지 않으며 다양한 예시가 적용될 수 있다.The mobile device 110 may define a plurality of clusters by using coordinates of a plurality of input touches, and classify the plurality of touches into corresponding clusters. In this case, each cluster may uniquely correspond to a predetermined action in the game application. Clusters may be determined not to overlap each other, and may have different shapes for each cluster. For example, cluster A may correspond to a movement action, cluster B corresponds to an attack action, and cluster C may correspond to an item use action. For example, cluster A may correspond to an area in which a move button is located, but is not limited thereto and various examples may be applied.

도 4는 일실시예에 따라 모바일 디바이스에서 매크로 프로그램이 탐지된 이후의 동작을 설명하기 위한 도면이다.4 is a diagram illustrating an operation after a macro program is detected in a mobile device according to an embodiment.

도 4를 참조하면, 일실시예에 따른 모바일 디바이스(110)와 게임 서버(120)가 도시된다. 모바일 디바이스(110)는 매크로 프로그램을 탐지하면 그 탐지 결과를 게임 서버(120)로 전송할 수 있다. 그리고, 게임 서버(120)는 매크로 프로그램이 탐지된 모바일 디바이스(110)에 제재를 가할 수 있다. 예를 들어, 게임 서버(120)는 매크로 프로그램을 사용함으로써 얻은 이익(예컨대, 아이템, 경험치, 게임 머니 등)을 몰수하거나, 매크로 프로그램이 사용된 모바일 디바이스(110)에서 소정 시간 동안 게임 플레이를 금지할 수 있다. 이외에도, 다양한 제재가 제한 없이 수행될 수 있다.Referring to FIG. 4, a mobile device 110 and a game server 120 according to an embodiment are illustrated. When the mobile device 110 detects a macro program, the detection result may be transmitted to the game server 120. In addition, the game server 120 may impose sanctions on the mobile device 110 in which the macro program is detected. For example, the game server 120 confiscates profits (e.g., items, experience points, game money, etc.) obtained by using the macro program, or prohibits game play for a predetermined time on the mobile device 110 in which the macro program is used. can do. In addition, various sanctions can be carried out without limitation.

도 5는 일실시예에 따른 모바일 디바이스를 나타낸 도면이다.5 is a diagram illustrating a mobile device according to an embodiment.

도 5를 참조하면, 일실시예에 따른 모바일 디바이스(110)는 메모리(510), 프로세서(520), 통신부(530), 디스플레이(540) 및 센서(550)를 포함할 수 있다. 메모리(510), 프로세서(520), 통신부(530), 디스플레이(540) 및 센서(550)는 버스(bus)(560)를 통하여 서로 통신할 수 있다.Referring to FIG. 5, a mobile device 110 according to an embodiment may include a memory 510, a processor 520, a communication unit 530, a display 540, and a sensor 550. The memory 510, the processor 520, the communication unit 530, the display 540, and the sensor 550 may communicate with each other through a bus 560.

메모리(510)는 컴퓨터에서 읽을 수 있는 명령어를 포함할 수 있다. 프로세서(520)는 메모리(510)에 저장된 명령어가 프로세서(520)에서 실행됨에 따라 앞서 언급된 동작들을 수행할 수 있다. 메모리(510)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.The memory 510 may include instructions that can be read by a computer. The processor 520 may perform the aforementioned operations as instructions stored in the memory 510 are executed by the processor 520. The memory 510 may be a volatile memory or a nonvolatile memory.

프로세서(520)는 명령어들, 혹은 프로그램들을 실행하거나, 모바일 디바이스(110)를 제어하는 장치로서, 예를 들어, CPU(Central Processing Unit) 및 GPU(Graphic Processing Unit)을 포함할 수 있다. The processor 520 is a device that executes instructions or programs, or controls the mobile device 110, and may include, for example, a central processing unit (CPU) and a graphic processing unit (GPU).

프로세서(520)는 모바일 디바이스(110)에 입력되는 복수의 터치들의 좌표 및 시간을 수집하고, 복수의 터치들의 좌표에 기초하여, 복수의 터치들을 복수의 군집들로 분류하며, 복수의 터치들이 분류된 복수의 군집들 및 복수의 터치들의 시간에 기초하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지한다. The processor 520 collects coordinates and times of a plurality of touches input to the mobile device 110, classifies the plurality of touches into a plurality of clusters based on the coordinates of the plurality of touches, and classifies the plurality of touches It is detected whether the plurality of touches are input by the macro program based on the time of the plurality of clusters and the plurality of touches.

또는, 프로세서(520)는 모바일 디바이스(110)에 입력되는 복수의 터치들의 좌표와 시간을 수집하고, 복수의 터치들의 좌표에 기초하여 복수의 터치들을 복수의 군집들로 분류하고, 복수의 터치들이 분류된 복수의 군집들 및 복수의 터치들의 시간에 기초하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 1차 탐지하고, 복수의 터치들이 매크로 프로그램에 의해 입력된 것으로 1차 탐지된 경우 매크로 프로그램 탐지를 위한 보조 지표를 수집하며, 보조 지표에 기초하여 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지한다.Alternatively, the processor 520 collects coordinates and times of a plurality of touches input to the mobile device 110, classifies the plurality of touches into a plurality of clusters based on the coordinates of the plurality of touches, and the plurality of touches First detection of whether a plurality of touches are input by a macro program based on the time of a plurality of classified clusters and a plurality of touches, and when a plurality of touches are detected as being input by a macro program, a macro An auxiliary index for program detection is collected, and based on the auxiliary index, it is secondarily detected whether a plurality of touches are input by a macro program.

통신부(530)는 게임 서버와 통신을 수행할 수 있다. 디스플레이(540)는 모바일 디바이스(110)에서 실행되는 게임 어플리케이션 내 게임 플레이를 표시할 수 있다. 센서(550)는 자이로 센서, GPS 센서, 카메라 중 적어도 하나를 포함할 수 있다.The communication unit 530 may communicate with the game server. The display 540 may display game play within a game application executed on the mobile device 110. The sensor 550 may include at least one of a gyro sensor, a GPS sensor, and a camera.

그 밖에, 모바일 디바이스(110)에 관해서는 상술된 동작을 처리할 수 있다.In addition, the above-described operation may be processed with respect to the mobile device 110.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices, methods, and components described in the embodiments include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플���시 메������ 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that 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, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

실시예들에서 설명된 구성요소들은 하나 이상의 DSP (Digital Signal Processor), 프로세서 (Processor), 컨트롤러 (Controller), ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array)와 같은 프로그래머블 논리 소자 (Programmable Logic Element), 다른 전자 기기들 및 이것들의 조합 중 하나 이상을 포함하는 하드웨어 구성 요소들(hardware components)에 의해 구현될 수 있다. 실시예들에서 설명된 기능들(functions) 또는 프로세스들(processes) 중 적어도 일부는 소프트웨어(software)에 의해 구현될 수 있고, 해당 소프트웨어는 기록 매체(recording medium)에 기록될 수 있다. 실시예들에서 설명된 구성요소들, 기능들 및 프로세스들은 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다.Components described in the embodiments are programmable logic elements such as one or more digital signal processors (DSPs), processors, controllers, application specific integrated circuits (ASICs), and field programmable gate arrays (FPGAs). Logic Element), other electronic devices, and hardware components including one or more of a combination thereof. At least some of the functions or processes described in the embodiments may be implemented by software, and the software may be recorded on a recording medium. Components, functions, and processes described in the embodiments may be implemented by a combination of hardware and software.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

Claims (20)

모바일 디바이스의 매크로 프로그램 탐지 방법에 있어서,
상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집하는 단계;
상기 복수의 터치들의 좌표에 기초하여, 상기 복수의 터치들을 복수의 군집들로 분류하는 단계;
상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여, 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하는 단계; 및
상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 탐지된 경우, 상기 탐지된 결과를 복수의 보조 지표들에 기반하여 검증하는 단계
를 포함하고,
상기 복수의 보조 지표들은 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 및 상기 모바일 디바이스와 통신을 수행하는 게임 서버를 통해 확인 가능한 보조 지표를 포함하고,
상기 모바일 디바이스에서 직접 확인 가능한 보조 지표는
상기 모바일 디바이스에서 가상머신(Virtual Machine; VM)이 실행되는지 여부; 및
상기 모바일 디바이스에 상기 복수의 터치들이 입력될 때 상기 모바일 디바이스에 포함된 자이로 센서(gyro sensor)의 출력 값이 변하는지 여부, 상기 모바일 디바이스에 포함된 카메라에서 상기 모바일 디바이스를 제어하는 사용자가 감지되는지 여부 및 상기 모바일 디바이스에 상기 복수의 터치들이 입력되는 동안 상기 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부 중 적어도 하나
를 포함하고,
상기 게임 서버를 통해 확인 가능한 보조 지표는
상기 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부를 포함하고,
상기 탐지된 결과를 복수의 보조 지표들에 기반하여 검증하는 단계는
상기 복수의 보조 지표들 중 매크로 프로그램을 탐지한 하나 이상의 보조 지표에 기초하여 스코어를 결정하고, 상기 스코어를 임��치와 비교하여 상기 탐지된 결과를 검증하고,
상기 스코어는
상기 게임 서버를 통해 확인 가능한 보조 지표보다 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표에 높은 가중치가 적용되고, 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 중에서 상기 가상머신이 실행되는지 여부에 대한 보조 지표에 다른 보조 지표보다 높은 가중치가 적용됨으로써, 결정되는, 매크로 프로그램 탐지 방법.
In the macro program detection method of a mobile device,
Collecting coordinates and times of a plurality of touches input to the mobile device;
Classifying the plurality of touches into a plurality of clusters based on coordinates of the plurality of touches;
Detecting whether the plurality of touches are input by a macro program based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches; And
When it is detected that the plurality of touches are input by the macro program, verifying the detected result based on a plurality of auxiliary indicators
Including,
The plurality of auxiliary indicators include an auxiliary indicator that can be directly identified by the mobile device and an auxiliary indicator that can be identified through a game server communicating with the mobile device,
The auxiliary indicators that can be checked directly on the mobile device are
Whether a virtual machine (VM) is executed in the mobile device; And
Whether the output value of a gyro sensor included in the mobile device changes when the plurality of touches are input to the mobile device, and whether a user controlling the mobile device is detected by a camera included in the mobile device At least one of whether the output value of the GPS sensor included in the mobile device changes abnormally while the plurality of touches are input to the mobile device
Including,
The auxiliary indicators that can be checked through the game server are
Including whether the character performing game play on the mobile device consistently acquires at least one of an item, an experience value, and game money for a predetermined time,
The step of verifying the detected result based on a plurality of auxiliary indicators
Determine a score based on one or more auxiliary indicators that detect a macro program among the plurality of auxiliary indicators, and verify the detected result by comparing the score with a threshold value,
The score is
A higher weight is applied to an auxiliary indicator that can be directly identified by the mobile device than an auxiliary indicator that can be identified through the game server, and from the auxiliary indicators that can be directly identified by the mobile device, other auxiliary indicators for whether the virtual machine is running or not Macro program detection method, which is determined by applying a weight higher than the indicator.
제1항에 있어서,
상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하는 단계는
상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들이 소정의 시간 간격으로 반복되는지 여부에 기초하여, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하는, 매크로 프로그램 탐지 방법.
The method of claim 1,
The step of detecting whether the plurality of touches are input by the macro program
A macro program detection method for detecting whether the plurality of touches are input by the macro program based on whether clusters corresponding to the plurality of touches input to the mobile device are repeated at a predetermined time interval .
삭제delete 제1항에 있어서,
상기 모바일 디바이스에서 가상머신이 실행되는지 여부는
상기 모바일 디바이스에 가상머신과 관련된 파일이 존재하는지 여부 및 상기 모바일 디바이스의 배터리가 가상머신의 실행에 따른 변화를 나타내는지 여부 중 적어도 하나에 기초하여 판단되는, 매크로 프로그램 탐지 방법.
The method of claim 1,
Whether the virtual machine is running on the mobile device
The method of detecting a macro program, which is determined based on at least one of whether a file related to a virtual machine exists in the mobile device and whether a battery of the mobile device indicates a change according to the execution of the virtual machine.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 탐지된 결과를 검증하는 단계는
상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부에 기초하여, 상기 탐지된 결과를 검증하는, 매크로 프로그램 탐지 방법.
The method of claim 1,
Verifying the detected result
A macro program detection method for verifying the detected result based on whether a predetermined time interval exists between repeated patterns among clusters corresponding to the plurality of touches input to the mobile device.
제1항에 있어서,
상기 탐지된 결과를 검증하는 단계는
상기 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속하는지 여부에 기초하여, 상기 탐지된 결과를 검증하는, 매크로 프로그램 탐지 방법.
The method of claim 1,
Verifying the detected result
A macro program detection method for verifying the detected result based on whether a plurality of user IDs access a game server through an IP address of the mobile device.
삭제delete 제1항에 있어서,
상기 탐지된 결과를 검증하는 단계는
상기 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부에 기초하여, 상기 탐지된 결과를 검증하는, 매크로 프로그램 탐지 방법.
The method of claim 1,
Verifying the detected result
A macro program detection method for verifying the detected result based on whether an action of a character based on log analysis of a game play performed on the mobile device is repeated.
제1항에 있어서,
상기 탐지된 결과가 검증된 경우, 상기 모바일 디바이스에서 수행되는 게임 플레이에 제재를 수행하고, 상기 탐지된 결과를 게임 서버로 전송하는 단계
를 더 포함하는 매크로 프로그램 탐지 방법.
The method of claim 1,
When the detected result is verified, sanctioning game play performed on the mobile device, and transmitting the detected result to a game server
Macro program detection method further comprising a.
제1항에 있어서,
상기 탐지된 결과가 검증되지 않은 경우, 상기 수집하는 단계, 상기 분류하는 단계 및 상기 탐지하는 단계가 다시 수행되는, 매크로 프로그램 탐지 방법.
The method of claim 1,
If the detected result is not verified, the collecting step, the classifying step, and the detecting step are performed again, the macro program detection method.
제1항에 있어서,
상기 복수의 군집들 각각은
상기 모바일 디바이스에서 실행되는 게임 어플리케이션 내 소정의 액션에 대응하는, 매크로 프로그램 탐지 방법.
The method of claim 1,
Each of the plurality of clusters
A method of detecting a macro program corresponding to a predetermined action in a game application executed on the mobile device.
모바일 디바이스의 매크로 프로그램 탐지 방법에 있어서,
상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표와 시간을 수집하는 단계;
상기 복수의 터치들의 좌표에 기초하여, 상기 복수의 터치들을 복수의 군집들로 분류하는 단계;
상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여, 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 1차 탐지하는 단계;
상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 1차 탐지된 경우, 매크로 프로그램 탐지를 위한 복수의 보조 지표들을 수집하는 단계; 및
상기 복수의 보조 지표들에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지하는 단계
를 포함하고,
상기 복수의 보조 지표들은 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 및 상기 모바일 디바이스와 통신을 수행하는 게임 서버를 통해 확인 가능한 보조 지표를 포함하고,
상기 모바일 디바이스에서 직접 확인 가능한 보조 지표는
상기 모바일 디바이스에서 가상머신이 실행되는지 여부; 및
상기 모바일 디바이스에 상기 복수의 터치들이 입력될 때 상기 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부, 상기 모바일 디바이스에 포함된 카메라에서 상기 모바일 디바이스를 제어하는 사용자가 감지되는지 여부 및 상기 모바일 디바이스에 상기 복수의 터치들이 입력되는 동안 상기 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부 중 적어도 하나
를 포함하고,
상기 게임 서버를 통해 확인 가능한 보조 지표는
상기 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부를 포함하고,
상기 복수의 보조 지표들에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지하는 단계는
상기 복수의 보조 지표들 중 매크로 프로그램을 탐지한 하나 이상의 보조 지표에 기초하여 스코어를 결정하고, 상기 스코어를 임계치와 비교하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지하고,
상기 스코어는
상기 게임 서버를 통해 확인 가능한 보조 지표보다 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표에 높은 가중치가 적용되고, 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 중에서 상기 가상머신이 실행되는지 여부에 대한 보조 지표에 다른 보조 지표보다 높은 가중치가 적용됨으로써, 결정되는, 매크로 프로그램 탐지 방법.
In the macro program detection method of a mobile device,
Collecting coordinates and times of a plurality of touches input to the mobile device;
Classifying the plurality of touches into a plurality of clusters based on coordinates of the plurality of touches;
First detecting whether the plurality of touches are input by a macro program based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches;
Collecting a plurality of auxiliary indicators for detection of a macro program when the plurality of touches are first detected as being input by the macro program; And
Secondly detecting whether the plurality of touches are input by a macro program based on the plurality of auxiliary indicators
Including,
The plurality of auxiliary indicators include an auxiliary indicator that can be directly identified by the mobile device and an auxiliary indicator that can be identified through a game server communicating with the mobile device,
The auxiliary indicators that can be checked directly on the mobile device are
Whether a virtual machine is running on the mobile device; And
Whether the output value of the gyro sensor included in the mobile device changes when the plurality of touches are input to the mobile device, whether a user controlling the mobile device is detected by a camera included in the mobile device, and the mobile device At least one of whether an output value of a GPS sensor included in the mobile device changes abnormally while the plurality of touches are input to the device
Including,
The auxiliary indicators that can be checked through the game server are
Including whether the character performing game play on the mobile device consistently acquires at least one of an item, an experience value, and game money for a predetermined time,
Secondly detecting whether the plurality of touches are input by a macro program based on the plurality of auxiliary indicators
A score is determined based on one or more auxiliary indicators that have detected a macro program among the plurality of auxiliary indicators, and the score is compared with a threshold to detect whether the plurality of touches are input by the macro program, and
The score is
A higher weight is applied to an auxiliary indicator that can be directly identified by the mobile device than an auxiliary indicator that can be identified through the game server, and from the auxiliary indicators that can be directly identified by the mobile device, other auxiliary indicators for whether the virtual machine is running or not Macro program detection method, which is determined by applying a weight higher than the indicator.
제15항에 있어서,
상기 복수의 보조 지표들은
상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들 중 반복되는 패턴들 사이에 소정의 시간 간격이 존재하는지 여부;
상기 모바일 디바이스의 IP 주소를 통해 복수의 사용자 ID들이 게임 서버에 접속하는지 여부; 및
상기 모바일 디바이스에서 수행되는 게임 플레이에 대한 로그 분석에 기반한 캐릭터의 액션이 반복되는지 여부
중 적어도 하나를 더 포함하는, 매크로 프로그램 탐지 방법.
The method of claim 15,
The plurality of auxiliary indicators are
Whether a predetermined time interval exists between repeated patterns among clusters corresponding to the plurality of touches input to the mobile device;
Whether a plurality of user IDs access the game server through the IP address of the mobile device; And
Whether the action of the character is repeated based on log analysis on game play performed on the mobile device
Macro program detection method further comprising at least one of.
모바일 디바이스에 있어서,
프로세서; 및
상기 프로세서에 의해 ���행 가능한 적어도 하나의 명령어를 포함하는 메모리
를 포함하고,
상기 적어도 하나의 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는 상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표 및 시간을 수집하고, 상기 복수의 터치들의 좌표에 기초하여 상기 복수의 터치들을 복수의 군집들로 분류하며, 상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여, 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하고, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 탐지된 경우, 상기 탐지된 결과를 복수의 보조 지표들에 기반하여 검증하고,
상기 복수의 보조 지표들은 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 및 상기 모바일 디바이스와 통신을 수행하는 게임 서버를 통해 확인 가능한 보조 지표를 포함하고,
상기 모바일 디바이스에서 직접 확인 가능한 보조 지표는
상기 모바일 디바이스에서 가상머신이 실행되는지 여부; 및
상기 모바일 디바이스에 상기 복수의 터치들이 입력될 때 상기 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부, 상기 모바일 디바이스에 포함된 카메라에서 상기 모바일 디바이스를 제어하는 사용자가 감지되는지 여부 및 상기 모바일 디바이스에 상기 복수의 터치들이 입력되는 동안 상기 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부 중 적어도 하나
를 포함하고,
상기 게임 서버를 통해 확인 가능한 보조 지표는
상기 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부를 포함하고,
상기 프로세서는
상기 복수의 보조 지표들 중 매크로 프로그램을 탐지한 하나 이상의 보조 지표에 기초하여 스코어를 결정하고, 상기 스코어를 임계치와 비교하여 상기 탐지된 결과를 검증하고,
상기 스코어는
상기 게임 서버를 통해 확인 가능한 보조 지표보다 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표에 높은 가중치가 적용되고, 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 중에서 상기 가상머신이 실행되는지 여부에 대한 보조 지표에 다른 보조 지표보다 높은 가중치가 적용됨으로써, 결정되는,
모바일 디바이스.
In a mobile device,
Processor; And
Memory containing at least one instruction executable by the processor
Including,
When the at least one command is executed by the processor, the processor collects coordinates and times of a plurality of touches input to the mobile device, and collects the plurality of touches into a plurality of clusters based on the coordinates of the plurality of touches. And detecting whether the plurality of touches are input by a macro program based on a plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches, and the plurality of touches When it is detected as input by the program, the detected result is verified based on a plurality of auxiliary indicators,
The plurality of auxiliary indicators include an auxiliary indicator that can be directly identified by the mobile device and an auxiliary indicator that can be identified through a game server communicating with the mobile device,
The auxiliary indicators that can be checked directly on the mobile device are
Whether a virtual machine is running on the mobile device; And
Whether the output value of the gyro sensor included in the mobile device changes when the plurality of touches are input to the mobile device, whether a user controlling the mobile device is detected by a camera included in the mobile device, and the mobile device At least one of whether an output value of a GPS sensor included in the mobile device changes abnormally while the plurality of touches are input to the device
Including,
The auxiliary indicators that can be checked through the game server are
Including whether the character performing game play on the mobile device consistently acquires at least one of an item, an experience value, and game money for a predetermined time,
The processor is
Determine a score based on one or more auxiliary indicators that detect a macro program among the plurality of auxiliary indicators, and verify the detected result by comparing the score with a threshold value,
The score is
A higher weight is applied to an auxiliary indicator that can be directly identified by the mobile device than an auxiliary indicator that can be identified through the game server, and from the auxiliary indicators that can be directly identified by the mobile device, other auxiliary indicators for whether the virtual machine is running or not Determined by applying a weight higher than the indicator,
Mobile device.
제17항에 있어서,
상기 프로세서는
상기 모바일 디바이스에 입력되는 상기 복수의 터치들에 대응하는 군집들이 소정의 시간 간격으로 반복되는지 여부에 기초하여, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것인지 여부를 탐지하는, 모바일 디바이스.
The method of claim 17,
The processor is
The mobile device detecting whether the plurality of touches are input by the macro program, based on whether clusters corresponding to the plurality of touches input to the mobile device are repeated at a predetermined time interval.
삭제delete 모바일 디바이스에 있어서,
프로세서; 및
상기 프로세서에 의해 실행 가능한 적어도 하나의 명령어를 포함하는 메모리
를 포함하고,
상기 적어도 하나의 명령어가 상기 프로세서에서 실행되면, 상기 프로세서는 상기 모바일 디바이스에 입력되는 복수의 터치들의 좌표와 시간을 수집하고, 상기 복수의 터치들의 좌표에 기초하여 상기 복수의 터치들을 복수의 군집들로 분류하고, 상기 복수의 터치들이 분류된 복수의 군집들 및 상기 복수의 터치들의 시간에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 1차 탐지하고, 상기 복수의 터치들이 상기 매크로 프로그램에 의해 입력된 것으로 1차 탐지된 경우 매크로 프로그램 탐지를 위한 복수의 보조 지표들을 수집하며, 상기 복수의 보조 지표들에 기초하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지하고,
상기 복수의 보조 지표들은 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 및 상기 모바일 디바이스와 통신을 수행하는 게임 서버를 통해 확인 가능한 보조 지표를 포함하고,
상기 모바일 디바이스에서 직접 확인 가능한 보조 지표는
상기 모바일 디바이스에서 가상머신이 실행되는지 여부; 및
상기 모바일 디바이스에 상기 복수의 터치들이 입력될 때 상기 모바일 디바이스에 포함된 자이로 센서의 출력 값이 변하는지 여부, 상기 모바일 디바이스에 포함된 카메라에서 상기 모바일 디바이스를 제어하는 사용자가 감지되는지 여부 및 상기 모바일 디바이스에 상기 복수의 터치들이 입력되는 동안 상기 모바일 디바이스에 포함된 GPS 센서의 출력 값이 비정상적으로 변하는지 여부 중 적어도 하나
를 포함하고,
상기 게임 서버를 통해 확인 가능한 보조 지표는
상기 모바일 디바이스에서 게임 플레이를 수행하는 캐릭터가 소정 시간 동안 아이템, 경험치 및 게임 머니 중 적어도 하나를 일정하게 획득하는지 여부를 포함하고,
상기 프로세서는
상기 복수의 보조 지표들 중 매크로 프로그램을 탐지한 하나 이상의 보조 지표에 기초하여 스코어를 결정하고, 상기 스코어를 임계치와 비교하여 상기 복수의 터치들이 매크로 프로그램에 의해 입력된 것인지 여부를 2차 탐지하고,
상기 스코어는
상기 게임 서버를 통해 확인 가능한 보조 지표보다 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표에 높은 가중치가 적용되고, 상기 모바일 디바이스에서 직접 확인 가능한 보조 지표 중에서 상기 가상머신이 실행되는지 여부에 대한 보조 지표에 다른 보조 지표보다 높은 가중치가 적용됨으로써, 결정되는,
모바일 디바이스.
In a mobile device,
Processor; And
Memory containing at least one instruction executable by the processor
Including,
When the at least one command is executed in the processor, the processor collects coordinates and times of a plurality of touches input to the mobile device, and collects the plurality of touches into a plurality of clusters based on the coordinates of the plurality of touches. Classified as, and based on the plurality of clusters in which the plurality of touches are classified and the time of the plurality of touches, it first detects whether the plurality of touches are input by a macro program, and the plurality of touches is the When it is first detected as being input by a macro program, a plurality of auxiliary indicators for macro program detection are collected, and based on the plurality of auxiliary indicators, it is determined whether the plurality of touches are input by the macro program. Detect,
The plurality of auxiliary indicators include an auxiliary indicator that can be directly identified by the mobile device and an auxiliary indicator that can be identified through a game server communicating with the mobile device,
The auxiliary indicators that can be checked directly on the mobile device are
Whether a virtual machine is running on the mobile device; And
Whether the output value of the gyro sensor included in the mobile device changes when the plurality of touches are input to the mobile device, whether a user controlling the mobile device is detected by a camera included in the mobile device, and the mobile device At least one of whether an output value of a GPS sensor included in the mobile device changes abnormally while the plurality of touches are input to the device
Including,
The auxiliary indicators that can be checked through the game server are
Including whether the character performing game play on the mobile device consistently acquires at least one of an item, an experience value, and game money for a predetermined time,
The processor is
A score is determined based on one or more auxiliary indicators that have detected a macro program among the plurality of auxiliary indicators, and the score is compared with a threshold to detect whether the plurality of touches are input by the macro program, and
The score is
A higher weight is applied to an auxiliary indicator that can be directly identified by the mobile device than an auxiliary indicator that can be identified through the game server, and from the auxiliary indicators that can be directly identified by the mobile device, other auxiliary indicators for whether the virtual machine is running or not Determined by applying a weight higher than the indicator,
Mobile device.
KR1020190039205A 2019-04-03 2019-04-03 Method for detecting macro program and mobile device performing the same Active KR102220516B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190039205A KR102220516B1 (en) 2019-04-03 2019-04-03 Method for detecting macro program and mobile device performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190039205A KR102220516B1 (en) 2019-04-03 2019-04-03 Method for detecting macro program and mobile device performing the same

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210021921A Division KR20210023924A (en) 2021-02-18 2021-02-18 Method for detecting macro program and mobile device performing the same

Publications (2)

Publication Number Publication Date
KR20200117289A KR20200117289A (en) 2020-10-14
KR102220516B1 true KR102220516B1 (en) 2021-02-25

Family

ID=72847092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190039205A Active KR102220516B1 (en) 2019-04-03 2019-04-03 Method for detecting macro program and mobile device performing the same

Country Status (1)

Country Link
KR (1) KR102220516B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102622866B1 (en) * 2022-09-26 2024-01-09 (주)잉카엔트웍스 Method and system for providing service for detecting macro bot
KR20250099975A (en) * 2023-12-26 2025-07-03 주식회사 도브러너 Method and system for detecting artificial intelligence-based macrobot

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823547B1 (en) * 2006-08-16 2008-05-22 주식회사 안철수연구소 How to automatically detect input data
KR101896459B1 (en) * 2017-08-31 2018-10-18 주식회사 엔씨소프트 Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information
KR101915802B1 (en) * 2017-06-21 2018-11-06 넷마블 주식회사 Method and apparatus for detecting macro program
KR101932765B1 (en) * 2018-11-28 2018-12-26 넷마블 주식회사 Method and apparatus for processing log data for detecting game abusers
US10207189B1 (en) * 2018-04-16 2019-02-19 Huuuge Global Ltd. System and method for determining type of player in online game

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100823547B1 (en) * 2006-08-16 2008-05-22 주식회사 안철수연구소 How to automatically detect input data
KR101915802B1 (en) * 2017-06-21 2018-11-06 넷마블 주식회사 Method and apparatus for detecting macro program
KR101896459B1 (en) * 2017-08-31 2018-10-18 주식회사 엔씨소프트 Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information
US10207189B1 (en) * 2018-04-16 2019-02-19 Huuuge Global Ltd. System and method for determining type of player in online game
KR101932765B1 (en) * 2018-11-28 2018-12-26 넷마블 주식회사 Method and apparatus for processing log data for detecting game abusers

Also Published As

Publication number Publication date
KR20200117289A (en) 2020-10-14

Similar Documents

Publication Publication Date Title
US20170372225A1 (en) Targeting content to underperforming users in clusters
KR101915802B1 (en) Method and apparatus for detecting macro program
US20120172098A1 (en) Suggesting game roles for different players based on a player's gaming statistics from other games
CN111027064B (en) Mining virus protection and removal method and device under Linux platform and storage equipment
KR102616397B1 (en) System and method for determining type of player in online game
KR101644550B1 (en) Game providing system, game providing program and game providing method
KR102220516B1 (en) Method for detecting macro program and mobile device performing the same
US10279267B2 (en) Monitoring game activity to detect a surrogate computer program
US12517779B2 (en) Method, program, system, and device for estimating cause of problem
KR20210023924A (en) Method for detecting macro program and mobile device performing the same
KR20190043923A (en) Service server, method and computer for monitoring a data packet by a suspicious user
JP7286705B2 (en) Automatic input detection method and system
CN111939556A (en) Method, device and system for detecting abnormal operation of game
KR20120014675A (en) Automatic input blocking device and method in computer system
US20130344952A1 (en) Method and system for generating signatures and locating/executing associations for a game program
KR101896459B1 (en) Method and mobile game ystem for distinguishing between real mobile device and virtual machine using sensor information
KR101139916B1 (en) Apparatus and method for detecting automatic input through the hardware
CN114570029A (en) Game plug-in detection method, device and equipment
CN108875361A (en) A kind of method, apparatus of monitoring programme, electronic equipment and storage medium
US20260021412A1 (en) Video game execution validation
KR102147496B1 (en) Method and system for blocking continuous input of similar comments
KR102106270B1 (en) Apparatus and method of data management in vr contents
US20250229186A1 (en) System, method, and program for inspecting game
EP4366847B1 (en) Method and system for validating transaction in client-server environment
KR20180138559A (en) Method and apparatus for detecting macro program

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190403

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20200617

Patent event code: PE09021S01D

AMND Amendment
PG1501 Laying open of application
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20201223

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20200617

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

X091 Application refused [patent]
AMND Amendment
PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20201223

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20200724

Comment text: Amendment to Specification, etc.

PX0701 Decision of registration after re-examination

Patent event date: 20210217

Comment text: Decision to Grant Registration

Patent event code: PX07013S01D

Patent event date: 20210122

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

Patent event date: 20201223

Comment text: Decision to Refuse Application

Patent event code: PX07011S01I

Patent event date: 20200724

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

X701 Decision to grant (after re-examination)
A107 Divisional application of patent
PA0107 Divisional application

Comment text: Divisional Application of Patent

Patent event date: 20210218

Patent event code: PA01071R01D

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210219

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210222

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20231226

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20250107

Start annual number: 5

End annual number: 5