KR101237161B1 - Method of detecting unknown bot of online game - Google Patents
Method of detecting unknown bot of online game Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000002347 injection Methods 0.000 claims abstract description 7
- 239000007924 injection Substances 0.000 claims abstract description 7
- 238000001514 detection method Methods 0.000 claims description 16
- 230000003252 repetitive effect Effects 0.000 claims description 8
- 230000000737 periodic effect Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 241000700605 Viruses Species 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000009295 sperm incapacitation Effects 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/75—Enforcing rules, e.g. detecting foul play or generating lists of cheating players
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
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
본 발명은 온라인 게임의 봇 프로그램 검출방법에 관한 것으로, 더욱 구체적으로는 알려지지 않은 비공개 봇 프로그램의 검출방법에 관한 것이다.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
상기 게임 클라이언트(2)로부터의 피드백 소요시간이 일정 시간 이상인 경우가 일정 빈도이상 발생하는지 판단하는 제 120 단계;A step 120 for determining whether a frequency of a feedback occurrence from the
일정 빈도이상 발생하는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 130 단계;A step 130 in which system information of the
수집한 시스템 정보를 이용하여 전역고유식별자(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
상기 게임 클라이언트(2)의 보안 프로그램이 무력화된 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 220 단계;Step 220 of collecting system information of the
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 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
동시에 실행되고 있는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 320 단계;Collecting 320 system information of the
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 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
상기 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 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
해당 파일이 봇 프로그램으로 의심되는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 430 단계;A step 430 of collecting system information of the
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 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
키보드 또는 마우스 입력 인터벌이 주기적인 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 520 단계;A step 520 of collecting system information of the
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 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
키보드 또는 마우스 이벤트가 반복적인 패턴을 보이는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집하는 제 620 단계;A step 620 of collecting system information of the
수집한 시스템 정보를 이용하여 전역고유식별자를 생성하는 제 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
온라인 게임 서버(1)는 인터넷 망을 통해 접속한 다수의 게임 클라이언트(2)로 하여금 온라인 게임을 진행할 수 있도록 서비스를 제공한다.The
게임 클라이언트(2)는 온라인 게임을 진행하기 위하여 온라인 게임 서버(1)로 접속하여 우선 온라인 게임 클라이언트 프로그램을 다운로드받아 설치하며, 온라인 게임을 진행하기 위해 온라인 게임 서버(1)에 접속시마다 클라이언트 프로그램의 업데이트가 있는지 확인하여 설치하게 된다. 한편, 일반적인 온라인 게임 클라이언트 프로그램은 보안 프로그램을 포함하며, 이러한 보안 프로그램은 온라인 게임 클라이언트 프로그램의 실행시 함께 실행되어 계정 정보의 유출을 방지하거나, 봇 프로그램의 실행여부를 판단한다.The
온라인 게임 서버(1)는 후술하는 바와 같이 보안 프로그램을 통하여 게임 클라이언트(2)의 정보를 수집함으로써 봇 프로그램의 제작자 컴퓨터를 색출하거나, 비공개 봇을 검출하게 된다.
As described later, the
이하에서는 도 3 내지 도 5를 참조하여 서버(1)가 인터넷을 통해 연결된 다수의 클라이언트(2)들 가운데서 봇 프로그램 제작자의 컴퓨터를 색출하는 과정을 살펴본다.Hereinafter, a process of searching for a bot program producer's computer among a plurality of
도 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
온라인 게임 서버(1)는 인터넷 망을 통해 접속한 다수의 게임 클라이언트(2)로 하여금 온라인 게임의 플레이를 할 수 있도록 게임의 진행과 관련한 다양한 메시지를 서로 주고 받는다. 이때, 메시지에 대한 피드백은 실시간으로 이루어지며 이에 의하여 다수의 동시접속자들이 함께 온라인 게임을 플레이 할 수 있게 된다. 즉, 상기 S110 단계에서 온라인 게임 서버(1)와 게임 클라이언트(2)가 주고받는 메시지는 종래기술에 의한 온라인 게임에서 일반적으로 이루어지는 것에 해당한다.The
그러나, 네트워크의 회선 불량 기타의 이유로 온라인 게임 서버(1)로부터 수신한 메시지에 대한 피드백은 어느 정도의 시간 갭을 가질 수 있는데, 대부분의 경우 일시적인 장애가 해소되면 피드백에 소요되는 시간은 정상범위 이내로 줄어든다.However, feedback on messages received from the
한편, 봇 프로그램의 제작을 위해서는 디버깅 툴을 이용하여 게임 클라이언트 프로그램을 역으로 분석하는 것이 필수적인데, 디버깅 과정에서는 게임 클라이언트 프로그램이 온라인 게임 서버(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
통상의 네트워크 장애시 피드백이 지연되더라도 일정 시간 이내에 피드백이 이뤄지는 경우가 많으며, 아니면 피드백이 아예 불가능한 것이 정상이다. 그러나, 디버깅 과정에서는 피드백이 지연됨은 물론이거니와 일반적인 경우와 비교할 때에 매우 긴 시간 갭을 가지고 피드백이 이루어지는 경우도 빈번하게 발생한다.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
이 경우 해당 게임 클라이언트(2)는 봇 프로그램 제작자 컴퓨터일 것이라는 추정이 가능하며 따라서 온라인 게임 서버(1)는 해당 게임 클라이언트(2)의 게임 클라이언트 프로그램 또는 보안 프로그램으로부터 정보를 수집한다.In this case, it is possible to assume that the
온라인 게임 서버(1)가 수집할 수 있는 게임 클라이언트(2)에 대한 정보수집 범위는 대체로 온라인 게임 계정 id, 캐릭터 명칭, 캐릭터의 클래스 또는 직업, 레벨, 접속 위치나 월드 맵 상의 위치, 접속시간 등의 접속 계정에 관련된 정보가 있으며,The collecting range of information about the
아울러, 게임 클라이언트(2)에 봇 프로그램이 실행되고 있는 경우라고 한다면 보안 프로그램을 통해 봇 프로그램의 파일명, 파일경로, 버전, 탐지패턴의 정보, 해쉬값 등을 수집할 수 있다.In addition, if the bot program is running on the
그러나, 이러한 정보는 대체로 계정에 의존적인 정보여서 봇 프로그램 개발자가 다계정을 보유하고 있는 경우 또는 다른 온라인 게임의 봇 프로그램을 개발하는 경우에는 의미없는 정보에 불과하다.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
이를 위하여 온라인 게임 서버(1)는 상기 게임 클라이언트(2)의 시스템 정보를 수집한다(S130).To this end, the
이때, 수집되는 정보로는 게임 클라이언트(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
한편, 이와 같이 수집된 정보는 온라인 게임 서버(1)에 저장되지 않고 대신 이들의 조합을 통해 전역고유식별자(Globally Unique Identifier : GUID)를 생성하여 저장한다(S140).On the other hand, the collected information is not stored in the
게임 클라이언트(2)의 하드웨어 구성에 관한 정보는 개인정보에 속하는 것일 수 있어 저장하지 않고 소정의 알고리즘을 이용하여 전역고유식별자를 생성하여 이를 저장하게 된다.The information about the hardware configuration of the
한편, 이와 같이 생성된 전역고유식별자는 다른 온라인 게임 서버(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
예를 들어, 키보드 보안 프로그램의 경우 키 로거들보다 먼저 키 값을 후킹하여 실제 눌러진 키값이 어떤 것이었는지를 알 수 없도록 변조하는데, 키보드 보안 프로그램이 무력화 된 경우 키보드 보안 프로그램이 정상적으로 동작하고 있음에도 불구하고 키 로거들이 키보드 입력값을 알 수 있게 된다.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
보안 프로그램의 무력화를 위한 방법론으로는 여러가지의 알려진 것들이 존재하는데, 예를 들어 메모리 조작에 의한 무력화인 경우 보안 프로그램 자체를 변조하지 않고 단순히 보안 프로그램을 속이는 것이기 때문에 메모리 조작을 위한 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
한편, 보안 프로그램이 무력화된 것으로 판단되는 경우 온라인 게임 서버(1)는 게임 클라이언트(2)의 시스템 정보를 수집(S220)하되, 이를 이용하여 전역고유식별자를 생성한다(S230).On the other hand, if it is determined that the security program is incapacitated, the
이때, 시스템 정보는 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
한편, 전역고유식별자가 생성되면 온라인 게임 서버(1)는 이를 다른 온라인 게임 서버(1')들로 전송한다(S240).
On the other hand, when the global unique identifier is generated, the
한편, 도 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
소프트웨어 분석툴이란 다른 소프트웨어의 실행도중 메모리의 상태, 명령어의 수행단계 등을 분석하기 위한 특수한 소프트웨어로서 "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
패턴의 매칭은 알려진 소프트웨어 분석툴에 대한 탐지패턴들을 메모리에 적재한 다음, 실행중인 프로세스 및 상기 프로세스에 속하는 동적 연결 리스트 파일 리스트를 생성하고, 상기 리스트에 속하는 각 파일에 대하여 탐지패턴이 발견되는지 여부를 판단함으로써 이루어질 수 있다.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
이 경우 온라인 게임 서버(1)는 게임 클라이언트(2)의 시스템 정보를 수집(S320)하여, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S330). 한편, 생성된 전역고유식별자들은 다른 온라인 게임 서버(1')들로 전송되어 공유된다(S340).
In this case, the
한편, 이하에서는 첨부하는 도 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
게임 클라이언트(2)의 보안 프로그램은 실행중인 프로세스 리스트 또는 상기 프로세스에 속하는 동적 연결 리스트를 생성한 다음, 이들 리스트에 속하는 파일들 가운데 상기에서 열거된 특정한 API가 포함된 파일을 검출한다. 상기에서 언급한 API는 일부 백신 프로그램이나 방화벽, 메신저 등을 제외하고는 흔히 사용되지 않는 것이나 소프트웨어 봇의 기능 구현을 위해서는 사용되는 것이므로 상기 리스트에 이러한 API 함수를 사용하는 파일이 존재하는 경우 소프트웨어 봇의 존재를 의심할 수 있다.The security program of the
화면 스크릿 샷에 관한 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
한편, 해당 파일이 봇 프로그램으로 의심되는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집(S430)하여, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S440). 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송된다(S450).
On the other hand, when the file is suspected to be a bot program, the system information of the
한편, 도 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
주기적인 입력 이벤트 발생시 이는 봇에 의한 인위적인 입력 이벤트 발생으로 볼 수 있으며, 이 경우 온라인 게임 서버(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
이에 따라, 온라인 게임 서버(1)는 상기 게임 클라이언트(2)의 시스템 정보를 수집(S520)하고, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S530). 한편, 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송되어 공유된다(S540).
Accordingly, the
한편, 도 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
한편, 키보드 또는 마우스 이벤트가 반복적인 패턴을 보이는 경우 상기 게임 클라이언트(2)의 시스템 정보를 수집(S620)하여, 수집한 시스템 정보를 이용하여 전역고유식별자를 생성한다(S630). 생성된 전역고유식별자는 다른 온라인 게임 서버(1')들로 전송되어 공유된다(S640).
Meanwhile, when the keyboard or mouse event shows a repetitive pattern, the system information of the
이상과 같은 온라인 게임의 비공개 봇 검출방법은 컴퓨터 프로그램의 형태로 제작되되, 컴퓨터로 판독가능한 기록매체에 수록되어 온라인 게임 서버(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
이상 몇가지의 실시예를 들어 본 발명을 살펴보았으나 이러한 실시예는 예시의 목적을 위해 개시된 것이고, 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것임은 물론, 이는 하기의 특허청구범위를 벗어나지 아니하는 것으로 해석되어야 한다.
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)
상기 게임 클라이언트(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;
상기 제 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.
상기 제 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.
상기 게임 클라이언트(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 ').
상기 제 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.
상기 게임 클라이언트(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 ').
상기 제 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.
상기 제 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.
상기 리스트에 속하는 파일들 가운데 화면 스크린 샷에 관한 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).
상기 제 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.
키보드 또는 마우스 입력 인터벌이 주기적인 경우 상기 게임 클라이언트(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 ').
상기 제 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.
키보드 또는 마우스 이벤트가 반복적인 패턴을 보이는 경우 상기 게임 클라이언트(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 ').
상기 제 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.
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)
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)
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 |
-
2010
- 2010-08-30 KR KR1020100084321A patent/KR101237161B1/en active IP Right Grant
Patent Citations (4)
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 |