KR101237161B1 - Method of detecting unknown bot of online game - Google Patents

Method of detecting unknown bot of online game Download PDF

Info

Publication number
KR101237161B1
KR101237161B1 KR1020100084321A KR20100084321A KR101237161B1 KR 101237161 B1 KR101237161 B1 KR 101237161B1 KR 1020100084321 A KR1020100084321 A KR 1020100084321A KR 20100084321 A KR20100084321 A KR 20100084321A KR 101237161 B1 KR101237161 B1 KR 101237161B1
Authority
KR
South Korea
Prior art keywords
online game
game client
system information
serial number
program
Prior art date
Application number
KR1020100084321A
Other languages
Korean (ko)
Other versions
KR20120020609A (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 KR1020100084321A priority Critical patent/KR101237161B1/en
Publication of KR20120020609A publication Critical patent/KR20120020609A/en
Application granted granted Critical
Publication of KR101237161B1 publication Critical patent/KR101237161B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 온라인 게임의 비공개 봇 검출방법에 관한 것으로 구체적으로는 봇 제작시의 디버깅 이벤트, 보안 제품 무력화 시도 또는 비공개 봇 특유의 마우스 및 키보드 입력 이벤트 발생처리, 코드 인젝션 등의 징후를 포착함으로써 비공개 봇 프로그램을 검출할 수 있음은 물론, 봇 프로그램 제작자 컴퓨터 및 작업장 컴퓨터의 하드웨어 정보를 이용한 전역고유식별자를 각 온라인 게임 서버들로 하여금 공유하도록 하는 것을 특징으로 하며, 이에 의할 때 비공개 봇 프로그램의 제작 초기 및 배포 초기단계부터 용이하게 탐지할 수 있다는 효과가 있다.The present invention relates to a method for detecting a private bot in an online game. Specifically, a private bot is captured by capturing a signal such as a debugging event, a security product disablement attempt, or a mouse and keyboard input event occurrence processing and code injection. In addition to detecting a program, each online game server can share a globally unique identifier using hardware information of a bot program creator computer and a workplace computer. And it can be easily detected from the initial stage of distribution.

Description

온라인 게임의 비공개 봇 검출방법{METHOD OF DETECTING UNKNOWN BOT OF ONLINE GAME}How to detect private bots in online games {METHOD OF DETECTING UNKNOWN BOT OF ONLINE GAME}

본 발명은 온라인 게임의 봇 프로그램 검출방법에 관한 것으로, 더욱 구체적으로는 알려지지 않은 비공개 봇 프로그램의 검출방법에 관한 것이다.The present invention relates to a method for detecting a bot program of an online game, and more particularly, to a method for detecting a private bot program, which is unknown.

봇(Bot)이란 다른 프로그램을 위해 반복작업을 수행하는 프로그램을 의미하는 개념인데, 온라인 게임 분야에서는 일반적으로 온라인 게임 클라이언트 실행시 함께 실행되어 마우스나 키보드 이벤트를 발생시킴으로써 게임 내 사냥, 제작, 채집 등의 활동을 자동으로 수행하는 프로그램을 지칭한다.Bot is a concept that refers to a program that performs repetitive tasks for other programs. In the online game field, it is generally executed together when an online game client is executed to generate mouse or keyboard events, thereby hunting, producing, and collecting the game. Refers to a program that automatically performs its activities.

한편, 온라인 게임 가운데 자신의 캐릭터를 조작하여 퀘스트를 수행하거나 경험치를 쌓아 레벨을 올리는 방식의 롤플레잉 게임(Role Playing Game)에서는 게임의 진행을 위하여 아이템이나 게임머니 등이 필요한 경우가 일반적이다.Meanwhile, in a role playing game in which an online game is operated by a character to perform a quest or accumulate experience points, an item or a game money is generally required to progress the game.

특히, 수많은 동시접속자들이 협력하여 함께 게임을 진행하는 MMORPG(Massively Multiplayer Online Role Playing Game)의 경우에는 게임 내 아이템이나 게임머니가 일정한 금전적 가치를 가지고 오프라인상에서 교환되거나 매매되기에 이르렀다.In particular, in the case of a massively multiplayer online role playing game (MMORPG) in which many concurrent users collaborate to play a game together, items or game money in the game are exchanged or sold off-line with a certain monetary value.

일부 MMORPG가 이러한 정도로 인기를 얻게 되자 특정한 온라인 게임과 관련하여 게임머니 또는 아이템을 획득하기 위하여 온라인 게임 클라이언트를 자동 조작하는 봇 프로그램이 등장하기에 이르렀으며, 그 유형 또한 키보드 또는 마우스의 디바이스 드라이버를 이용하여 인위적인 키보드, 마우스 이벤트를 발생시키는 형태, 게임 내의 동적 링크 라이브러리 파일을 변조하여 데이터 메모리를 조작함으로써 자동으로 온라인 게임 플레이를 진행하는 형태 등으로 다양화되었다.The popularity of some MMORPGs led to the emergence of bot programs that automatically manipulated the online game client to obtain game money or items associated with a particular online game, the type also using the device driver of the keyboard or mouse. It has been diversified into a form of generating an artificial keyboard, a mouse event, and automatically playing an online game by manipulating a data memory by modulating a dynamic link library file in a game.

이러한 봇 프로그램은 온라인 게임 내 질서를 어지럽히고, 다수의 온라인 게임 게이머들로 하여금 불측의 피해를 입게 할 수 있어 온라인 게임 프로그램의 실행시 함께 구동되는 보안 프로그램에 의해 그 실행이 방지된다.Such bot programs disturb the order in online games, and can cause a lot of online game gamers to be inadvertently damaged, and their execution is prevented by security programs that are run together when the online game programs are executed.

보안 프로그램이 봇 프로그램을 검출하고 차단하는 과정은 아래와 같다.The security program detects and blocks the bot program as follows.

도 1에 도시된 바에 의하면 공개적으로 판매하거나 배포되는 봇 프로그램의 샘플을 획득하여 온라인 게임 실행시 함께 실행되는 보안 프로그램으로 하여금 해당 봇 프로그램을 검출하도록 함을 알 수 있다.As shown in FIG. 1, a sample of a bot program that is publicly sold or distributed is obtained to allow a security program that is executed together when an online game is executed to detect the bot program.

그러나, 도 1에 도시된 바와 같은 종래의 방법에 의할 때에는 샘플을 구할 수 없는 봇 프로그램은 검출이 어렵다는 한계가 있다.However, in the conventional method as shown in Fig. 1, there is a limitation that the bot program that cannot obtain a sample is difficult to detect.

봇 프로그램은 바이러스나 악성코드처럼 네트워크를 타고서 광범위하게 배포, 확산되는 것이 아니며, 특히 제작자가 비공개로 작업장을 통해서만 유통한다거나 일부 비공개 그룹을 통해서 배포하는 경우도 있다. 즉, 이와 같이 비공개로 유통되는 봇의 경우 현실적으로 탐지가 어렵다.Bot programs are not widely distributed and spread over the network like viruses or malware, and in particular, the authors distribute them privately through the workplace or through some private groups. That is, in the case of such a privately distributed bot, it is difficult to detect in reality.

이에 비공개 봇 프로그램의 탐지를 위한 방안의 모색이 절실한 실정이라 할 것이다.Therefore, it is urgent to find a way to detect private bot programs.

한편, 이러한 봇은 바이러스나 악성코드처럼 PC의 정상적인 동작을 방해하거나, 개인정보를 유출하는 심각한 피해를 주는 것이 아니어서 온라인 게임을 즐기는 대다수의 게이머들보다는 봇을 제작하는 제작자, 업으로서 봇을 실행시키는 작업장을 위주로 색출하는 것이 더더욱 중요하다.On the other hand, these bots do not interfere with the normal operation of PCs such as viruses or malware, or cause serious damage to personal information, so they run bots as creators and karma makers rather than the majority of gamers who play online games. It is even more important to focus on the workplace.

따라서, 온라인 게임의 비공개 봇의 제작자 또는 작업장을 단순한 봇 사용자와 구분하여 관리하기 위한 방안의 모색 또한 절실한 실정이다.Therefore, there is also an urgent need to find a way to manage the creators or workshops of the private bots of online games from simple bot users.

본 발명은 봇 프로그램의 제작자와 작업장을 단순한 봇 프로그램 사용자와 구분하여 검출하기 위한 온라인 게임의 비공개 봇 검출방법의 제공을 목적으로 한다.An object of the present invention is to provide a method for detecting a private bot of an online game for detecting a producer and a workplace of a bot program separately from a simple bot program user.

본 발명의 다른 목적은 온라인 게임 클라이언트 프로그램의 분석 및 디버깅 시도를 파악함으로써 봇 프로그램 제작자를 검출하기 위한 온라인 게임의 비공개 봇 검출방법의 제공에 있다.Another object of the present invention is to provide a method for detecting a private bot of an online game for detecting a bot program creator by identifying an attempt to analyze and debug an online game client program.

본 발명의 다른 목적은 알려지지 않은 하드웨어 봇, 소프트웨어 봇을 검출할 수 있는 온라인 게임의 비공개 봇 검출방법의 제공에 있다.Another object of the present invention is to provide a private bot detection method of an online game that can detect unknown hardware bots and software bots.

본 발명의 또 다른 목적은 봇 프로그램의 제작자와 작업장의 컴퓨터들을 계정에 기반한 정보가 아닌 하드웨어 정보를 이용하여 식별하도록 하되, 다수의 온라인 게임 서버들간 공유하도록 함으로써 온라인 게임 마다 별도로 봇 프로그램의 제작자와 작업장을 색출하는 수고를 덜 수 있도록 하는 온라인 게임의 비공개 봇 검출방법의 제공에 있다.Yet another object of the present invention is to identify the bot program's creator and workplace computers using hardware information rather than account-based information, but to share it among a plurality of online game servers, thereby making the bot program's creator and workplace separate for each online game. The present invention provides a method for detecting a private bot of an online game, which can reduce the effort of searching for the data.

상기와 같은 목적을 달성하기 위하여 본 발명의 일 실시예에 의한 온라인 게임의 비공개 봇 검출방법은 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 게임 클라이언트 프로그램으로 전송한 메시지에 대한 피드백 소요시간을 판정하는 제 110 단계;In order to achieve the above object, a method for detecting a private bot of an online game according to an embodiment of the present invention includes a message transmitted from an online game server 1 to a game client program of a game client 2 connected through an internet network. A step 110 for determining a time required for feedback;

상기 게임 클라이언트(2)로부터의 피드백 소요시간이 일정 시간 이상인 경우가 일정 빈도이상 발생하는지 판단하는 제 120 단계;A step 120 for determining whether a frequency of a feedback occurrence from the game client 2 is longer than a predetermined time or more than a predetermined frequency;

일정 빈도이상 발생하는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 130 단계;A step 130 in which system information of the game client 2 is collected when a predetermined frequency or more occurs;

수집한 시스템 정보를 이용하여 전역고유식별자(Globally Unique Identifier : GUID)를 생성하는 제 140 단계; 및Step 140 of generating a globally unique identifier (GUID) using the collected system information; And

생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 150 단계;로 이루어지는 것을 특징으로 한다.
And a step 150 of transmitting the generated globally unique identifier to other online game servers 1 '.

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 다른 실시예에 의한 온라인 게임의 비공개 봇 검출방법은 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)에 대하여 온라인 게임 클라이언트 실행시 함께 실행되는 보안 프로그램의 무력화 여부를 를 판단하는 제 210 단계;Meanwhile, in order to achieve the above object, the method of detecting a private bot of an online game according to another embodiment of the present invention executes an online game client on a game client 2 connected to an online game server 1 through an internet network. Step 210, determining whether to disable the security program to be executed together;

상기 게임 클라이언트(2)의 보안 프로그램이 무력화된 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 220 단계;Step 220 of collecting system information of the game client 2 when the security program of the game client 2 is disabled;

수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 230 단계; 및Step 230 of generating a globally unique identifier using the collected system information; And

생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 240 단계;로 이루어지는 것을 특징으로 한다.
And a step 240 of transmitting the generated global unique identifier to other online game servers 1 '.

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 다른 실시예에 의한 온라인 게임의 비공개 봇 검출방법은 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)에 대하여 알려진 소프트웨어 분석툴에 대한 탐지패턴 매칭을 통해 상기 게임 클라이언트(2)에 온라인 게임 클라이언트 프로그램과 상기 알려진 소프트웨어 분석툴 가운데 어느 하나 이상이 동시에 실행되고 있는지를 판단하는 제 310 단계;Meanwhile, in order to achieve the above object, a method of detecting a private bot of an online game according to another embodiment of the present invention includes a software analysis tool known to a game client 2 connected to an online game server 1 through an internet network. A step 310 of determining whether at least one of an online game client program and the known software analysis tool is simultaneously executed in the game client 2 by matching a detection pattern with respect to the detection pattern;

동시에 실행되고 있는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 320 단계;Collecting 320 system information of the game client 2 when it is being executed at the same time;

수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 330 단계; 및A step 330 of generating a global unique identifier using the collected system information; And

생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 340 단계;로 이루어지는 것을 특징으로 한다.
And a step 340 of transmitting the generated global unique identifier to other online game servers 1 '.

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 다른 실시예에 의한 온라인 게임의 비공개 봇 검출방법은 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)로부터 실행중인 프로세스 리스트 또는 상기 프로세스에 속하는 동적 연결 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 API(Application Programming Interface), 키보드 및 마우스 조작에 관한 API, 메시지 후킹에 관한 API 또는 코드 인젝션에 관한 API 가운데 어느 하나 이상을 포함하고 있는 파일이 존재하는지 여부, 상기 리스트 가운데 PE(Portable Executable) 구조변경 또는 패커가 적용된 파일이 존재하는지 여부의 검사결과를 수신하는 제 410 단계;Meanwhile, in order to achieve the above object, a method of detecting a private bot of an online game according to another embodiment of the present invention includes a list of processes being executed by a game client 2 connected to an online game server 1 through an internet network, or Among the files belonging to the dynamic link list belonging to the process includes at least one of an API (Application Programming Interface) for screen screen shots, an API for keyboard and mouse operations, an API for message hooking or an API for code injection; A step 410 of receiving a check result of whether a file exists or whether a file to which a PE (Portable Executable) structure change or a packer is applied exists in the list;

상기 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 API(Application Programming Interface), 키보드 및 마우스 조작에 관한 API, 메시지 후킹에 관한 API 또는 코드 인젝션에 관한 API 가운데 하나 이상을 포함하고 있는 파일이 존재하거나, 구조변경 또는 패커가 적용된 파일이 존재하는 경우 게임 클라이언트(2)로부터 수신한 해당 파일의 기본정보를 이용하여 상기 파일이 봇 프로그램으로 의심되는지 여부를 판정하는 제 420 단계;Among the files belonging to the list, there is a file including one or more of an application programming interface (API) for screen screenshots, an API for keyboard and mouse operations, an API for message hooking, or an API for code injection, or A step 420 of determining whether the file is suspected to be a bot program using basic information of the file received from the game client 2 when a file having a structural change or a packer applied thereto exists;

해당 파일이 봇 프로그램으로 의심되는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 430 단계;A step 430 of collecting system information of the game client 2 when the file is suspected to be a bot program;

수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 440 단계; 및Step 440, generating a globally unique identifier using the collected system information; And

생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 450 단계;로 이루어지는 것을 특징으로 한다.
And a step 450 of transmitting the generated globally unique identifier to other online game servers 1 '.

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 다른 실시예에 의한 온라인 게임의 비공개 봇 검출방법은 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 키보드 또는 마우스 입력 인터벌이 주기적인지 판단하는 제 510 단계;Meanwhile, in order to achieve the above object, the method for detecting a private bot of an online game according to another embodiment of the present invention includes a keyboard or mouse input interval of a game client 2 connected to an online game server 1 through an internet network. A step 510 of determining whether this is periodic;

키보드 또는 마우스 입력 인터벌이 주기적인 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 520 단계;A step 520 of collecting system information of the game client 2 when the keyboard or mouse input interval is periodic;

수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 530 단계; 및Step 530, generating a globally unique identifier using the collected system information; And

생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 540 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
And a step 540 of transmitting the generated globally unique identifier to other online game servers (1 ').

한편, 상기와 같은 목적을 달성하기 위하여 본 발명의 다른 실시예에 의한 온라인 게임의 비공개 봇 검출방법은 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 키보드 또는 마우스 이벤트가 반복적인 패턴을 나타내는지 판단하는 제 610 단계;Meanwhile, in order to achieve the above object, a method of detecting a private bot of an online game according to another embodiment of the present invention includes a keyboard or mouse event of a game client 2 connected to an online game server 1 through an internet network. A step 610 of determining whether to exhibit a repetitive pattern;

키보드 또는 마우스 이벤트가 반복적인 패턴을 보이는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 620 단계;A step 620 of collecting system information of the game client 2 when a keyboard or mouse event shows a repetitive pattern;

수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 630 단계; 및Step 630, generating a globally unique identifier using the collected system information; And

생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 640 단계;로 이루어지는 것을 특징으로 한다.And a step 640 of transmitting the generated global unique identifier to other online game servers 1 '.

본 발명에 의하면 봇 프로그램의 제작과정에서 나타나는 온라인 게임 클라이언트의 특징을 분석함으로써 일반적으로는 표면으로 드러나지 않는 봇 프로그램의 제작자를 식별할 수 있다는 효과가 있다.According to the present invention, by analyzing the characteristics of the online game client appearing in the production process of the bot program, it is possible to identify the creator of the bot program that is not generally exposed.

나아가, 하드웨어 봇과 소프트웨어 봇의 특징에 착안하여 비공개 봇 프로그램을 검출할 수 있다는 효과가 있다.Furthermore, it is possible to detect a private bot program based on the features of the hardware bot and the software bot.

아울러, 계정기반의 클라이언트 정보가 아닌 하드웨어 기반의 식별자를 통해 클라이언트들을 관리하되 다수의 온라인 게임 서버간 봇 프로그램 제작자 및 비공개 봇 프로그램 사용자의 컴퓨터로 온라인 게임 서버 접속시 이를 미리 인지할 수 있도록 한다는 효과가 있다.In addition, it manages clients through hardware-based identifiers, not account-based client information, but enables users to recognize in advance when accessing an online game server to the computer of many bot program creators and private bot program users. have.

도 1은 종래기술에 의한 봇 프로그램 검출 방법을 설명하는 개념도이며,
도 2는 비공개 봇 프로그램의 검출을 위하여 봇 제작자 컴퓨터 또는 작업장 컴퓨터의 GUID를 각 서버들간에 공유하는 모습을 설명하는 참고도이며,
도 3은 본 발명의 일 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트이며,
도 4는 본 발명의 이 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트이며,
도 5는 본 발명의 삼 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트이며,
도 6은 본 발명의 사 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트이며,
도 7은 본 발명의 오 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트이며,
도 8은 본 발명의 육 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트이다.
1 is a conceptual diagram illustrating a bot program detection method according to the prior art,
FIG. 2 is a reference diagram illustrating the sharing of a GUID of a bot creator computer or a workplace computer among servers for detection of a private bot program.
3 is a flowchart illustrating a time-series description of a method for detecting private bots in an online game according to an embodiment of the present invention.
4 is a flowchart illustrating a time-series description of a method for detecting a private bot of an online game according to this embodiment of the present invention.
5 is a flowchart illustrating a time-series description of a private bot detection method of an online game according to an embodiment of the present invention.
6 is a flowchart illustrating a time-series description of a private bot detection method of an online game according to four embodiments of the present invention.
7 is a flowchart illustrating a method of detecting a private bot in an online game in time series according to a fifth embodiment of the present invention.
8 is a flowchart illustrating a time-series description of a private bot detection method for an online game according to a sixth embodiment of the present invention.

이하에서는 첨부하는 도면을 참조하여 본 발명에 의한 온라인 게임의 봇 프로그램 패턴 수집방법을 상세히 살펴보기로 한다.Hereinafter, a method of collecting a bot program pattern of an online game according to the present invention will be described in detail with reference to the accompanying drawings.

도 2에 도시된 바에 의하면 다수의 게임 클라이언트(2)는 온라인 게임 서버(1)와 연결된다. 이때, 게임 클라이언트(1)는 온라인 게임 클라이언트 프로그램이 실행되는 플랫폼 또는 하드웨어 장치로서 바람직하게는 개인용 컴퓨터(Personal Computer)일 수 있으며, 데스크탑이나 랩탑 등 그 형태에는 국한되지 아니한다.As shown in FIG. 2, a plurality of game clients 2 are connected to an online game server 1. In this case, the game client 1 may be a personal computer, preferably a personal computer, as a platform or a hardware device on which an online game client program is executed, but is not limited to such a form as a desktop or a laptop.

온라인 게임 서버(1)는 인터넷 망을 통해 접속한 다수의 게임 클라이언트(2)로 하여금 온라인 게임을 진행할 수 있도록 서비스를 제공한다.The online game server 1 provides a service for allowing a plurality of game clients 2 connected through an internet network to play an online game.

게임 클라이언트(2)는 온라인 게임을 진행하기 위하여 온라인 게임 서버(1)로 접속하여 우선 온라인 게임 클라이언트 프로그램을 다운로드받아 설치하며, 온라인 게임을 진행하기 위해 온라인 게임 서버(1)에 접속시마다 클라이언트 프로그램의 업데이트가 있는지 확인하여 설치하게 된다. 한편, 일반적인 온라인 게임 클라이언트 프로그램은 보안 프로그램을 포함하며, 이러한 보안 프로그램은 온라인 게임 클라이언트 프로그램의 실행시 함께 실행되어 계정 정보의 유출을 방지하거나, 봇 프로그램의 실행여부를 판단한다.The game client 2 connects to the online game server 1 in order to proceed with the online game, first downloads and installs the online game client program, and whenever the user accesses the online game server 1 to proceed with the online game, It will check for an update and install it. On the other hand, the general online game client program includes a security program, which is executed together with the execution of the online game client program to prevent the leakage of account information or determine whether the bot program is executed.

온라인 게임 서버(1)는 후술하는 바와 같이 보안 프로그램을 통하여 게임 클라이언트(2)의 정보를 수집함으로써 봇 프로그램의 제작자 컴퓨터를 색출하거나, 비공개 봇을 검출하게 된다.
As described later, the online game server 1 collects information of the game client 2 through a security program to search for the bot program's creator computer or detect a private bot.

이하에서는 도 3 내지 도 5를 참조하여 서버(1)가 인터넷을 통해 연결된 다수의 클라이언트(2)들 가운데서 봇 프로그램 제작자의 컴퓨터를 색출하는 과정을 살펴본다.Hereinafter, a process of searching for a bot program producer's computer among a plurality of clients 2 connected through the Internet will be described with reference to FIGS. 3 to 5.

도 3은 본 발명의 일 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 설명하는 플로우차트로서, 디버깅 이벤트의 반복적 발생을 감지하여 봇 프로그램 제작자 컴퓨터를 탐지하는 방법을 설명한다.3 is a flowchart illustrating a method of detecting a private bot of an online game according to an embodiment of the present invention, and describes a method of detecting a bot program producer computer by detecting a recurring occurrence of a debugging event.

도 3에 도시된 바에 의하면 우선 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 게임 클라이언트 프로그램으로 전송한 메시지에 대한 피드백 소요시간을 판정한다(S110).As shown in FIG. 3, first, an online game server 1 determines a feedback time required for a message transmitted to a game client program of a game client 2 connected through an internet network (S110).

온라인 게임 서버(1)는 인터넷 망을 통해 접속한 다수의 게임 클라이언트(2)로 하여금 온라인 게임의 플레이를 할 수 있도록 게임의 진행과 관련한 다양한 메시지를 서로 주고 받는다. 이때, 메시지에 대한 피드백은 실시간으로 이루어지며 이에 의하여 다수의 동시접속자들이 함께 온라인 게임을 플레이 할 수 있게 된다. 즉, 상기 S110 단계에서 온라인 게임 서버(1)와 게임 클라이언트(2)가 주고받는 메시지는 종래기술에 의한 온라인 게임에서 일반적으로 이루어지는 것에 해당한다.The online game server 1 exchanges various messages related to the progress of the game so that a plurality of game clients 2 connected through the Internet network can play the online game. At this time, feedback on the message is made in real time, thereby allowing a plurality of simultaneous users to play an online game together. That is, the message exchanged between the online game server 1 and the game client 2 in step S110 corresponds to that generally made in the online game according to the prior art.

그러나, 네트워크의 회선 불량 기타의 이유로 온라인 게임 서버(1)로부터 수신한 메시지에 대한 피드백은 어느 정도의 시간 갭을 가질 수 있는데, 대부분의 경우 일시적인 장애가 해소되면 피드백에 소요되는 시간은 정상범위 이내로 줄어든다.However, feedback on messages received from the online game server 1 may have some time gap due to network faults or other reasons. In most cases, the time required for feedback is reduced to within the normal range when a temporary failure is resolved. .

한편, 봇 프로그램의 제작을 위해서는 디버깅 툴을 이용하여 게임 클라이언트 프로그램을 역으로 분석하는 것이 필수적인데, 디버깅 과정에서는 게임 클라이언트 프로그램이 온라인 게임 서버(1)로 실시간 피드백을 할 수 없는 경우가 빈번하게 발생한다. On the other hand, in order to produce a bot program, it is essential to analyze the game client program in reverse by using a debugging tool. In the debugging process, the game client program cannot frequently provide real-time feedback to the online game server 1. do.

통상의 네트워크 장애시 피드백이 지연되더라도 일정 시간 이내에 피드백이 이뤄지는 경우가 많으며, 아니면 피드백이 아예 불가능한 것이 정상이다. 그러나, 디버깅 과정에서는 피드백이 지연됨은 물론이거니와 일반적인 경우와 비교할 때에 매우 긴 시간 갭을 가지고 피드백이 이루어지는 경우도 빈번하게 발생한다.In the case of a normal network failure, even if the feedback is delayed, the feedback is often achieved within a certain time, or it is normal that the feedback is not possible at all. However, in the debugging process, not only is the feedback delayed, but also the feedback is frequently made with a very long time gap compared with the general case.

이와 같이 피드백에 소요되는 시간이 통상적인 범위를 훨씬 벗어난 경우가 빈번하게 발생한다면 이는 디버깅 이벤트로 볼 수 있다.If the amount of time spent on feedback occurs frequently outside the normal range, this can be viewed as a debugging event.

따라서, 온라인 게임 서버(1)는 상기 게임 클라이언트(2)로부터의 피드백 소요시간이 일정 시간 이상인 경우가 일정 빈도이상 발생하는지 판단(S120)하여, 일정 빈도 이상 발생하는 경우 해당 게임 클라이언트(2)가 디버깅 툴을 실행하여 게임 클라이언트 프로그램을 디버깅하고 있는 것으로 판단한다.Therefore, the online game server 1 determines whether the feedback time from the game client 2 is more than a certain time when a predetermined time or more occurs (S120). It is assumed that you are debugging a game client program by running a debugging tool.

이 경우 해당 게임 클라이언트(2)는 봇 프로그램 제작자 컴퓨터일 것이라는 추정이 가능하며 따라서 온라인 게임 서버(1)는 해당 게임 클라이언트(2)의 게임 클라이언트 프로그램 또는 보안 프로그램으로부터 정보를 수집한다.In this case, it is possible to assume that the game client 2 is a bot program producer computer, so that the online game server 1 collects information from the game client program or the security program of the game client 2.

온라인 게임 서버(1)가 수집할 수 있는 게임 클라이언트(2)에 대한 정보수집 범위는 대체로 온라인 게임 계정 id, 캐릭터 명칭, 캐릭터의 클래스 또는 직업, 레벨, 접속 위치나 월드 맵 상의 위치, 접속시간 등의 접속 계정에 관련된 정보가 있으며,The collecting range of information about the game client 2 that the online game server 1 can collect is generally the online game account id, character name, character class or occupation, level, access location or location on the world map, access time, etc. Has information regarding the access account for,

아울러, 게임 클라이언트(2)에 봇 프로그램이 실행되고 있는 경우라고 한다면 보안 프로그램을 통해 봇 프로그램의 파일명, 파일경로, 버전, 탐지패턴의 정보, 해쉬값 등을 수집할 수 있다.In addition, if the bot program is running on the game client 2, the file name, file path, version, detection pattern information, hash value, etc. of the bot program can be collected through the security program.

그러나, 이러한 정보는 대체로 계정에 의존적인 정보여서 봇 프로그램 개발자가 다계정을 보유하고 있는 경우 또는 다른 온라인 게임의 봇 프로그램을 개발하는 경우에는 의미없는 정보에 불과하다.However, such information is generally account-dependent, which is meaningless when the bot program developer has multiple accounts or when developing bot programs for other online games.

따라서, 온라인 게임 서버(1)는 게임 클라이언트(2) 자체를 식별할 수 있는 식별자를 생성하여 도 2에 도시된 바와 같이 다른 온라인 게임 서버(1')들과 공유한다.Thus, the online game server 1 generates an identifier that can identify the game client 2 itself and shares it with other online game servers 1 'as shown in FIG.

이를 위하여 온라인 게임 서버(1)는 상기 게임 클라이언트(2)의 시스템 정보를 수집한다(S130).To this end, the online game server 1 collects system information of the game client 2 (S130).

이때, 수집되는 정보로는 게임 클라이언트(2)의 네트워크 어댑터의 MAC어드레스, CPU의 시리얼넘버, 비디오카드의 시리얼넘버, 메인보드의 시리얼넘버와 같은 하드웨어 고유정보 가운데 하나 이상의 조합이 될 수 있으며, ip 어드레스 또한 수집대상이 될 수 있다.In this case, the collected information may be one or more combinations of hardware-specific information such as MAC address of the network adapter of the game client 2, the serial number of the CPU, the serial number of the video card, and the serial number of the motherboard. Addresses can also be collected.

한편, 이와 같이 수집된 정보는 온라인 게임 서버(1)에 저장되지 않고 대신 이들의 조합을 통해 전역고유식별자(Globally Unique Identifier : GUID)를 생성하여 저장한다(S140).On the other hand, the collected information is not stored in the online game server 1, but instead generates and stores a globally unique identifier (GUD) through a combination thereof (S140).

게임 클라이언트(2)의 하드웨어 구성에 관한 정보는 개인정보에 속하는 것일 수 있어 저장하지 않고 소정의 알고리즘을 이용하여 전역고유식별자를 생성하여 이를 저장하게 된다.The information about the hardware configuration of the game client 2 may belong to personal information, so that the globally unique identifier is generated and stored using a predetermined algorithm without storing.

한편, 이와 같이 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송된다(S150). 다른 온라인 게임 서버(1')들은 동일한 온라인 게임을 서비스하기 위한 별개의 서버들 일 수도 있으나, 아예 다른 온라인 게임을 서비스하기 위한 서버들 일 수도 있다.Meanwhile, the globally unique identifier generated in this way is transmitted to other online game servers 1 '(S150). The other online game servers 1 'may be separate servers for serving the same online game, but may also be servers for serving another online game.

봇 프로그램의 제작자는 어느 하나의 온라인 게임에 대해서만 봇 프로그램을 제작하는 것이 아니라 다른 온라인 게임들에 대해서도 봇 프로그램을 제작하는 경향이 있으므로 이러한 정보를 각 서버들간 공유하는 것은 아래와 같은 이유에서 유의미하다.Since the creators of bot programs tend to produce bot programs for only one online game, but for other online games, sharing such information among the servers is meaningful for the following reasons.

S150 단계에서 봇 프로그램 제작자 컴퓨터의 전역고유식별자를 수신한 다른 온라인 게임 서버(1')은 인터넷 망을 통해 접속한 게임 클라이언트(2')들의 시스템 정보를 수집하여 상기 S140 단계에서 사용된 것과 동일한 알고리즘을 이용하여 전역고유식별자를 생성하는데, 상기 S150 단계에서 전송받은 것과 동일한 전역고유식별자가 발견되면 해당 게임 클라이언트(2')를 봇 프로그램 제작자 컴퓨터로 판단한다. The other online game server 1 ', which receives the globally unique identifier of the bot program maker computer in step S150, collects system information of game clients 2' that are connected through the Internet network, and uses the same algorithm as that used in step S140. To generate a globally unique identifier, if the same globally unique identifier that is received in the step S150 is found, the game client (2 ') is determined as the bot program producer computer.

이와 같이 봇 프로그램 제작자 컴퓨터로 판단되는 경우 다른 온라인 게임 서버(1')들은 보안 프로그램에 요청하여 봇 프로그램의 검출을 위한 추가적인 정보의 수집을 수행할 수 있다.
In this way, if it is determined that the bot program maker computer, other online game servers 1 'may request a security program to collect additional information for detecting the bot program.

한편, 도 4는 본 발명의 이 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트로서, 보안 프로그램의 무력화 시도 여부를 판단함으로써 봇 프로그램 제작자 컴퓨터를 색출한다.On the other hand, Fig. 4 is a flowchart illustrating a time-series description of a method for detecting a private bot of an online game according to this embodiment of the present invention.

이를 위하여 우선 온라인 게임 서버(1)는 인터넷 망을 통해 접속한 게임 클라이언트(2)에 대하여 온라인 게임 클라이언트 실행시 함께 실행되는 보안 프로그램의 무력화 여부를 판단한다.To this end, first, the online game server 1 determines whether or not to disable the security program that is executed when the online game client is executed with respect to the game client 2 connected through the Internet.

예를 들어, 키보드 보안 프로그램의 경우 키 로거들보다 먼저 키 값을 후킹하여 실제 눌러진 키값이 어떤 것이었는지를 알 수 없도록 변조하는데, 키보드 보안 프로그램이 무력화 된 경우 키보드 보안 프로그램이 정상적으로 동작하고 있음에도 불구하고 키 로거들이 키보드 입력값을 알 수 있게 된다.For example, the keyboard security program hooks the key value before the key loggers so that it can not know what the key value was actually pressed.If the keyboard security program is disabled, the keyboard security program operates normally. The key loggers will know the keyboard input.

즉, 보안 프로그램이 무력화되면 온라인 게임 서버(1)가 볼 때 해당 게임 클라이언트(2)의 보안 프로그램은 정상적으로 동작하고 있으나, 실질적으로는 보안 기능을 수행이 제대로 이루어지지 않는 것이다.That is, when the security program is disabled, when the online game server 1 sees the security program of the game client 2 normally operating, the security function is not properly performed.

보안 프로그램의 무력화를 위한 방법론으로는 여러가지의 알려진 것들이 존재하는데, 예를 들어 메모리 조작에 의한 무력화인 경우 보안 프로그램 자체를 변조하지 않고 단순히 보안 프로그램을 속이는 것이기 때문에 메모리 조작을 위한 API가 사용되고 있는지 여부를 파악하는 것에 의하여 간접적으로 추단이 가능할 것이다.There are a number of known methods for disabling a security program. For example, incapacitation by a memory manipulation simply involves deceiving the security program without tampering with the security program itself. It may be possible to infer indirectly by grasping.

온라인 게임 서버(1)는 이와 같이 보안 프로그램의 무력화를 위한 알려진 방법들 각각에 대하여 이를 검출하기 위한 알고리즘을 이용하여 무력화 시도 여부를 판단한다.As described above, the online game server 1 determines whether to disable each of the known methods for disabling the security program by using an algorithm for detecting them.

한편, 보안 프로그램이 무력화된 것으로 판단되는 경우 온라인 게임 서버(1)는 게임 클라이언트(2)의 시스템 정보를 수집(S220)하되, 이를 이용하여 전역고유식별자를 생성한다(S230).On the other hand, if it is determined that the security program is incapacitated, the online game server 1 collects system information of the game client 2 (S220), and generates a globally unique identifier using the same (S230).

이때, 시스템 정보는 MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버와 같은 하드웨어 고유정보일 수도 있으며, 게임 클라이언트(2)의 ip 어드레스가 포함될 수도 있다.In this case, the system information may be hardware-specific information such as MAC address, CPU serial number, video card serial number, motherboard serial number, or may include an ip address of the game client 2.

한편, 전역고유식별자가 생성되면 온라인 게임 서버(1)는 이를 다른 온라인 게임 서버(1')들로 전송한다(S240).
On the other hand, when the global unique identifier is generated, the online game server 1 transmits it to other online game servers 1 '(S240).

한편, 도 5는 본 발명의 삼 실시예에 의한 온라인 게임의 비공개 봇 검출방법을 시계열적으로 설명하는 플로우차트로서, 소프트웨어 분석툴의 이용 여부를 가지고서 봇 프로그램 제작자 컴퓨터를 색출하는 과정을 도시한다.FIG. 5 is a flowchart illustrating a method of detecting a private bot of an online game in a time series according to a third embodiment of the present invention, and illustrates a process of searching for a bot program maker computer with or without a software analysis tool.

도 5에 도시된 바에 의하면 우선 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)에 대하여 알려진 소프트웨어 분석툴에 대한 탐지패턴 매칭을 통해 상기 게임 클라이언트(2)에 온라인 게임 클라이언트 프로그램과 상기 알려진 소프트웨어 분석툴 가운데 어느 하나 이상이 동시에 실행되고 있는지를 판단한다(S310).As shown in FIG. 5, an online game client program is connected to the game client 2 by first matching the detection pattern of a known software analysis tool to the game client 2 connected to the online game server 1 through the Internet. It is determined whether any one or more of the known software analysis tools are being executed at the same time (S310).

소프트웨어 분석툴이란 다른 소프트웨어의 실행도중 메모리의 상태, 명령어의 수행단계 등을 분석하기 위한 특수한 소프트웨어로서 "Softice"와 같은 소프트웨어가 이에 해당한다.Software analysis tool is a special software for analyzing the state of the memory, the execution step of the instruction, etc. during the execution of other software, such as software such as "Softice".

이러한 소프트웨어 분석툴은 운영체계마다 몇가지 정도가 알려져 있으며, 온라인 게임 서버(1)는 이와 같이 알려진 소프트웨어 분석툴의 실행파일 또는 동적 연결 라이브러리 파일의 패턴을 게임 클라이언트(2)의 보안 프로그램으로 내려주어 보안 프로그램으로 하여금 실행중인 프로세스를 대상으로 패턴 매칭을 하도록 한다.There are several known software analysis tools for each operating system, and the online game server 1 downloads the pattern of the executable file or dynamic link library file of the known software analysis tool to the security program of the game client 2 to the security program. Allows pattern matching for running processes.

패턴의 매칭은 알려진 소프트웨어 분석툴에 대한 탐지패턴들을 메모리에 적재한 다음, 실행중인 프로세스 및 상기 프로세스에 속하는 동적 연결 리스트 파일 리스트를 생성하고, 상기 리스트에 속하는 각 파일에 대하여 탐지패턴이 발견되는지 여부를 판단함으로써 이루어질 수 있다.Pattern matching loads detection patterns for known software analysis tools into memory, then generates a list of running processes and dynamic linked list files belonging to the process, and whether the detection pattern is found for each file belonging to the list. It can be done by judging.

한편, 패턴매칭 결과 알려진 소프트웨어 분석툴 가운데 어느 하나와 온라인 게임 클라이언트 프로그램이 동시에 실행되고 있는 경우 해당 게임 클라이언트(2)가 게임 클라이언트 프로그램을 분석하고 있음을 추단할 수 있으며, 소프트웨어 분석툴은 소프트웨어 공학에 대한 전문적인 지식이 없이 이용할 수 없는 것이므로 봇 프로그램의 제작자가 해당 온라인 게임 클라이언트 프로그램을 분석하고 있는 것으로 판단할 수 있다.On the other hand, if one of the known software analysis tools and the online game client program are simultaneously executed as a result of the pattern matching, it can be inferred that the game client 2 is analyzing the game client program, and the software analysis tool is specialized in software engineering. It can be determined that the creator of the bot program is analyzing the online game client program because it cannot be used without knowledge.

이 경우 온라인 게임 서버(1)는 게임 클라이언트(2)의 시스템 정보를 수집(S320)하여, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S330). 한편, 생성된 전역고유식별자들은 다른 온라인 게임 서버(1')들로 전송되어 공유된다(S340).
In this case, the online game server 1 collects system information of the game client 2 (S320) and generates a globally unique identifier using the collected system information (S330). Meanwhile, the generated globally unique identifiers are transmitted to and shared with other online game servers 1 '(S340).

한편, 이하에서는 첨부하는 도 6 내지 도 8을 참조하여 비공개 봇 프로그램을 검출하는 과정을 설명한다. 도 6은 실행파일 또는 동적 연결 라이브러리 파일에 대한 패커(Packer) 적용 여부에 따라서 비공개 봇 프로그램을 검출하는 과정을 설명한다.Meanwhile, a process of detecting a private bot program will be described below with reference to FIGS. 6 to 8. 6 illustrates a process of detecting a private bot program according to whether a packer is applied to an executable file or a dynamic link library file.

봇 프로그램은 크게 하드웨어 봇, 소프트웨어 봇, 넌 클라이언트 봇의 3가지로 나눌 수 있는데, 하드웨어 봇의 경우 키보드 또는 마우스의 디바이스 드라이버를 이용하여 인위적인 키 이벤트, 마우스 이벤트를 발생시킨다.Bot programs can be divided into three types: hardware bots, software bots, and non-client bots. In the case of hardware bots, an artificial key event and a mouse event are generated using a device driver of a keyboard or a mouse.

소프트웨어 봇은 코드 메모리를 변조하고, 데이터 메모리를 조작하는데 동적 연결 라이브러리 파일에 코드를 인젝션(Injection)하는 방법을 흔히 사용한다.Software bots commonly use code to inject code into dynamic-link library files to tamper with code memory and manipulate data memory.

한편, 넌 클라이언트 봇은 아예 온라인 게임 클라이언트 없이 직접 온라인 게임 서버와 네트워크 패킷을 주고 받는다.On the other hand, a client bot can send and receive network packets directly with an online game server without an online game client.

이 가운데서 대부분을 차지하는 하드웨어 봇과 소프트웨어 봇 각각의 구현을 위해 필요한 요소들을 살펴보면 다음과 같다.The following are the elements required to implement each of the hardware bots and software bots that make up the majority of them.

우선 하드웨어 봇의 경우 화면을 인식하고, 인식 결과에 따라서 적절한 키보드 및 마우스 이벤트를 발생시키는 기능의 구현이 필요하다. 한편, 이러한 하드웨어 봇은 디바이스 드라이버 단에서 이벤트를 발생시키기 때문에 보안 프로그램에 의하여 검출되기 어렵다.First of all, the hardware bot needs to implement a function that recognizes a screen and generates an appropriate keyboard and mouse event according to the recognition result. On the other hand, such a hardware bot generates an event in the device driver stage, so it is difficult to be detected by the security program.

소프트웨어 봇은 메모리 변조를 통해 구현되기 때문에 보안 프로그램의 무력화가 우선 시도되며, 이후 게임 내의 코드 조작 및 메모리 조작의 기능이 필요하다. 한편, 이를 위하여 동적 연결 라이브러리 파일에 코드를 인젝션하는 기법이 이용된다.Since software bots are implemented through memory tampering, disabling security programs is first attempted, and then functions of code manipulation and memory manipulation within the game are required. Meanwhile, a technique of injecting code into the dynamic link library file is used.

이하에서는 이러한 봇 프로그램의 특징을 이용하여 알려지지 않은 비공개 봇 프로그램을 검출하는 과정을 설명한다.
Hereinafter, a process of detecting an unknown private bot program using the features of the bot program will be described.

도 6에 도시된 바에 의하면 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)로부터 실행중인 프로세스 리스트 또는 상기 프로세스에 속하는 동적 연결 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 API(Application Programming Interface), 키보드 및 마우스 조작에 관한 API, 메시지 후킹에 관한 API 또는 코드 인젝션에 관한 API 가운데 어느 하나 이상을 포함하고 있는 파일이 존재하는지 여부, 상기 리스트 가운데 PE(Portable Executable) 구조변경 또는 패커가 적용된 파일이 존재하는지 여부의 검사결과를 수신한다(S410).As shown in FIG. 6, among the files belonging to the process list running from the game client 2 connected to the online game server 1 via the Internet or the dynamic link list belonging to the process, the API (for screen screenshot) is shown. Application programming interface (API), an API for keyboard and mouse manipulation, an API for message hooking, or an API for code injection, whether a file exists, a Portable Executable (PE) structure change or packer in the list Receives a check result of whether there is a file applied (S410).

게임 클라이언트(2)의 보안 프로그램은 실행중인 프로세스 리스트 또는 상기 프로세스에 속하는 동적 연결 리스트를 생성한 다음, 이들 리스트에 속하는 파일들 가운데 상기에서 열거된 특정한 API가 포함된 파일을 검출한다. 상기에서 언급한 API는 일부 백신 프로그램이나 방화벽, 메신저 등을 제외하고는 흔히 사용되지 않는 것이나 소프트웨어 봇의 기능 구현을 위해서는 사용되는 것이므로 상기 리스트에 이러한 API 함수를 사용하는 파일이 존재하는 경우 소프트웨어 봇의 존재를 의심할 수 있다.The security program of the game client 2 generates a list of running processes or a dynamic link list belonging to the process, and then detects a file containing the specific API listed above among the files belonging to the list. The above-mentioned APIs are not commonly used except for some antivirus programs, firewalls, messengers, etc., or they are used to implement the functions of software bots. Therefore, if there are files using these API functions in the list, You can doubt its existence.

화면 스크릿 샷에 관한 API로는 BitBlt(), CreateCompatibleBitmap(), GetBitmapBits() 함수, 다이렉트3D에서 지원하는 후킹처리 함수 등이 포함될 수 있다.APIs related to screen screen shots may include BitBlt (), CreateCompatibleBitmap (), GetBitmapBits (), and hooking functions supported by Direct3D.

한편, 키보드나 마우스 조작과 관련된 API로는 WriteFile(), DevicdIOControl()과 같은 함수가 포함될 수 있으며, 디바이스 드라이버의 등록이나 시작, 종료에 관한 함수들이 포함될 수 있다.Meanwhile, APIs related to keyboard or mouse manipulation may include functions such as WriteFile () and DevicdIOControl (), and may include functions related to device driver registration, start and end.

한편, 게임 메모리를 조작하는 API 함수로는 VirtualProtect(), WriteProcessMemory(), ReadProcessMemory()등이 포함될 수 있다.API functions for manipulating game memory may include VirtualProtect (), WriteProcessMemory (), and ReadProcessMemory ().

한편, 메시지 후킹 또는 코드 인젝션에 관한 API로는 SetWindowHookEx(), SetWindowLong(), GetWindowLong(), CreateRemoteThread(), GetThreadContext(), SetThreadContext() 함수 등이 포함될 수 있다.APIs related to message hooking or code injection may include SetWindowHookEx (), SetWindowLong (), GetWindowLong (), CreateRemoteThread (), GetThreadContext (), and SetThreadContext () functions.

한편, 리스트에 포함된 파일들 가운데 이들 함수를 호출하는 파일이 존재한다고 하여도 안전성이 알려진 백신, 방화벽 등의 프로그램에 속하는 실행파일이나 동적 링크 라이브러리 파일은 필터링하여 제외시킬 수 있다.On the other hand, even if there are files that call these functions among the files included in the list, executable files or dynamic link library files belonging to programs such as vaccines and firewalls, which are known for their safety, can be filtered out.

한편, 소프트웨어 봇은 자신이 변조한 코드를 숨기거나 보안 프로그램에 검출되지 않도록 패킹을 시도하는 경우가 많은데, 엔트리 포인트의 코드를 비교하거나 섹션의 이름을 대조하는 것에 의하여 PE구조의 변경이나 패커 적용여부를 판단할 수 있다.On the other hand, software bots often attempt to pack their code in such a way that they hide it or not detect it in a security program. Can be determined.

상기 API를 호출하는 파일이나 PE구조 또는 패커가 적용된 것으로 의심되는 파일이 존재하면 게임 클라이언트(2)는 의심 파일의 명칭, 파일크기 등의 기본정보를 온라인 게임 서버로 함께 전송하는데, 검사결과와 의심파일의 기본정보를 수신한 온라인 게임 서버(1)는 상기 의심파일이 봇 프로그램으로 의심되는지 여부를 판단한다(S420).If there is a file calling the API or a file suspected of applying the PE structure or packer, the game client 2 transmits basic information such as the name and file size of the suspect file to the online game server. The online game server 1 that has received the basic information of the file determines whether the suspicious file is suspected to be a bot program (S420).

한편, 해당 파일이 봇 프로그램으로 의심되는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집(S430)하여, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S440). 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송된다(S450).
On the other hand, when the file is suspected to be a bot program, the system information of the game client 2 is collected (S430), and a globally unique identifier is generated using the collected system information (S440). The generated globally unique identifier is transmitted to other online game servers 1 '(S450).

한편, 도 7은 온라인 게임 클라이언트 프로그램으로 입력되는 키보드 및 마우스 입력 인터벌이 주기적인가 여부를 판단함으로써 봇 프로그램을 검출한다.On the other hand, Figure 7 detects the bot program by determining whether the keyboard and mouse input interval input to the online game client program is periodic.

게이머가 직접 키보드나 마우스 입력을 하는 경우 입력값은 무작위적이며 키보드 및 마우스 이벤트간 인터벌은 불규칙적이다. 그러나, 하드웨어 봇의 경우 소정의 알고리즘에 의하여 키보드 및 마우스 입력을 발생시키는데 일정한 인터벌을 두고서 키보드, 마우스 입력 이벤트가 발생하게 된다.If the gamer makes direct keyboard or mouse input, the input is random and the interval between keyboard and mouse events is erratic. However, in the case of a hardware bot, keyboard and mouse input events are generated at predetermined intervals to generate keyboard and mouse input by a predetermined algorithm.

도 7에 도시된 바에 의하면 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 키보드 또는 마우스 입력 인터벌이 주기적인지 판단한다(S510).As shown in FIG. 7, the online game server 1 determines whether the keyboard or mouse input interval of the game client 2 connected through the Internet is periodic (S510).

주기적인 입력 이벤트 발생시 이는 봇에 의한 인위적인 입력 이벤트 발생으로 볼 수 있으며, 이 경우 온라인 게임 서버(1)는 해당 게임 클라이언트(2)에 알려지지 않은 비공개 봇 프로그램이 실행되고 있는 것으로 판단할 수 있다.When a periodic input event occurs, this may be regarded as an artificial input event generated by a bot. In this case, the online game server 1 may determine that a private bot program unknown to the corresponding game client 2 is running.

이에 따라, 온라인 게임 서버(1)는 상기 게임 클라이언트(2)의 시스템 정보를 수집(S520)하고, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S530). 한편, 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송되어 공유된다(S540).
Accordingly, the online game server 1 collects system information of the game client 2 (S520), and generates a globally unique identifier using the collected system information (S530). Meanwhile, the generated globally unique identifier is transmitted to other online game servers 1 'and shared (S540).

한편, 도 8에 도시된 바에 의하면 온라인 게임 클라이언트 프로그램으로 입력되는 키보드 및 마우스 입력 이벤트가 일정한 패턴을 보여주는가 여부를 판단함으로써 봇 프로그램을 검출한다.Meanwhile, as illustrated in FIG. 8, the bot program is detected by determining whether keyboard and mouse input events input to the online game client program show a certain pattern.

게이머가 직접 조작하는 경우 NPC와 대화하거나, 파티 멤버들과 서로 커뮤니케이션하면서 협력하여 게임을 진행하게 되나, 봇에 의한 조작시 온라인 게임 내에서 일정한 경로를 따라 단순한 채집, 사냥 등만을 반복하게 된다.In the case of direct manipulation by the gamer, the game is performed by talking with the NPC or communicating with the party members while cooperating with the bot.

따라서, 봇에 의한 키보드 및 마우스 입력 이벤트는 반복적인 패턴을 반복할 개연성이 높다. 따라서, 온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)로 입력되는 키보드 또는 마우스 이벤트가 반복적인 패턴을 나타내는지 판단한다(S610). 이는 해당 게임 클라이언트(2)의 온라인 게임 로그를 분석함으로써 이루어지거나 입력된 키보드, 마우스 입력값을 별도로 저장하였다가 분석함으로써 행해질 수도 있다.Thus, keyboard and mouse input events by bots are highly likely to repeat repetitive patterns. Therefore, the online game server 1 determines whether a keyboard or mouse event input to the game client 2 connected through the Internet network exhibits a repetitive pattern (S610). This may be done by analyzing the online game log of the game client 2 or by separately storing and analyzing input keyboard and mouse input values.

한편, 키보드 또는 마우스 이벤트가 반복적인 패턴을 보이는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집(S620)하여, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S630). 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송되어 공유된다(S640).
Meanwhile, when the keyboard or mouse event shows a repetitive pattern, the system information of the game client 2 is collected (S620), and a globally unique identifier is generated using the collected system information (S630). The generated globally unique identifier is transmitted to other online game servers 1 'and shared (S640).

이상과 같은 온라인 게임의 비공개 봇 검출방법은 컴퓨터 프로그램의 형태로 제작되되, 컴퓨터로 판독가능한 기록매체에 수록되어 온라인 게임 서버(1) 또는 게임 클라이언트(2)에서 실행될 수 있다.
The above-described method for detecting a private bot of an online game may be manufactured in the form of a computer program, and may be stored in a computer-readable recording medium and executed by the online game server 1 or the game client 2.

이상 몇가지의 실시예를 들어 본 발명을 살펴보았으나 이러한 실시예는 예시의 목적을 위해 개시된 것이고, 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것임은 물론, 이는 하기의 특허청구범위를 벗어나지 아니하는 것으로 해석되어야 한다.
While the present invention has been described with reference to several embodiments, these embodiments have been disclosed for purposes of illustration, and those skilled in the art will be able to make various modifications, changes, and additions within the spirit and scope of the present invention. This is to be construed as not departing from the scope of the following claims.

1 : 온라인 게임 서버 2 : 게임 클라이언트1: online game server 2: game client

Claims (15)

온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 게임 클라이언트 프로그램으로 전송한 메시지에 대한 피드백 소요시간을 판정하는 제 110 단계;
상기 게임 클라이언트(2)로부터의 피드백 소요시간이 일정 시간 이상인 경우가 일정 빈도이상 발생하는지 판단하는 제 120 단계;
상기 게임 클라이언트(2)로부터의 피드백 소요시간이 일정 시간 이상인 경우가 일정 빈도이상 발생하는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 130 단계;
수집한 시스템 정보를 이용하여 전역고유식별자(Globally Unique Identifier)를 생성하는 제 140 단계; 및
생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 150 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
Step 110, the online game server 1 determines a time required for feedback on a message transmitted to a game client program of a game client 2 connected through an Internet network;
A step 120 for determining whether a frequency of a feedback occurrence from the game client 2 is longer than a predetermined time or more than a predetermined frequency;
A step 130 in which system information of the game client 2 is collected when the time required for the feedback from the game client 2 is longer than a predetermined time or more than a predetermined frequency;
Step 140 of generating a globally unique identifier using the collected system information; And
Transmitting the generated globally unique identifier to the other online game servers (1 '); step 150;
제 1 항에 있어서,
상기 제 110 단계에서 게임 클라이언트(2)의 게임 클라이언트 프로그램으로 전송되는 메시지는 온라인 게임의 플레이를 위하여 전송되는 메시지인 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 1,
The method of claim 110, wherein the message transmitted to the game client program of the game client (2) is a message transmitted for playing the online game.
제 1 항에 있어서,
상기 제 130 단계에서 상기 시스템 정보는 ip어드레스, MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버 가운데 하나 이상을 포함하는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 1,
In step 130, the system information includes at least one of an ip address, a MAC address, a CPU serial number, a video card serial number, and a motherboard serial number.
온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)에 대하여 온라인 게임 클라이언트 실행시 함께 실행되는 보안 프로그램의 무력화 여부를 판단하는 제 210 단계;
상기 게임 클라이언트(2)의 보안 프로그램이 무력화된 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 220 단계;
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 230 단계; 및
생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 240 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
A step 210 in which the online game server 1 determines whether to disable the security program that is executed when the online game client is executed with respect to the game client 2 connected through the Internet network;
Step 220 of collecting system information of the game client 2 when the security program of the game client 2 is disabled;
Step 230 of generating a globally unique identifier using the collected system information; And
And a step 240 of transmitting the generated globally unique identifier to other online game servers (1 ').
제 4 항에 있어서,
상기 제 220 단계에서 상기 시스템 정보는 ip어드레스, MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버 가운데 하나 이상을 포함하는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 4, wherein
In step 220, the system information includes one or more of an ip address, a MAC address, a CPU serial number, a video card serial number, and a motherboard serial number.
온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)에 대하여 하나 이상의 소프트웨어 분석툴에 대한 탐지패턴 매칭을 수행함으로써 상기 게임 클라이언트(2)에 온라인 게임 클라이언트 프로그램과 상기 하나 이상의 소프트웨어 분석툴 가운데 어느 하나 또는 그 이상이 동시에 실행되고 있는지를 판단하는 제 310 단계;
상기 게임 클라이언트(2)에 온라인 게임 클라이언트 프로그램과 상기 하나 이상의 소프트웨어 분석툴이 동시에 실행되고 있는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 320 단계;
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 330 단계; 및
생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 340 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The online game server 1 performs detection pattern matching on one or more software analysis tools to the game client 2 connected through the Internet network, thereby allowing the game client 2 to perform an online game client program and the one or more software analysis tools. A step 310 of determining which one or more are being executed simultaneously;
Step 320, when the on-line game client program and the at least one software analysis tool are simultaneously executed in the game client 2, the system information of the game client 2 is collected;
A step 330 of generating a global unique identifier using the collected system information; And
And a step 340 of transmitting the generated globally unique identifier to other online game servers (1 ').
제 6 항에 있어서,
상기 제 310 단계에서 탐지패턴 매칭은 상기 하나 이상의 소프트웨어 분석툴에 대한 탐지패턴을 메모리에 적재한 다음, 실행중인 프로세스 및 상기 프로세스에 속하는 동적 연결 리스트 파일 리스트를 생성하고, 상기 리스트에 속하는 각 파일에 대하여 탐지패턴이 발견되는지 여부를 판단함으로써 이루어지는 것임을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method according to claim 6,
Detection pattern matching in step 310 loads a detection pattern for the one or more software analysis tools into a memory, generates a running process and a dynamic linked list file list belonging to the process, and for each file belonging to the list. Private bot detection method of the online game, characterized in that it is made by determining whether a detection pattern is found.
제 7 항에 있어서,
상기 제 320 단계에서 상기 시스템 정보는 ip어드레스, MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버 가운데 하나 이상을 포함하는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 7, wherein
In step 320, the system information includes one or more of an ip address, a MAC address, a CPU serial number, a video card serial number, and a motherboard serial number.
온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)로부터 실행중인 프로세스 리스트 또는 상기 프로세스에 속하는 동적 연결 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 API(Application Programming Interface), 키보드 및 마우스 조작에 관한 API, 메시지 후킹에 관한 API 또는 코드 인젝션에 관한 API 가운데 어느 하나 이상을 포함하고 있는 파일이 존재하는지 여부, 상기 리스트 가운데 PE(Portable Executable) 구조변경 또는 패커가 적용된 파일이 존재하는지 여부의 검사결과를 수신하는 제 410 단계;
상기 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 API(Application Programming Interface), 키보드 및 마우스 조작에 관한 API, 메시지 후킹에 관한 API 또는 코드 인젝션에 관한 API 가운데 하나 이상을 포함하고 있는 파일이 존재하거나, 구조변경 또는 패커가 적용된 파일이 존재하는 경우 게임 클라이언트(2)로부터 수신한 해당 파일의 기본정보를 이용하여 상기 파일이 봇 프로그램으로 의심되는지 여부를 판정하는 제 420 단계;
해당 파일이 봇 프로그램으로 의심되는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 430 단계;
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 440 단계; 및
생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 450 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
Among the files belonging to the process list running from the game client 2 connected to the online game server 1 through the Internet network or the files belonging to the dynamic link list belonging to the process, an API (Application Programming Interface), a keyboard and Whether a file containing any one or more of an API related to mouse manipulation, an API related to message hooking, or an API related to code injection exists. Step 410, receiving a test result of the;
Among the files belonging to the list, there is a file including one or more of an application programming interface (API) for screen screenshots, an API for keyboard and mouse operations, an API for message hooking, or an API for code injection, or A step 420 of determining whether the file is suspected to be a bot program using basic information of the file received from the game client 2 when a file having a structural change or a packer applied thereto exists;
A step 430 of collecting system information of the game client 2 when the file is suspected to be a bot program;
Step 440, generating a globally unique identifier using the collected system information; And
And transmitting the generated global unique identifier to other online game servers (1 ') (450).
제 9 항에 있어서,
상기 제 430 단계에서 상기 시스템 정보는 ip어드레스, MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버 가운데 하나 이상을 포함하는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 9,
In step 430, the system information includes one or more of an ip address, a MAC address, a CPU serial number, a video card serial number, and a motherboard serial number.
온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 키보드 또는 마우스 입력 인터벌이 주기적인지 판단하는 제 510 단계;
키보드 또는 마우스 입력 인터벌이 주기적인 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 520 단계;
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 530 단계; 및
생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 540 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
Step 510, the on-line game server 1 determining whether a keyboard or mouse input interval of the game client 2 connected through the Internet network is periodic;
A step 520 of collecting system information of the game client 2 when the keyboard or mouse input interval is periodic;
Step 530, generating a globally unique identifier using the collected system information; And
And a step 540 of transmitting the generated globally unique identifier to other online game servers (1 ').
제 11 항에 있어서,
상기 제 520 단계에서 상기 시스템 정보는 ip어드레스, MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버 가운데 하나 이상을 포함하는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 11,
In step 520, the system information includes at least one of an ip address, a MAC address, a CPU serial number, a video card serial number, and a motherboard serial number.
온라인 게임 서버(1)가 인터넷 망을 통해 접속한 게임 클라이언트(2)의 키보드 또는 마우스 이벤트가 반복적인 패턴을 나타내는지 판단하는 제 610 단계;
키보드 또는 마우스 이벤트가 반복적인 패턴을 보이는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 620 단계;
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 630 단계; 및
생성된 전역고유식별자를 다른 온라인 게임 서버(1')들로 전송하는 제 640 단계;로 이루어지는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
Step 610, the online game server 1 determines whether a keyboard or mouse event of the game client 2 connected through the Internet network shows a repetitive pattern;
A step 620 of collecting system information of the game client 2 when a keyboard or mouse event shows a repetitive pattern;
Step 630, generating a globally unique identifier using the collected system information; And
And a step 640 of transmitting the generated globally unique identifier to other online game servers (1 ').
제 13 항에 있어서,
상기 제 620 단계에서 상기 시스템 정보는 ip어드레스, MAC어드레스, CPU 시리얼넘버, 비디오카드 시리얼넘버, 메인보드 시리얼넘버 가운데 하나 이상을 포함하는 것을 특징으로 하는 온라인 게임의 비공개 봇 검출방법.
The method of claim 13,
In step 620, the system information includes at least one of an ip address, a MAC address, a CPU serial number, a video card serial number, and a motherboard serial number.
제 1 항 내지 제 13 항에 가운데 어느 한 항에 기재된 온라인 게임의 비공개 봇 검출방법을 컴퓨터상에서 실행하는 프로그램이 수록된 컴퓨터로 판독가능한 기록매체.A computer-readable recording medium containing a program for executing on a computer the method for detecting the private bot of an online game according to any one of claims 1 to 13.
KR1020100084321A 2010-08-30 2010-08-30 Method of detecting unknown bot of online game KR101237161B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100084321A KR101237161B1 (en) 2010-08-30 2010-08-30 Method of detecting unknown bot of online game

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100084321A KR101237161B1 (en) 2010-08-30 2010-08-30 Method of detecting unknown bot of online game

Publications (2)

Publication Number Publication Date
KR20120020609A KR20120020609A (en) 2012-03-08
KR101237161B1 true KR101237161B1 (en) 2013-02-25

Family

ID=46129167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100084321A KR101237161B1 (en) 2010-08-30 2010-08-30 Method of detecting unknown bot of online game

Country Status (1)

Country Link
KR (1) KR101237161B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101483859B1 (en) * 2013-06-07 2015-01-16 (주)이스트소프트 A method of stopping malicious code using a management system monitering the status of the vaccine
KR101881647B1 (en) * 2016-09-01 2018-08-24 성균관대학교산학협력단 Method, apparatus, and computer program for detecting bot program based on group using location information in online game
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
KR102367756B1 (en) * 2020-04-08 2022-02-28 소프트캠프 주식회사 Security system and method for software inputting to trusted network enclosed type
CN114307165A (en) * 2021-12-30 2022-04-12 完美世界(北京)软件科技发展有限公司 Plug-in detection method, device, equipment and medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079216A (en) * 1998-04-02 1999-11-05 윤종용 How to share a database on the Internet
KR20070042688A (en) * 2005-10-19 2007-04-24 주식회사 안철수연구소 Method for detecting crack of execution program
KR20080015623A (en) * 2006-08-16 2008-02-20 주식회사 안철수연구소 Method for detecting input data automatically inputting
KR20090003134A (en) * 2008-12-15 2009-01-09 김동규 Illegal login protection system and method based on pc registratrion

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990079216A (en) * 1998-04-02 1999-11-05 윤종용 How to share a database on the Internet
KR20070042688A (en) * 2005-10-19 2007-04-24 주식회사 안철수연구소 Method for detecting crack of execution program
KR20080015623A (en) * 2006-08-16 2008-02-20 주식회사 안철수연구소 Method for detecting input data automatically inputting
KR20090003134A (en) * 2008-12-15 2009-01-09 김동규 Illegal login protection system and method based on pc registratrion

Also Published As

Publication number Publication date
KR20120020609A (en) 2012-03-08

Similar Documents

Publication Publication Date Title
Yang et al. Appintent: Analyzing sensitive data transmission in android for privacy leakage detection
KR102017756B1 (en) Apparatus and method for detecting abnormal behavior
US11654365B2 (en) Secure anti-cheat system
KR101237161B1 (en) Method of detecting unknown bot of online game
US20100240449A1 (en) System and method for controlling usage of executable code
CN109271780A (en) Method, system and the computer-readable medium of machine learning malware detection model
Diao et al. Evading android runtime analysis through detecting programmed interactions
Avllazagaj et al. When malware changed its mind: An empirical study of variable program behaviors in the real world
CN110888781B (en) Application blockage detection method and detection device
CN114741695A (en) Malicious code monitoring method and device, electronic equipment and storage medium
CN113209630A (en) Frame grabbing defense method and device for game application, storage medium and computer equipment
US8286138B2 (en) Multi-threaded detection of a game software debugger
JP2012083909A (en) Application characteristic analysis device and program
KR101267725B1 (en) Pattern collecting method of bot program for online game
Kaiser et al. Fides: Remote anomaly-based cheat detection using client emulation
KR20110058497A (en) Method for real-time monitoring user abuse in on-line game and system thereof
Yi et al. Vulcan: Lessons on reliability of wearables through state-aware fuzzing
CN112090087B (en) Game plug-in detection method and device, storage medium and computer equipment
KR101741026B1 (en) Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game
CN113094257A (en) Application testing method and device and electronic equipment
KR101277866B1 (en) Apparatus and method of detecting account piracy in online game
CN113181656A (en) Plug-in detection method, device and medium
US9174118B1 (en) System and method for detecting game client modification through script injection
KR101277982B1 (en) Apparatus and method of detecting account piracy in online game
KR101699693B1 (en) Method and program for detecting abnormal function call in on-line game

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160122

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200107

Year of fee payment: 8