KR101741026B1 - Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game - Google Patents
Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game Download PDFInfo
- Publication number
- KR101741026B1 KR101741026B1 KR1020100106648A KR20100106648A KR101741026B1 KR 101741026 B1 KR101741026 B1 KR 101741026B1 KR 1020100106648 A KR1020100106648 A KR 1020100106648A KR 20100106648 A KR20100106648 A KR 20100106648A KR 101741026 B1 KR101741026 B1 KR 101741026B1
- Authority
- KR
- South Korea
- Prior art keywords
- module
- function
- called
- game
- malicious
- Prior art date
Links
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/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/33—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
- A63F13/335—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 사용자 컴퓨터의 메모리에 로딩되어 정상적인 게임 함수를 호출하면서 비정상적으로 온라인 게임을 진행하는 악성모듈을 탐지할 수 있도록 한다. 특히, 악성모듈의 탐지는 게임 함수가 호출될 때 함께 호출되는 감시용 함수가 수행하도록 구성된다. 감시용 함수는 온라인 게임 프로세스에 로딩된 모듈의 리스트와 각 모듈이 메모리에 로딩된 어드레스를 조사하고, 콜 스택에서 피호출 함수의 리턴 어드레스를 확인하여 게임 함수를 호출한 모듈을 찾은 후 해당 모듈이 정상적인 모듈인지의 여부를 판별한다. 특정 게임 함수가 호출되었을 때만 악성모듈의 존재 여부에 관한 조사가 이루어지기 때문에 메모리에 로딩된 모든 모듈을 주기적으로 조사할 필요가 없어 효율적인 악성모듈 탐지가 가능하고, 악성모듈이 온라인 게임과 관련된 것인지의 여부를 정확하게 판별할 수 있다.The present invention can be loaded into a memory of a user computer to detect a malicious module that is abnormally playing an online game while calling a normal game function. In particular, detection of a malicious module is configured to perform a monitoring function that is called together when a game function is called. The monitoring function examines the list of modules loaded in the online game process and the address where each module is loaded into memory, checks the return address of the called function in the call stack, finds the module that called the game function, It is determined whether or not it is a normal module. It is possible to detect an effective malicious module since it is not necessary to periodically examine all the modules loaded in the memory because the investigation of whether or not a malicious module exists is performed only when a specific game function is called, It is possible to accurately determine whether or not it is the same.
Description
본 발명은 온라인 게임에 관한 것으로서, 특히 비정상적으로 온라인 게임을 이용하기 위해 사용자 컴퓨터에서 실행되는 악성모듈을 콜 스택(Call Stack)을 이용하여 정확하게 탐지할 수 있도록 한다.
The present invention relates to an online game, and more particularly, to a malicious module that is executed in a user's computer in order to use an online game abnormally, by using a call stack.
통신망과 컴퓨터 관련 기술이 발전하면서 다양한 종류의 온라인 게임 서비스가 제공되고 있는데, 게임 내 재화의 가치가 높아지면서 비정상적인 방법으로 온라인 게임을 이용하는 사례가 늘고 있다.As the communication network and computer related technology develops, various types of online game services are being provided. As the value of in-game goods increases, online games are increasingly used in an abnormal manner.
게임 내 재화를 획득하기 위하여 온라인 게임을 비정상적으로 이용하는 방법은 다양하다.There are various ways to use online games abnormally to obtain in-game goods.
예를 들자면, USB 디바이스를 이용하여 마치 사용자가 키보드나 마우스를 통해 어떤 명령을 입력하는 것처럼 위장하는 하드웨어적 처리 방법, 특정 기능을 수행하는 프로그램(악성모듈)을 메모리의 온라인 게임 프로세스에 로딩시켜 게임 함수를 호출하는 소프트웨어적 처리 방법을 들 수 있다.For example, by using a USB device, a hardware processing method that masquerades as if a user enters a command through a keyboard or a mouse, a program (malicious module) that performs a specific function is loaded into an online game process of a memory, And a software processing method for calling a function.
후자의 경우 로봇 프로그램(불법 프로그램이나 'BOT' 등으로도 불린다)은 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 악성모듈을 주입(Injection) 시키는데, 일반적으로 악성모듈은 DLL(Dynamic Link Library)로 만들어져 온라인 게임 프로세스에 주입된다.In the latter case, a robot program (also called an illegal program or 'BOT') injects a malicious module into an online game process running on a user's computer. In general, a malicious module is made of a dynamic link library Is injected into the game process.
온라인 게임 프로세스에 주입된 악성모듈은 게임 클라이언트가 제공하는 정상적인 함수를 호출하여 게임을 진행하고, 게임 내에서 사냥이나 채집 등을 스스로 수행하여 게임 내 재화를 획득한다.
The malicious module injected into the online game process calls a normal function provided by the game client to advance the game, and performs hunting or gathering in the game to obtain the in-game goods.
이와 같이 악성모듈에 의해 게임이 진행되면, 정상적으로 게임을 이용하는 사용자들이 게임 내에서 좋은 게임 아이템을 얻을 기회가 부당하게 박탈되고, 게임 진행을 방해 받기 때문에 여러 가지 피해가 발생한다.When the game is progressed by the malicious module, the user who normally uses the game is unfairly deprived of the opportunity to obtain a good game item in the game, and the game progress is interrupted.
이는 온라인 게임에 대한 흥미를 감소시켜 게임의 이용을 피하게 하고 민원을 발생시키는 주요 요인이 될 수 있다.
This may reduce interest in online games, thereby avoiding the use of games and becoming a major factor in generating complaints.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 사용자 컴퓨터의 메모리에 로딩되어 정상적인 게임 함수를 호출하면서 비정상적으로 온라인 게임을 진행하는 악성모듈을 효율적으로 탐지할 수 있도록 해 주는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to efficiently detect a malicious module that is loaded in a memory of a user's computer, have.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 일 실시예는, 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계; 상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계; 콜 스택(Call Stack)을 조사하여 피호출 함수(피호출 함수는 게임 클라이언트에서 제공하는 정상적인 함수이다)의 리턴 어드레스(Return Address)를 확인하는 단계; 및 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈을 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 단계를 포함하여 이루어진다.In order to accomplish the above object, an embodiment of a malicious module detection method in an online game according to the present invention includes: checking a list of modules loaded in an online game process running in a user computer; Checking each module in the list for an address loaded into memory; Checking a call stack (Call Stack) to check a return address of a called function (the called function is a normal function provided by the game client); And analyzing the module indicated by the return address of the called function to determine whether the module is a normal module.
이때 상기 각 단계는 상기 피호출 함수(게임함수)가 호출될 때 함께 호출되는 감시용 함수가 수행한다.
At this time, each of the steps is performed by a monitoring function called together when the called function (game function) is called.
상기 감시용 함수가 확인하는 모듈은 DLL(Dynamic Link Library) 형식의 모듈을 포함할 수 있다.The module identified by the monitoring function may include a DLL (Dynamic Link Library) format module.
상기 감시용 함수는 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 이용하여 해당 모듈이 정상적인 모듈인지의 여부를 판별할 수 있다.
The monitoring function can determine whether the corresponding module is a normal module by using at least one of a file name, a file size, and a hash value of the module indicated by the return address of the called function.
상기 감시용 함수는 상기 판별 결과 해당 모듈이 비정상적인 모듈인 경우 이를 알리는 소정의 정보를 통신망을 통해 특정 서버로 전송할 수 있다.The monitoring function can transmit predetermined information to the specific server via the communication network when the corresponding module is an abnormal module as a result of the determination.
본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 또 다른 실시예는, 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계; 상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계; 콜 스택(Call Stack)을 조사하여 피호출 함수(피호출 함수는 게임 클라이언트에서 제공하는 정상적인 함수이다)의 리턴 어드레스(Return Address)를 확인하는 단계; 및 상기 리턴 어드레스가 지시하는 모듈의 정보를 통신망을 통해 특정 서버로 전송하는 단계를 포함하여 이루어진다.Yet another embodiment of the malicious module detection method in an online game according to the present invention includes: checking a list of modules loaded in an online game process running in a user computer; Checking each module in the list for an address loaded into memory; Checking a call stack (Call Stack) to check a return address of a called function (the called function is a normal function provided by the game client); And transmitting information of a module indicated by the return address to a specific server through a communication network.
이때 상기 각 단계는 상기 피호출 함수(게임함수)가 호출될 때 함께 호출되는 감시용 함수가 수행한다.At this time, each of the steps is performed by a monitoring function called together when the called function (game function) is called.
상기 감시용 함수가 상기 특정 서버로 전송하는 정보는 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 포함할 수 있다.The information transmitted to the specific server by the monitoring function may include at least one of a file name, a file size, and a hash value of the corresponding module.
상기 특정 서버는 상기 통신망을 통해 수신된 모듈 정보를 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별할 수 있다.
The specific server may analyze the module information received through the communication network to determine whether the corresponding module is a normal module.
본 발명에 따르면, 온라인 게임을 비정상적으로 이용하는 악성모듈이 호출할 수 있는 정상적인 게임 함수에 감시용 함수를 연결시켜 놓음으로써, 게임 함수가 호출되면 감시용 함수도 함께 호출되도록 한다.According to the present invention, a surveillance function is linked to a normal game function that can be called by a malicious module that abnormally uses an online game, so that a monitoring function is also called when a game function is called.
그리고 감시용 함수는 피호출 함수인 게임 함수의 리턴 어드레스를 통해 게임 함수를 호출한 모듈을 확인하고 해당 모듈이 정상적인 모듈인지를 판별한다.Then, the monitoring function checks the module that calls the game function through the return address of the game function, which is the called function, and determines whether the module is a normal module.
특정 게임 함수가 호출되었을 때만 악성모듈의 존재 여부에 관한 조사가 이루어지기 때문에 메모리에 로딩된 모든 모듈을 주기적으로 조사할 필요가 없어 효율적인 악성모듈 탐지가 가능해 진다.Since a malicious module is checked only when a specific game function is called, it is not necessary to periodically check all the modules loaded in the memory, thereby enabling efficient malicious module detection.
또한, 사용자 컴퓨터의 악성모듈이 온라인 게임과 관련된 것인지의 여부를 정확하게 판별해 낼 수 있다.
In addition, it is possible to accurately determine whether or not the malicious module of the user computer is related to the online game.
도 1은 온라인 게임을 서비스하는 시스템의 개요,
도 2는 사용자 컴퓨터의 구체적인 예,
도 3은 본 발명에 따른 악성모듈 탐지 방법의 일 실시예,
도 4는 게임 함수의 호출에 따라 감시용 함수가 호출되는 것을 설명하는 예,
도 5는 콜 스택에 관한 예,
도 6은 악성모듈에 관한 정보를 게임 서버로 전송하는 실시예,
도 7은 본 발명에 따른 악성모듈 탐지 방법의 또 다른 실시예,
도 8은 본 발명에 따라 악성모듈 탐지가 이루어지는 과정을 설명하기 위한 메모리 상태의 예이다.1 shows an overview of a system for providing online games,
2 shows a specific example of a user computer,
3 is a block diagram of an embodiment of a malicious module detection method according to the present invention,
4 is an example of explaining that a monitoring function is called according to a call of a game function,
Figure 5 is an example of a call stack,
6 is an embodiment for transmitting information on a malicious module to a game server,
7 is a block diagram illustrating another embodiment of a malicious module detection method according to the present invention,
8 is an example of a memory state for explaining a process of detecting a malicious module according to the present invention.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1을 참조하자면, 온라인 게임 서비스는 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)을 통해 제공되며, 각 사용자 컴퓨터(10)에 설치되는 게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)와 서로 통신하면서 온라인 게임을 진행한다.1, an online game service is provided through
온라인 게임의 종류는 다양할 수 있으며, 구체적인 예로는 여러 사용자가 동시 다발적으로 참여할 수 있는 MMORPG(Massively Multi-player Online Role Playing Game) 유형의 게임을 들 수 있다.There are various kinds of online games. For example, MMORPG (Massively Multi-player Online Role Playing Game) type game can be concurrently played by a plurality of users.
각 사용자가 온라인 게임을 이용하기 위해 사용하는 사용자 컴퓨터(10)는 데스크 탑 컴퓨터나 노트북 컴퓨터와 같은 개인용 컴퓨터(PC: Personal Computer)뿐 아니라 휴대폰이나 스마트폰 등 통신망을 통해 온라인 게임 서비스를 이용할 수 있는 성능을 갖는 임의의 기기일 수 있다.The
사용자 컴퓨터(10)에는 사용자가 온라인 게임을 이용할 수 있도록 해주는 게임 클라이언트(11)가 설치된다.The
게임 클라이언트(11)는 통신망(15)을 통해 다운로드되어 설치될 수 있고 최신 버젼으로 유지되며, 게임 관련 공지사항의 디스플레이, 게임 화면 처리, 사운드 효과 처리, 게임을 위한 각종 사용자 인터페이스의 제공 등 사용자측에서 수행되어야 할 다양한 역할을 담당한다.The
게임 클라이언트(10)는 기본적으로 게임 서버(17)와 통신하면서 온라인 게임을 진행시키는 역할을 수행하며, 게임 클라이언트(11)와 게임 서버(17)의 역할 분담은 필요에 따라 다양하게 구성될 수 있다.The
도 2는 사용자 컴퓨터(10)의 구체적인 예를 보인 것이다.2 shows a specific example of the
각 요소들은 다양한 구조의 시스템 버스(10-1)를 통해 서로 연결되고, 중앙처리장치(CPU: Central Processing Unit,10-2)의 총괄적인 제어하에 서로 데이터를 주고 받으면서 그 역할을 수행한다.Each element is connected to each other through a system bus 10-1 having a variety of structures, and plays a role of exchanging data with each other under the general control of a central processing unit (CPU) 10-2.
메모리(10-3)는 램(RAM: Random Access Memory)으로서, 중앙처리장치(10-2)가 즉시 액세스할 컴퓨터 프로그램이나 데이터를 저장한다.The memory 10-3 is a RAM (Random Access Memory), and stores a computer program or data to be immediately accessed by the central processing unit 10-2.
입력장치 인터페이스(10-4)는 입력장치(10-5)와 연결되어 사용자가 사용자 컴퓨터(10)로 각종 명령이나 정보를 입력할 수 있도록 한다. 사용자 컴퓨터(10)는 입력장치 인터페이스(10-4)를 통해 키보드, 마우스, 키패드, 터치 스크린 등 다양한 종류의 입력장치(10-5)와 연결될 수 있다.The input device interface 10-4 is connected to the input device 10-5 so that a user can input various commands and information to the
디스플레이 어댑터(10-6)는 다양한 디스플레이 장치(10-7)를 통해 출력할 비디오 정보를 처리하며, 사운드 카드(10-8)는 오디오 정보를 처리하여 스피커(10-9)를 통해 출력한다.The display adapter 10-6 processes the video information to be outputted through the various display devices 10-7, and the sound card 10-8 processes the audio information and outputs it through the speaker 10-9.
네트워크 인터페이스(10-11)는 사용자 컴퓨터(10)가 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)과 연결되어 통신할 수 있도록 한다.The network interface 10-11 enables the
저장매체(10-10)는 비휘발성의 성질을 가지며, 사용자 컴퓨터(10)에 의해 액세스될 수 있는 내장형, 외장형, 분리형, 비분리형의 다양한 형태를 가질 수 있다.The storage medium 10-10 is non-volatile and may have various forms of embedded, external, removable, non-removable, accessible by the user's
저장매체(10-10)에는 마이크로소프트사의 윈도우즈(Windows)와 같은 운영체제(OS: Operating System,14), 게임 클라이언트(11) 등의 각종 컴퓨터 프로그램이나 데이터가 설치되어 유지된다.Various computer programs and data such as an operating system (OS) 14 and a
특히 저장매체(10-10)에는 프로그래밍된 내용에 따라 마치 자신이 사용자인 것처럼 위장하여 온라인 게임을 비정상적으로 진행하는 로봇 프로그램(12)이 설치될 수 있다.
In particular, the storage medium 10-10 may be provided with a
사용자가 게임 클라이언트(11)를 실행시키면, 게임 클라이언트(11)가 메모리(10-3)에 로딩되어 온라인 게임 프로세스가 생성되고, 중앙처리장치(10-2)는 해당 코드를 순차적으로 처리한다.When the user executes the
또한, 온라인 게임을 비정상적으로 이용하는 경우에는 로봇 프로그램(12)도 실행된다. 로봇 프로그램(12)은 메모리(10-3)의 온라인 게임 프로세스에 악성모듈을 주입(Injection) 시키고, 악성모듈은 사냥이나 채집 등 게임 내 재화를 얻을 수 있는 게임 함수를 호출하여 게임을 진행하게 된다.When the online game is used abnormally, the
로봇 프로그램(12)이 온라인 게임 프로세스에 주입시키는 악성모듈은 일반적으로 DLL(Dynamic Link Library)로 만들어진다.
The malicious module that the
이하에서는 설명의 편의를 위하여 로봇 프로그램(12)에 의해 온라인 게임 프로세스에 주입된 악성모듈이 호출하는 게임 함수를 '감시 대상 함수'라고 부르기로 한다. 감시 대상 함수는 악성모듈에 의해 호출되더라도 정상적인 게임 함수이다.
Hereinafter, for convenience of explanation, a game function called by a malicious module injected into the online game process by the
도 3을 참조하여, 본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 일 실시예를 설명하기로 한다.Referring to FIG. 3, an embodiment of a malicious module detection method in an online game according to the present invention will be described.
먼저 온라인 게임 프로세스의 어떤 모듈에 의해 감시 대상 함수가 호출됨에 따라 감시용 함수도 함께 호출된다(S211).First, a monitoring function is called together with a monitoring target function by a certain module of the online game process (S211).
여기서 감시용 함수란 본 발명에 따라 악성모듈을 감시하기 위하여 사용되는 프로그램 코드를 말하며, 감시 대상 함수와 연결되어 감시 대상 함수가 호출될 때 함께 호출되도록 구성된다.Here, the monitoring function refers to a program code used for monitoring a malicious module according to the present invention, and is configured to be called when a monitoring target function is called in connection with a monitoring target function.
도 4를 참조하자면, 로봇 프로그램(12)이 메모리(10-3)에 생성되어 있는 온라인 게임 프로세스(40)에 주입한 악성모듈(41)은 감시 대상 함수(43)를 호출하여 게임을 진행한다. 이때 감시 대상 함수(43)는 감시용 함수(45)와 연결되어 있으며, 악성모듈(41)에 의해 호출된 피호출 함수인 감시 대상 함수(43)는 감시용 함수를 호출한다. 그러면, 감시용 함수(45)가 단계 S212 내지 S215를 수행함으로써 감시 대상 함수(43)를 호출한 모듈이 악성모듈인지의 여부를 판별하게 된다.4, the
단계 S211에서 호출된 감시용 함수는 온라인 게임 프로세스에 로딩된 각 모듈의 리스트를 확인한다(S212).The monitoring function called in step S211 checks the list of each module loaded in the online game process (S212).
단계 S212에서 감시용 함수가 모듈 리스트를 얻는 방법은 다양하게 구성될 수 있다. 구체적인 예로서 사용자 컴퓨터(10)의 운영체제가 마이크로소프트사의 윈도우즈(Windows)인 경우 윈도우즈 API(Application Program Interface) 함수를 이용하여 모듈 리스트를 얻을 수 있다.The method for obtaining the module list for the monitoring function in step S212 can be variously configured. As a specific example, if the operating system of the
또한, 감시용 함수는 단계 S212에서 확인된 모듈 리스트의 각 모듈이 메모리(10-3)에 로딩된 어드레스를 조사한다(S213).In addition, the monitoring function examines the address loaded in the memory 10-3 by each module of the module list identified in step S212 (S213).
그리고 감시용 함수는 콜 스택(Call Stack)을 조사하여, 단계 S211에서 호출된 감시 대상 함수의 리턴 어드레스(Return Address)를 확인한다(S214).Then, the monitoring function examines the call stack (Call Stack) and checks the return address of the monitoring target function called in step S211 (S214).
콜 스택은 함수 사이의 호출 관계에 관한 정보를 동적으로 저장하는 메모리 영역이며, 특히 각 서브 루틴이 종료되었을 때 복귀할 메모리 주소(리턴 어드레스)를 저장한다.A call stack is a memory area that dynamically stores information about the call relationship between functions, and in particular, stores a memory address (return address) to be returned when each subroutine is terminated.
도 5는 콜 스택의 예를 도시한 것으로서, 각 서브 루틴에 대응하는 파라미터(PARAM: Parameter), 리턴 어드레스, 지역 변수(LOCAL: Local Variable) 등이 저장된다. 'PARAM'은 함수의 파라미터에 관한 정보를 저장하는 영역이고, 리턴 어드레스는 피호출 함수가 종료한 후 복귀할 주소를 저장하는 영역이며, 'LOCAL'은 지역변수를 저장하는 영역이다.
FIG. 5 shows an example of a call stack, and a parameter (PARAM), a return address, and a local variable (LOCAL) corresponding to each subroutine are stored. 'PARAM' is an area for storing information about a parameter of a function, and a return address is an area for storing an address to be returned after a called function is terminated, and 'LOCAL' is an area for storing a local variable.
이제 감시용 함수는 단계 S214에서 확인된 리턴 어드레스를 기초로 감시 대상 함수를 호출한 모듈을 찾을 수 있고, 해당 모듈의 정보를 분석하여 악성모듈인지의 여부를 판별한다(S215).Now, the monitoring function can find the module that called the monitoring target function based on the return address confirmed in step S214, analyze the information of the module, and determine whether it is a malicious module (S215).
단계 S215에서 감시 대상 함수를 호출한 모듈이 정상적인 모듈인지 아니면 악성모듈인지를 판별하는 방법은 다양하게 구성될 수 있다.The method for determining whether the module that calls the monitoring target function in step S215 is a normal module or a malicious module may be configured in various ways.
구체적인 예를 들자면, 해당 모듈의 파일명, 해당 모듈의 파일 크기, 해당 모듈의 해쉬(Hash) 값 등을 통해 판별할 수 있다. 즉, 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 등이 감시용 함수가 알고 있는 정상 모듈의 정보와 일치하지 않으면 악성모듈로 판단할 수 있다.For example, a file name of the corresponding module, a file size of the module, and a hash value of the module can be determined. That is, if the file name, file size, hash value, etc. of the module do not match the information of the normal module known by the monitoring function, it can be determined as a malicious module.
뿐만 아니라 메모리(10-3)에 존재하는 해당 모듈의 코드를 정상적인 모듈의 코드와 비교하여 해당 모듈이 악성모듈인지의 여부를 판별할 수도 있다.
In addition, the code of the corresponding module existing in the memory 10-3 may be compared with a code of a normal module to determine whether the corresponding module is a malicious module.
도 6을 참조하자면, 감시용 함수는 단계 S215에서의 판별 결과 해당 모듈이 악성모듈인 경우(S216-1), 해당 모듈에 관한 정보를 통신망(15)을 통해 특정 서버로 전송할 수 있다(S216-2).6, the monitoring function can transmit information on the module to the specific server through the
여기서 특정 서버는 게임 서버(17)일 수도 있고, 악성모듈 감시 기능을 수행하는 별도의 서버(도시되지 않음)일 수도 있다. 그러면, 해당 서버는 비정상적으로 온라인 게임을 이용하는 사용자에 대한 조치를 취할 수 있다.Here, the specific server may be the
단계 S216-2에서 특정 서버로 전송할 정보는 필요에 따라 다양할 수 있다. 예컨대 해당 모듈의 파일명, 해당 모듈의 파일 크기, 해당 모듈이 로딩된 메모리 블럭의 내용 등을 전송할 수 있다.
In step S216-2, the information to be transmitted to the specific server may vary according to need. The file name of the corresponding module, the file size of the module, the contents of the loaded memory block, and the like.
도 7을 참조하여, 본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 또 다른 실시예를 설명하기로 한다.Referring to FIG. 7, another embodiment of a malicious module detection method in an online game according to the present invention will be described.
도 7에서 단계 S231 내지 S234는 도 3을 참조하여 설명한 단계 S211 내지 S214와 동일하므로 중복 설명은 생략하기로 한다.Steps S231 to S234 in FIG. 7 are the same as steps S211 to S214 described with reference to FIG. 3, and therefore duplicate description will be omitted.
그리고 감시용 함수는 단계 S234에서 확인된 리턴 어드레스를 기초로 감시 대상 함수를 호출한 모듈을 찾을 수 있고, 해당 모듈에 관한 정보를 통신망을 통해 특정 서버로 전송한다(S235).Then, the monitoring function can find the module that called the monitoring target function based on the return address confirmed in step S234, and transmits information about the module to the specific server through the communication network (S235).
단계 S235에서 특정 서버로 전송할 정보는 필요에 따라 다양할 수 있다.The information to be transmitted to the specific server in step S235 may vary as needed.
예컨대 해당 모듈의 파일명, 해당 모듈의 파일 크기, 해당 모듈의 해쉬(Hash) 값, 해당 모듈이 로딩된 메모리 블럭의 내용 등을 전송할 수 있다.For example, a file name of the corresponding module, a file size of the module, a hash value of the module, a content of the loaded memory block, and the like.
그러면, 특정 서버는 통신망을 통해 수신된 정보를 분석하여 해당 모듈이 정상적인 모듈인지 아니면 악성모듈인지의 여부를 판별한다.Then, the specific server analyzes the information received through the communication network to determine whether the corresponding module is a normal module or a malicious module.
구체적인 예를 들자면, 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 등이 미리 알고 있는 정보와 일치하는지의 여부를 확인하거나, 메모리 블럭의 코드가 정상적인 모듈의 코드와 서로 일치하는지를 비교함으로써 해당 모듈이 악성모듈인지의 여부를 판별할 수 있다.As a concrete example, it is checked whether or not the file name, file size, hash value, etc. of the module coincide with previously known information, or whether the code of the memory block coincides with the code of the normal module, It can be determined whether or not the malicious module is malicious.
여기서 특정 서버는 게임 서버(17)일 수도 있고, 악성모듈 감시 기능을 수행하는 별도의 서버(도시되지 않음)일 수도 있다.
Here, the specific server may be the
한편, 도 3을 참조하여 설명한 실시예의 온라인 게임에 있어서의 악성모듈 탐지 방법은 컴퓨터 판독 가능한 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현할 수 있다.Meanwhile, the malicious module detection method in the online game of the embodiment described with reference to FIG. 3 can be implemented as a computer-readable code on a computer-readable recording medium.
또한, 도 7을 참조하여 설명한 실시예의 온라인 게임에 있어서의 악성모듈 탐지 방법도 컴퓨터 판독 가능한 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현할 수 있다.The malicious module detection method in the on-line game of the embodiment described with reference to FIG. 7 can also be implemented as a computer-readable code on a computer-readable recording medium.
상기 컴퓨터 판독 가능한 기록 매체는 컴퓨터에 의해 읽혀질 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다.The computer-readable recording medium includes all kinds of recording apparatuses in which information that can be read by a computer is stored.
예를 들자면, ROM(Read Only Memory), RAM, CD-ROM, 자기 테이프, 플로피 디스크, 하드 디스크 드라이브(HDD), 광 데이터 저장 장치, USB(Universal Serial Bus) 메모리, 메모리 카드 등을 포함할 수 있다. 뿐만 아니라 통신망을 통해 전송되는 형태로 구현되는 것도 포함한다.
For example, it may include a ROM (Read Only Memory), a RAM, a CD-ROM, a magnetic tape, a floppy disk, a hard disk drive (HDD), an optical data storage device, a Universal Serial Bus have. And may be implemented in a form that is transmitted through a communication network.
도 8에 도시한 메모리(10-3)의 예를 참조하여, 본 발명에 따라 악성모듈을 탐지하는 구체적인 과정을 설명하기로 한다.A specific process of detecting a malicious module according to the present invention will be described with reference to an example of the memory 10-3 shown in Fig.
메모리(10-3)에는 온라인 게임 프로세스를 실행하는 Kernel32.dll(81), abc.dll(83), game.exe(84)가 로딩되어 있으며, 온라인 게임 프로세스가 갖는 쓰레드(Thread) 수에 따라 스택영역(82)이 할당되어 있다.
만일 어떤 모듈이 게임 함수(감시 대상 함수)를 호출하였다면, 이 게임 함수가 호출됨에 따라 감시용 함수도 함께 호출된다.
If a module calls a game function (watchdog function), the watchdog function is called as well as this game function is called.
감시용 함수는 온라인 게임 프로세스가 갖는 모든 모듈을 포함하는 리스트, 예컨대 Kernel32.dll(81), abc.dll(83), game.exe(84)가 포함되어 있는 리스트를 얻는다. 이때 감시용 함수는 사용자 컴퓨터의 운영체제(OS)가 마이크로소프트사의 윈도우즈(Windows)인 경우 윈도우즈 API 함수를 이용하여 온라인 게임 프로세스가 사용하는 모듈의 리스트를 얻을 수 있다.The monitoring function obtains a list including a list including all the modules of the online game process, for example, Kernel32.dll (81), abc.dll (83), and game.exe (84). At this time, if the operating system (OS) of the user's computer is Microsoft's Windows, the monitoring function can obtain a list of modules used by the online game process using the Windows API function.
또한, 감시용 함수는 Kernel32.dll(81), abc.dll(83), game.exe(84)가 메모리(10-3)에 로딩된 주소를 조사한다.Also, the monitoring function examines the address where Kernel32.dll (81), abc.dll (83), and game.exe (84) are loaded into the memory 10-3.
그리고 스택영역(82)에서 피호출 함수(감시 대상 함수)의 리턴 어드레스를 조사하여, 감시 대상 함수를 호출한 모듈이 어느 것인지를 확인한다.In the
예로서, 리턴 어드레스가 0x00400000~0x00420000'의 사이에 있다면, 감시 대상 함수를 호출한 모듈은 'abc.dll'이다.For example, if the return address is between 0x00400000 and 0x00420000 ', the module that called the watchdog function is' abc.dll'.
이제 감시용 함수는 'abc.dll' 모듈의 파일 이름, 파일 크기, 해쉬 값 등이 미리 알려진 정상 모듈의 그 것과 일치하는지를 확인하여 'abc.dll' 모듈이 악성모듈인지의 여부를 확인하거나, 또는 abc.dll에 관한 정보를 특정 서버로 전송한다.
Now, the surveillance function checks whether the 'abc.dll' module is a malicious module by checking whether the file name, file size, and hash value of the 'abc.dll' module matches that of a known normal module, or Send information about abc.dll to a specific server.
상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.
It is to be understood that the present invention is not limited to the above-described embodiment, and that various changes and modifications may be made by those skilled in the art without departing from the technical spirit of the present invention. to be.
10: 사용자 컴퓨터 11: 게임 클라이언트
12: 로봇 프로그램 15: 통신망
17: 게임 서버 10-2: 중앙처리장치(CPU)
10-3: 메모리 10-10: 저장매체
14: 운영체제(OS) 40: 온라인 게임 프로세스
41: 악성모듈 43: 감시 대상 함수
45: 감시용 함수10: user computer 11: game client
12: Robot program 15: Communication network
17: game server 10-2: central processing unit (CPU)
10-3: Memory 10-10: Storage medium
14: Operating system (OS) 40: Online game process
41: malicious module 43: monitored function
45: Surveillance function
Claims (10)
상기 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계;
상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계;
콜 스택(Call Stack)을 조사하여 피호출 함수 -상기 피호출 함수는 정상적인 게임 함수임-의 리턴 어드레스(Return Address)를 확인하는 단계; 및
상기 피호출 함수의 리턴 어드레스가 지시하는 모듈을 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 단계를 포함하고,
상기 각 단계는 상기 피호출 함수가 호출될 때 함께 호출되는 감시용 함수가 수행하는 것이되,
상기 감시용 함수는 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 이용하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.CLAIMS 1. A method for detecting a malicious module running on a user's computer,
Checking a list of modules loaded in an online game process running in the user computer;
Checking each module in the list for an address loaded into memory;
Checking a call stack to check a return address of a called function - the called function being a normal game function; And
Analyzing a module indicated by the return address of the called function and determining whether the module is a normal module,
Wherein each of the steps is performed by a monitoring function that is called together when the called function is called,
Wherein the monitoring function determines whether the module is a normal module by using at least one of a file name, a file size, and a hash value of a module indicated by a return address of the called function. Detection of malicious modules in games.
상기 감시용 함수가 확인하는 모듈은 DLL(Dynamic Link Library)을 포함하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.The method according to claim 1,
Wherein the module to be monitored by the monitoring function includes a dynamic link library (DLL).
상기 감시용 함수는 상기 판별 결과 해당 모듈이 비정상적인 모듈인 경우 이를 알리는 소정의 정보를 통신망을 통해 특정 서버로 전송하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.The method according to claim 1,
Wherein the monitoring function transmits predetermined information to the specific server via a communication network when the module is an abnormal module as a result of the determination.
상기 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계;
상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계;
콜 스택(Call Stack)을 조사하여 피호출 함수 -상기 피호출 함수는 정상적인 게임 함수임-의 리턴 어드레스(Return Address)를 확인하는 단계; 및
상기 리턴 어드레스가 지시하는 모듈의 정보를 통신망을 통해 특정 서버로 전송하는 단계를 포함하고,
상기 각 단계는 상기 피호출 함수가 호출될 때 함께 호출되는 감시용 함수가 수행하는 것이되,
상기 감시용 함수는 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 이용하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.CLAIMS 1. A method for detecting a malicious module running on a user's computer,
Checking a list of modules loaded in an online game process running in the user computer;
Checking each module in the list for an address loaded into memory;
Checking a call stack to check a return address of a called function - the called function being a normal game function; And
And transmitting information of a module indicated by the return address to a specific server through a communication network,
Wherein each of the steps is performed by a monitoring function that is called together when the called function is called,
Wherein the monitoring function determines whether the module is a normal module by using at least one of a file name, a file size, and a hash value of a module indicated by a return address of the called function. Detection of malicious modules in games.
상기 감시용 함수가 확인하는 모듈은 DLL(Dynamic Link Library)을 포함하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.6. The method of claim 5,
Wherein the module to be monitored by the monitoring function includes a dynamic link library (DLL).
상기 특정 서버는 상기 통신망을 통해 수신된 모듈 정보를 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.6. The method of claim 5,
Wherein the specific server analyzes the module information received through the communication network to determine whether the module is a normal module or not.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100106648A KR101741026B1 (en) | 2010-10-29 | 2010-10-29 | Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100106648A KR101741026B1 (en) | 2010-10-29 | 2010-10-29 | Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120045233A KR20120045233A (en) | 2012-05-09 |
KR101741026B1 true KR101741026B1 (en) | 2017-05-30 |
Family
ID=46264735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100106648A KR101741026B1 (en) | 2010-10-29 | 2010-10-29 | Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101741026B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101444929B1 (en) * | 2012-12-04 | 2014-09-26 | 주식회사 안랩 | Abnormal call detecting device and abnormal call detecting method |
KR101699693B1 (en) * | 2015-05-15 | 2017-01-25 | 주식회사 엔씨소프트 | Method and program for detecting abnormal function call in on-line game |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006330926A (en) * | 2005-05-24 | 2006-12-07 | Mitsubishi Electric Corp | Virus infection detection device |
JP2009199529A (en) * | 2008-02-25 | 2009-09-03 | Fourteenforty Research Institute Inc | Information equipment, program and method for preventing execution of unauthorized program code |
-
2010
- 2010-10-29 KR KR1020100106648A patent/KR101741026B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006330926A (en) * | 2005-05-24 | 2006-12-07 | Mitsubishi Electric Corp | Virus infection detection device |
JP2009199529A (en) * | 2008-02-25 | 2009-09-03 | Fourteenforty Research Institute Inc | Information equipment, program and method for preventing execution of unauthorized program code |
Also Published As
Publication number | Publication date |
---|---|
KR20120045233A (en) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11687653B2 (en) | Methods and apparatus for identifying and removing malicious applications | |
US10701091B1 (en) | System and method for verifying a cyberthreat | |
CN102651061B (en) | System and method of protecting computing device from malicious objects using complex infection schemes | |
US20080244556A1 (en) | Prevention of exploitation of update rollback | |
US20090143144A1 (en) | Add-in card based cheat detection platform for online applications | |
US20080182659A1 (en) | In-play detection of altered game data | |
US8499351B1 (en) | Isolated security monitoring system | |
KR101741026B1 (en) | Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game | |
CN114741695A (en) | Malicious code monitoring method and device, electronic equipment and storage medium | |
JP2006146600A (en) | Operation monitoring server, terminal apparatus and operation monitoring system | |
KR101237161B1 (en) | Method of detecting unknown bot of online game | |
KR102382889B1 (en) | Method and system for detecting web shell using process information | |
CN117032894A (en) | Container security state detection method and device, electronic equipment and storage medium | |
CN113779576A (en) | Identification method and device for executable file infected virus and electronic equipment | |
KR101591076B1 (en) | Method and apparatus for checking integrity of resource | |
KR101699693B1 (en) | Method and program for detecting abnormal function call in on-line game | |
CN116688517A (en) | System and method for anti-cheating detection | |
RU2697951C2 (en) | System and method of terminating functionally restricted application, interconnected with website, launched without installation | |
CN107465744B (en) | Data downloading control method and system | |
KR20120045234A (en) | Method and computer readable recording medium for detecting malicious module of on-line game | |
KR20120081360A (en) | Method for game client authentication using random code | |
KR101366544B1 (en) | Method and apparatus for detecting dll rootkit for hacking | |
KR100906850B1 (en) | A method to confirm the normal use of a program in terms of communication between a client computer and a server computer | |
KR20120039108A (en) | Method and system for bad user monitoring of on-line game system | |
CN113778456A (en) | Account security monitoring method and device, storage medium and electronic equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |