KR101216485B1 - Detecting method of gamehack dll - Google Patents

Detecting method of gamehack dll Download PDF

Info

Publication number
KR101216485B1
KR101216485B1 KR1020110015330A KR20110015330A KR101216485B1 KR 101216485 B1 KR101216485 B1 KR 101216485B1 KR 1020110015330 A KR1020110015330 A KR 1020110015330A KR 20110015330 A KR20110015330 A KR 20110015330A KR 101216485 B1 KR101216485 B1 KR 101216485B1
Authority
KR
South Korea
Prior art keywords
dynamic link
link library
game
dll
list
Prior art date
Application number
KR1020110015330A
Other languages
Korean (ko)
Other versions
KR20120096128A (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 KR1020110015330A priority Critical patent/KR101216485B1/en
Publication of KR20120096128A publication Critical patent/KR20120096128A/en
Application granted granted Critical
Publication of KR101216485B1 publication Critical patent/KR101216485B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2109Game systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

이 발명은 게임프로세스 내에 삽입되어 동작하는 게임핵 동적연결라이브러리를 검출하는 방법에 관한 것이다.
이 발명에 따른 게임핵 동적연결라이브러리 검출방법은, 보안프로세스는 게임프로세스에 삽입된 동적연결라이브러리 리스트와 상기 리스트에 포함된 각 동적연결라이브러리가 로드된 메모리 주소 정보를 추출하는 제1단계와, 상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 하나의 진단대상 동적연결라이브러리를 선정하는 제2단계와, 상기 보안프로세스는 상기 진단대상 동적연결라이브러리의 기계어코드를 읽고 어셈블링코드로 변환하는 제3단계와, 상기 보안프로세스는 상기 제3단계에서 변환된 어셈블링코드가 상기 게임프로세스 또는 상기 게임프로세스에 포함된 다른 동적연결라이브러리를 호출하는 명령 코드를 포함하면 상기 진단대상 동적연결라이브러리를 게임핵 동적연결라이브러리로 진단하는 제4단계를 포함한다.
The present invention relates to a method for detecting a game core dynamic link library inserted and operated in a game process.
In the method of detecting a game core dynamic link library according to the present invention, the security process includes a first step of extracting a dynamic link library list inserted in the game process and memory address information loaded with each dynamic link library included in the list; The security process includes a second step of selecting a diagnostic target dynamic link library of the dynamic link library list, the security process is a third step of reading the machine code of the diagnostic target dynamic link library and converting to an assembling code; If the assembling code converted in the third step includes a command code for calling the game process or another dynamic link library included in the game process, the security target dynamic link library is converted into a game core dynamic link library. And a fourth step of diagnosing.

Description

게임핵 동적연결라이브러리 검출방법 {DETECTING METHOD OF GAMEHACK DLL}How to detect game core dynamic link library {DETECTING METHOD OF GAMEHACK DLL}

이 발명은 게임핵 검출방법에 관한 것으로서, 보다 상세하게는 게임프로세스 내에 삽입되어 동작하는 게임핵 동적연결라이브러리를 검출하는 방법에 관한 것이다.The present invention relates to a method for detecting a game hack, and more particularly, to a method for detecting a game hack dynamic link library inserted and operated in a game process.

초고속인터넷이 널리 보급되면서 온라인 게임인구가 급속도로 증가하고 수많은 온라인 게임들이 개발되었지만 게임 보안에 대한 인식과 개념은 아직 미흡한 상태이다. 컴퓨터에서 동작하는 악성 프로그램을 핵 또는 해킹프로그램이라고 하며, 특히 게임에서의 핵 또는 해킹프로그램을 게임핵이라고 한다.With the widespread use of high speed internet, the online game population has increased rapidly and numerous online games have been developed. However, the concept and concept of game security is still insufficient. Malicious programs that run on computers are called hacks or hacking programs, and in particular, hacks or hacking programs in games are called game hacks.

게임핵은 게임의 메모리를 조작하여 능력치나 체력 등과 같은 특정 데이터를 바꾸어주거나, 격투기 게임에서 타격 속도나 타격 횟수를 증가시키거나, 게임에 매크로 기능을 부여함으로써 게이머가 게임을 손쉽게 이길 수 있도록 해준다. 이 때문에 게이머들은 온라인 게임시 게임핵을 설치하고 싶어 한다. 그러나, 온라인 게임에서 게임핵을 사용하면, 사용자들간의 밸런스 붕괴, 게임서버로의 가중한 부하 등과 같은 문제를 일으킬 수 있다.Game hacks allow gamers to easily win games by manipulating the game's memory to change certain data, such as stats and stamina, increase the speed or number of hits in a martial arts game, or give macros to the game. This is why gamers want to install game hacks for online games. However, the use of game hacks in online games can lead to problems such as poor balance among users, heavy loads on game servers, and the like.

즉, 온라인 게임에서 일부 사용자들이 자신의 컴퓨터에 게임핵을 설치하여 비정상적인 방법으로 이득을 보면서 게임(play)을 하게 되면, 다른 사용자들과의 균형이 무너지게 되고, 심각한 경우에는 온라인 게임 전체의 밸런스가 깨지며 게임서버에 과부하가 발생하게 된다.In other words, in online games, when some users install game hacks on their computers and play games in an abnormal way, they lose their balance with other users. Is broken and the game server is overloaded.

따라서, 게임 공급자들은 게임프로그램과 함께 보안프로그램을 게임 클라이언트에 설치하도록 하고 있는 바, 게임프로세스가 구동되면 보안프로세스가 구동되고, 보안프로세스의 실행을 중단시키면 게임프로세스의 실행도 중단되며, 이 보안프로세스가 게임핵이 실행되는 것을 차단한다.Therefore, game providers are required to install a security program along with the game program in the game client. When the game process starts, the security process starts. If the execution of the security process stops, the game process stops. Blocks game hacks from running.

이 발명의 명세서에서 '게임핵', '프로그램', '파일' 등은 컴퓨터를 실행시키기 위해 차례대로 작성된 명령어 모음을 의미하며, 이 '프로그램' 등이 컴퓨터에서 론칭(launching)되어 메모리에 로드됨으로써, 컴퓨터 내에서 실행되는 상태를 '프로세스'라 한다. 즉, 게임프로그램은 게임프로세스로서 실행되고, 보안프로그램은 보안프로세스로서 실행되며, 게임핵은 게임핵프로세스로서 실행된다. 보안프로세스는 컴퓨터에서 실행되는 게임핵을 비롯한 각종 해킹프로세스의 실행을 차단한다.In the specification of the present invention, 'game hack', 'program', 'file', etc. refer to a set of instructions written in order to execute a computer, and the 'program' is launched from a computer and loaded into a memory. In other words, a state running in a computer is called a process. That is, the game program is executed as a game process, the security program is executed as a security process, and the game hack is executed as a game hack process. The security process blocks the execution of various hacking processes including game hacks running on the computer.

통상적으로 임의의 프로세스가 실행되면 그 프로세스에 삽입된 동적연결라이브러리(DLL : Dynamic Linking Library) 파일들을 관리하는 연결구조체가 생성되는데, 이 연결구조체를 확인하면 해당 프로세스에 삽입된 DLL 리스트와 이 DLL 리스트에 포함된 각 DLL이 로드된 메모리 주소 정보를 확인할 수 있다. 통상적으로 프로세스에 삽입된 DLL에 관한 정보는 FindProcess 또는 OpenProcess 명령어를 이용하여 얻어진다.In general, when an arbitrary process is executed, a linking structure is created to manage dynamic linking library (DLL) files inserted into the process. When checking the linking structure, the list of DLLs inserted into the process and the list of DLLs You can check the loaded memory address of each DLL included in. Typically, information about a DLL inserted into a process is obtained using the FindProcess or OpenProcess command.

이와 마찬가지로 게임프로세스가 실행되면, 게임프로세스에 삽입된 DLL 파일들을 관리하는 연결구조체(이하, 게임 연결구조체라 함)가 생성된다. 이 게임 연결구조체에는 게임프로세스에 삽입된 DLL 리스트와, 이 DLL 리스트에 포함된 각 DLL이 로드된 메모리 주소 정보가 포함된다.Similarly, when the game process is executed, a linkage structure (hereinafter referred to as a game linkage structure) that manages DLL files inserted into the game process is created. This game linkage structure contains a list of DLLs inserted into the game process and the memory address information loaded for each DLL included in the DLL list.

게임핵의 종류에는, 독립적으로 별도의 프로세스를 실행하여 게임프로세스를 후킹하고 동작하는 외부 동작 형태의 게임핵과, 게임프로세스에 DLL 파일 형태로서 삽입(injection)되어 게임프로세스 내부에서 동작하는 게임핵 DLL이 있다.Types of game hacks include a game hack in the form of an external operation that independently executes a separate process to hook and operate the game process, and a game hack DLL that is injected into the game process as a DLL file and operates inside the game process. have.

보안프로세스가 게임프로세스 내부 또는 외부에서 동작하는 게임핵을 진단하는 일반적인 방법으로서, 기검출된 게임핵의 패턴을 추출하여 데이터베이스에 저장해 놓고, 보안프로세스가 컴퓨터에 실행중인 프로세스들에 대해 데이터베이스에 저장된 게임핵 패턴과 비교하여 게임핵을 검출한다.As a general method for diagnosing game hacks that run inside or outside the game process, the security process extracts and stores the pattern of the detected game hacks in the database, and the game stored in the database for processes running on the computer. Detects game hacks compared to hack patterns.

이러한 일반적인 게임핵 진단방법은 게임핵의 종류가 많아짐에 따라 데이터베이스에 저장할 패턴이 증가함으로써 더 많은 용량의 데이터베이스가 필요해지고 게임핵 진단 및 검출시간이 길어지는 문제점이 있다. 또한, 패턴이 일치하는 지 여부에 따라 게임핵 여부를 진단하기 때문에 변종되거나 알려지지 않은 미지의 게임핵은 검출할 수 없는 문제점이 있다.
In this general game nucleus diagnosis method, as the number of game nuclei increases, the pattern to be stored in the database increases, so that a larger capacity database is required and the game nucleus diagnosis and detection time becomes longer. In addition, since the game nucleus is diagnosed according to whether or not the pattern matches, there is a problem in that unknown or unknown game nuclei are not detected.

상술한 종래기술의 문제점을 해결하기 위하여 안출된 이 발명의 목적은, 게임프로세스에 삽입되어 동작하는 게임핵 DLL의 특성을 이용하여 보다 용이하고 정확하게 게임핵 DLL을 검출하는 방법을 제공하기 위한 것이다.
Disclosure of Invention The object of the present invention devised to solve the above-mentioned problems of the prior art is to provide a method for detecting a game nucleus DLL more easily and accurately by using the characteristics of a game nucleus DLL inserted and operated in a game process.

상술한 목적을 달성하기 위한 이 발명의 한 실시예에 따른 게임핵 동적연결라이브러리 검출방법은, 보안프로세스는 게임프로세스에 삽입된 동적연결라이브러리 리스트와 상기 리스트에 포함된 각 동적연결라이브러리가 로드된 메모리 주소 정보를 추출하는 제1단계와,Game nucleus dynamic link library detection method according to an embodiment of the present invention for achieving the above object, the security process is a dynamic link library list inserted into the game process and each dynamic link library included in the list is loaded memory A first step of extracting address information;

상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 하나의 진단대상 동적연결라이브러리를 선정하는 제2단계와,The security process includes a second step of selecting a diagnostic target dynamic link library of the dynamic link library list;

상기 보안프로세스는 상기 진단대상 동적연결라이브러리의 기계어코드를 읽고 어셈블링코드로 변환하는 제3단계와,The security process is a third step of reading the machine code of the dynamic link library to be diagnosed and converted to assembling code;

상기 보안프로세스는 상기 제3단계에서 변환된 어셈블링코드가 상기 게임프로세스 또는 상기 게임프로세스에 포함된 다른 동적연결라이브러리를 호출하는 명령 코드를 포함하면 상기 진단대상 동적연결라이브러리를 게임핵 동적연결라이브러리로 진단하는 제4단계를 포함한 것을 특징으로 한다.
If the assembling code converted in the third step includes a command code for calling the game process or another dynamic link library included in the game process, the security target dynamic link library is converted into a game core dynamic link library. And a fourth step of diagnosing.

이 발명의 다른 실시예에 따른 게임핵 동적연결라이브러리 검출방법은, 보안프로세스는 게임프로세스에 삽입된 동적연결라이브러리 리스트와 상기 리스트에 포함된 각 동적연결라이브러리가 로드된 메모리 주소 정보를 추출하는 제1단계와,According to another aspect of the present invention, there is provided a game core dynamic link library detection method, wherein a security process includes: a first list of extracting a dynamic link library list inserted in a game process and memory address information loaded with each dynamic link library included in the list; Steps,

상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 하나의 진단대상 동적연결라이브러리를 선정하는 제2단계와,The security process includes a second step of selecting a diagnostic target dynamic link library of the dynamic link library list;

상기 보안프로세스는 상기 진단대상 동적연결라이브러리의 기계어코드를 읽고 어셈블링코드로 변환하는 제3단계와,The security process is a third step of reading the machine code of the dynamic link library to be diagnosed and converted to assembling code;

상기 보안프로세스는 상기 제3단계에서 변환된 어셈블링코드가 상기 게임프로세스 또는 상기 게임프로세스에 포함된 다른 동적연결라이브러리로 이동하는 명령 코드를 포함하면 상기 진단대상 동적연결라이브러리를 게임핵 동적연결라이브러리로 진단하는 제4단계를 포함한 것을 특징으로 한다.
When the assembling code converted in the third step includes an instruction code for moving to the game process or another dynamic link library included in the game process, the security target library is transferred to the game core dynamic link library. And a fourth step of diagnosing.

이상과 같이 이 발명에 따르면 게임프로세스에 삽입된 DLL들 중 게임프로세스를 호출(CALL)하거나 게임프로세스로 이동(JUMP)하는 명령코드를 포함한 DLL을 게임핵 DLL로 검출하기 때문에, 보다 정확하고 신속하게 게임핵을 검출할 수 있을 뿐만 아니라 패턴이 알려지지 않은 미지의 게임핵 DLL도 검출할 수 있는 효과가 있다.
As described above, according to the present invention, since the DLL including the command code for calling the game process (CALL) or moving to the game process (JUMP) among the DLLs inserted in the game process is detected as the game nucleus DLL, it is more accurate and faster. Not only can it detect game hacks, but it can also detect unknown game hack DLLs whose patterns are unknown.

도 1은 이 발명에 따른 게임핵 동적연결라이브러리 검출방법이 적용된 컴퓨터시스템의 기능 블록도이다.
도 2는 이 발명에 따른 게임핵 동적연결라이브러리 검출방법을 도시한 동작 흐름도이다.
1 is a functional block diagram of a computer system to which a method for detecting a game core dynamic link library according to the present invention is applied.
2 is a flowchart illustrating a method for detecting a game core dynamic link library according to the present invention.

이하, 첨부된 도면을 참조하며 이 발명의 한 실시예에 따른 게임핵 동적연결라이브러리 검출방법을 보다 상세하게 설명한다.Hereinafter, a method for detecting a game core dynamic link library according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

이 발명에 따른 게임핵 동적연결라이브러리 검출방법은 보안프로그램의 일부로서 제공된다. 이 게임핵 동적연결라이브러리 검출방법을 실행하는 보안프로그램은 컴퓨터시스템 내에서 보안프로세스를 생성하여 실행되어, 이 보안프로세스의 실행코드와 데이터가 메모리에 로드된다. CPU는 메모리에 로드된 보안프로세스의 실행코드를 순차적으로 정보처리함으로써, 이 발명에 따른 게임핵 동적연결라이브러리 검출 기능을 수행한다.The game core dynamic link library detection method according to the present invention is provided as part of a security program. A security program that executes this game hack dynamic link library detection method generates and executes a security process in a computer system, and the execution code and data of the security process are loaded into memory. The CPU performs the game core dynamic link library detection function according to the present invention by sequentially processing the execution code of the security process loaded in the memory.

도 1은 이 발명에 따른 게임핵 동적연결라이브러리 검출방법이 적용된 컴퓨터시스템의 기능 블록도이다.1 is a functional block diagram of a computer system to which a method for detecting a game core dynamic link library according to the present invention is applied.

일반적으로 컴퓨터시스템에 실행된 게임프로세스(100)에는 다수의 동적연결라이브러리들(DLL)(111, 112)이 삽입되고, 게임 연결구조체(113)는 게임프로세스(100)에 삽입된 다수의 DLL들(111, 112)에 대한 리스트를 저장하고 관리한다.In general, a plurality of dynamic link libraries (DLLs) 111 and 112 are inserted into a game process 100 executed in a computer system, and the game link structure 113 includes a plurality of DLLs inserted into a game process 100. Store and manage lists for (111, 112).

이 발명에 따른 게임핵 동적연결라이브러리 검출방법을 실행하는 보안프로세스(120)는 게임 연결구조체(113)로부터 게임프로세스(110)에 삽입된 DLL 리스트와 각 DLL들이 로드된 메모리 주소 정보를 추출하는 DLL 정보 추출부(121)와, 상기 DLL들의 기계어코드를 역어셈블링하는 역어셈블링부(122)와, 상기 DLL 정보 추출부(121)에서 추출된 임의의 DLL의 메모리 주소로부터 기계어코드를 읽어서 역어셈블링부(122)를 통해 어셈블링코드로 변환시키고 상기 어셈블링코드를 분석하여 게임핵 DLL 여부를 진단하는 게임핵 DLL 진단부(123)를 포함한다.The security process 120 for executing the game core dynamic link library detection method according to the present invention is a DLL for extracting the DLL list inserted in the game process 110 and the memory address information of each DLL loaded from the game connection structure 113 Reads the machine code from the information extracting unit 121, the disassembly unit 122 for disassembling the machine codes of the DLLs, and the memory address of any DLL extracted by the DLL information extracting unit 121 The game unit DLL diagnosis unit 123 converts the assembly code through the ring unit 122 and analyzes the assembly code to diagnose whether the game core DLL is included.

또한, 이 발명에 따른 보안프로세스(120)는 게임프로세스(110)에서 허용하는 DLL 리스트를 저장하는 화이트리스트저장부(124)를 더 포함하고, 게임핵 DLL 진단부(123)는 상기 DLL 정보 추출부(121)에서 추출된 DLL들 중 상기 화이트리스트저장부(124)에 포함되지 않은 DLL들에 대해 게임핵 DLL 여부를 진단한다. 여기서, 화이트리스트저장부(124)는 게임프로세스에서 허용하는 DLL의 고유값을 저장하며, 이 고유값은 해쉬값 또는 PE 헤더 정보일 수 있다.In addition, the security process 120 according to the present invention further includes a white list storage unit 124 for storing the list of DLLs allowed by the game process 110, the game nucleus DLL diagnostic unit 123 is the DLL information extraction Among DLLs extracted by the unit 121, DLLs not included in the white list storage unit 124 are diagnosed as game nucleus DLLs. Here, the white list storage unit 124 stores a unique value of the DLL allowed by the game process, and this unique value may be a hash value or PE header information.

또한, 게임핵 DLL 진단부(123)는 상기 DLL 정보 추출부(121)에서 추출된 DLL들 중 디지털 서명된 DLL을 제외하고 나머지 DLL들에 대해 게임핵 DLL 여부를 진단한다. 또한, 게임핵 DLL 진단부(123)는 상기 DLL 정보 추출부(121)에서 추출된 DLL들 중 마이크로소프트사(MicroSoft Corporation) 인증정보를 포함한 DLL을 제외하고 나머지 DLL들에 대해 게임핵 DLL 여부를 진단한다.In addition, the game nucleus DLL diagnosis unit 123 diagnoses the game nucleus DLL with respect to the remaining DLLs except for the digitally signed DLL among the DLLs extracted by the DLL information extraction unit 121. In addition, the game nucleus DLL diagnosis unit 123 checks whether the game nucleus DLL is the other DLLs except for the DLL including the Microsoft Corporation (MicroSoft Corporation) authentication information among the DLLs extracted by the DLL information extraction unit 121. Diagnose

게임핵 DLL 진단부(123)는 DLL의 어셈블링코드를 분석하여 해당 DLL이 게임프로세스를 호출(CALL)하거나 게임프로세스로 이동(JUMP)하는 명령 코드를 포함하면, 그 DLL을 게임핵 DLL로 진단한다. 이를 상세하게 설명하면, DLL의 기계어코드를 어셈블링코드로 변환하면 호출(CALL) 명령 코드는 "E8"이고, 그 다음 8자리가 호출하고자 하는 주소값이다. 따라서, 호출(CALL) 명령 코드 "E8" 후 8자리의 주소값이 게임프로세스가 로드된 메모리 공간의 주소이면 게임핵 DLL 진단부(123)는 이 DLL이 게임프로세스를 호출하는 것으로 인식하고 해당 DLL을 게임핵 DLL로 진단한다.The game hack DLL diagnosis unit 123 analyzes the assembly code of the DLL, and if the DLL includes a command code for calling (CALL) or moving to the game process (JUMP), the DLL is diagnosed as a game hack DLL. do. In detail, when the machine code of the DLL is converted to the assembling code, the CALL instruction code is "E8", and the next 8 digits are the address values to call. Therefore, if the 8-digit address value after the CALL command code "E8" is the address of the memory space in which the game process is loaded, the game nucleus DLL diagnosis unit 123 recognizes that the DLL calls the game process and the corresponding DLL. Is diagnosed as a game hack DLL.

한편, 이동(JUMP) 명령을 나타내는 어셈블링코드는 "E9"이고, 그 다음 8자리가 이동하고자 하는 주소값과 현재 주소값과의 차이값이다. 따라서, 이동(JUMP) 명령 코드 "E9" 후 8자리의 주소값과 현재 이 이동 명령 코드의 주소값을 합하면 이동(JUMP)하고자 하는 주소값이 되는데, 이 이동하고자 하는 주소값이 게임프로세스가 로드된 메모리 공간의 주소이면 게임핵 DLL 진단부(123)는 이 DLL을 게임핵 DLL로 진단한다.On the other hand, the assembling code indicating the JUMP instruction is " E9 ", and the next 8 digits are the difference value between the address value to be moved and the current address value. Therefore, the sum of the 8-digit address value after the jump command code “E9” and the current address value of the move command code becomes the address value to be jumped, and the address value to be moved is loaded by the game process. If it is the address of the memory space, the game hack DLL diagnostic unit 123 diagnoses the DLL as a game hack DLL.

또한, 이 발명을 확장하면, 게임프로세스에 삽입된 한 DLL이 상기 게임프로세스에 삽입된 다른 DLL을 호출하거나, 상기 게임프로세스에 삽입된 다른 DLL로 이동하면 상기 DLL을 게임핵 DLL로 진단할 수도 있다.In addition, if the present invention is extended, one DLL inserted into the game process calls another DLL inserted into the game process or moves to another DLL inserted into the game process to diagnose the DLL as a game core DLL. .

도 2는 이 발명에 따른 게임핵 동적연결라이브러리 검출방법을 도시한 동작 흐름도이다.2 is a flowchart illustrating a method for detecting a game core dynamic link library according to the present invention.

보안프로세스는 게임프로세스에 삽입된 DLL 리스트와 각 DLL이 로드된 메모리 주소 정보를 추출한다(S31). 앞서 설명한 바와 같이 보안프로세스는 게임 연결구조체를 통해 게임프로세스에 삽입된 DLL 리스트와 각 DLL의 메모리 주소 정보를 얻을 수 있다.The security process extracts a list of DLLs inserted into the game process and memory address information loaded with each DLL (S31). As described above, the security process can obtain a list of DLLs inserted into the game process and memory address information of each DLL through the game connection structure.

다음, 보안프로세스는 DLL 리스트 중 하나의 진단대상 DLL을 선정한다(S32). 이때, DLL 리스트 중 상기 게임프로세스에서 허용하는 DLL, 디지털 서명된 DLL, 마이크로소프트사 인증정보를 포함한 DLL 등은 진단대상 DLL에서 제외시킨다.Next, the security process selects one DLL to be diagnosed from the DLL list (S32). In this case, the DLL, the digitally signed DLL, and the DLL including Microsoft's authentication information, which are permitted by the game process, are excluded from the DLL to be diagnosed.

다음, 보안프로세스는 단계 S32에서 선정된 진단대상 DLL의 메모리 주소 정보를 이용하여 상기 진단대상 DLL의 기계어코드를 읽고(S33) 그 기계어코드를 어셈블링코드로 변환한다(S34).Next, the security process reads the machine code of the diagnosis target DLL using the memory address information of the diagnosis target DLL selected in step S32 (S33) and converts the machine code into an assembling code (S34).

상기 진단대상 DLL의 어셈블링코드가 호출(CALL) 명령 또는 이동(JUMP) 명령을 포함하면(S35), 그 호출(CALL) 대상 주소값 또는 이동(JUMP) 대상 주소값을 계산한다(S36).If the assembling code of the diagnosis target DLL includes a call instruction or a jump instruction (S35), the call target address value or the jump target address value is calculated (S36).

보안프로세스는 상기 호출 대상 주소값 또는 이동 대상 주소값이 게임프로세스의 메모리 공간 내이면(S37), 상기 진단대상 DLL을 게임핵 DLL로 진단한다(S38).If the call target address value or the move target address value is in the memory space of the game process (S37), the diagnosis process DLL diagnoses the diagnosis target DLL as a game hack DLL (S38).

상기 진단대상 DLL의 모든 기계어코드를 읽을 때까지 단계 S33 내지 단계 39를 반복수행하고, 모든 진단대상 DLL에 대한 진단을 완료할 때까지 단계 S32 내지 단계 S40을 반복수행한다.Steps S33 to 39 are repeated until all the machine codes of the DLLs to be diagnosed are read, and steps S32 to S40 are repeatedly performed until the diagnosis on all the DLLs to be diagnosed is completed.

단계 S37에서 상기 호출 대상 주소값 또는 이동 대상 주소값이 상기 게임프로세스에 삽입된 다른 DLL의 메모리 공간 내이더라도 상기 진단대상 DLL을 게임핵 DLL로 진단할 수 있다.In step S37, the diagnosis target DLL can be diagnosed as a game nucleus DLL even if the call target address value or the move target address value is in the memory space of another DLL inserted into the game process.

이 명세서에서는 게임프로세스에 DLL 파일 형태로 삽입된 게임핵 DLL을 검출하는 기술에 대해 상세하였지만, 이 발명은 이에 한정되지 아니하며 게임핵 DLL을 구성하는 스레드(thread) 단위의 게임핵 검출에 적용할 수도 있다.
In this specification, a technology for detecting a game hack DLL inserted into a game process in the form of a DLL file has been described in detail. However, the present invention is not limited thereto and may be applied to detecting a game hack in a thread unit constituting the game hack DLL. have.

110 : 게임프로세스 111, 112 : 동적연결라이브러리
113 : 게임 연결구조체 120 : 보안프로세스
121 : DLL 정보 추출부 122 : 역어셈블링부
123 : 게임핵 DLL 진단부 124 : 화이트 리스트 저장부
110: game process 111, 112: dynamic link library
113: game connection structure 120: security process
121: DLL information extraction unit 122: de-assembly unit
123: game nucleus DLL diagnosis unit 124: white list storage unit

Claims (6)

보안프로세스는 게임프로세스에 삽입된 동적연결라이브러리 리스트와 상기 리스트에 포함된 각 동적연결라이브러리가 로드된 메모리 주소 정보를 추출하는 제1단계와,
상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 하나의 진단대상 동적연결라이브러리를 선정하는 제2단계와,
상기 보안프로세스는 상기 진단대상 동적연결라이브러리의 기계어코드를 읽고 어셈블링코드로 변환하는 제3단계와,
상기 보안프로세스는 상기 제3단계에서 변환된 어셈블링코드가 상기 게임프로세스 또는 상기 게임프로세스에 포함된 다른 동적연결라이브러리를 호출하는 명령 코드를 포함하면 상기 진단대상 동적연결라이브러리를 게임핵 동적연결라이브러리로 진단하는 제4단계를 포함한 것을 특징으로 하는 게임핵 동적연결라이브러리 검출방법.
The security process includes a first step of extracting a dynamic link library list inserted into the game process and memory address information loaded with each dynamic link library included in the list;
The security process includes a second step of selecting a diagnostic target dynamic link library of the dynamic link library list;
The security process is a third step of reading the machine code of the dynamic link library to be diagnosed and converted to assembling code;
If the assembling code converted in the third step includes a command code for calling the game process or another dynamic link library included in the game process, the security target dynamic link library is converted into a game core dynamic link library. Game core dynamic link library detection method comprising the step of diagnosing.
보안프로세스는 게임프로세스에 삽입된 동적연결라이브러리 리스트와 상기 리스트에 포함된 각 동적연결라이브러리가 로드된 메모리 주소 정보를 추출하는 제1단계와,
상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 하나의 진단대상 동적연결라이브러리를 선정하는 제2단계와,
상기 보안프로세스는 상기 진단대상 동적연결라이브러리의 기계어코드를 읽고 어셈블링코드로 변환하는 제3단계와,
상기 보안프로세스는 상기 제3단계에서 변환된 어셈블링코드가 상기 게임프로세스 또는 상기 게임프로세스에 포함된 다른 동적연결라이브러리로 이동하는 명령 코드를 포함하면 상기 진단대상 동적연결라이브러리를 게임핵 동적연결라이브러리로 진단하는 제4단계를 포함한 것을 특징으로 하는 게임핵 동적연결라이브러리 검출방법.
The security process includes a first step of extracting a dynamic link library list inserted into the game process and memory address information loaded with each dynamic link library included in the list;
The security process includes a second step of selecting a diagnostic target dynamic link library of the dynamic link library list;
The security process is a third step of reading the machine code of the dynamic link library to be diagnosed and converted to assembling code;
When the assembling code converted in the third step includes an instruction code for moving to the game process or another dynamic link library included in the game process, the security target library is transferred to the game core dynamic link library. Game core dynamic link library detection method comprising the step of diagnosing.
제 1 항 또는 제 2 항에 있어서, 상기 제 2 단계에서,
상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 상기 게임프로세스에서 허용하는 동적연결라이브러리를 상기 진단대상 동적연결라이브러리에서 제외시키는 것을 특징으로 하는 게임핵 동적연결라이브러리 검출방법.
The method of claim 1 or 2, wherein in the second step,
And the security process excludes from the dynamic link library to be diagnosed the dynamic link library allowed by the game process in the dynamic link library list.
제 3 항에 있어서, 상기 보안프로세스는 상기 게임프로세스에서 허용하는 동적연결라이브러리의 고유값을 화이트리스트에 미리 저장하는 것을 특징으로 하는 게임핵 동적연결라이브러리 검출방법.4. The method according to claim 3, wherein the security process stores in advance a unique value of a dynamic link library allowed by the game process in a white list. 제 1 항 또는 제 2 항에 있어서, 상기 제 2 단계에서,
상기 보안프로세스는 상기 동적연결라이브러리 리스트 중 디지털 서명된 동적연결라이브러리를 상기 진단대상 동적연결라이브러리에서 제외시키는 것을 특징으로 하는 게임핵 동적연결라이브러리 검출방법.
The method of claim 1 or 2, wherein in the second step,
And the security process excludes the digitally signed dynamic link library from the dynamic link library list from the diagnostic target dynamic link library.
제 1 항 또는 제 2 항에 있어서, 상기 제 2 단계에서,
상기 보안프로세는 상기 동적연결라이브러리 리스트 중 마이크로소프트사 인증정보를 포함한 동적연결라이브러리를 상기 진단대상 동적연결라이브러리에서 제외시키는 것을 특징으로 하는 게임핵 동적연결라이브러리 검출방법.

The method of claim 1 or 2, wherein in the second step,
The security process is a game core dynamic link library detection method, characterized in that the dynamic link library including Microsoft authentication information in the dynamic link library list to exclude from the diagnostic dynamic link library.

KR1020110015330A 2011-02-22 2011-02-22 Detecting method of gamehack dll KR101216485B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110015330A KR101216485B1 (en) 2011-02-22 2011-02-22 Detecting method of gamehack dll

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110015330A KR101216485B1 (en) 2011-02-22 2011-02-22 Detecting method of gamehack dll

Publications (2)

Publication Number Publication Date
KR20120096128A KR20120096128A (en) 2012-08-30
KR101216485B1 true KR101216485B1 (en) 2012-12-31

Family

ID=46886200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110015330A KR101216485B1 (en) 2011-02-22 2011-02-22 Detecting method of gamehack dll

Country Status (1)

Country Link
KR (1) KR101216485B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101308112B1 (en) * 2012-01-02 2013-09-12 (주)네오위즈게임즈 Preventing Method of Memory Fabrication and Client Apparatus

Also Published As

Publication number Publication date
KR20120096128A (en) 2012-08-30

Similar Documents

Publication Publication Date Title
CN109375945B (en) Firmware version detection method and vulnerability repair rate evaluation method for Internet of things equipment
CA3152837A1 (en) Simulator detection method and system
Dureuil et al. From code review to fault injection attacks: Filling the gap using fault model inference
CN104751048B (en) A kind of dynamic link library integrity measurement method under pre-linking mechanism
CN106371940A (en) Solution method and device for program crash
CN106326737B (en) System and method for detecting the harmful file that can be executed on virtual stack machine
CN102722672B (en) A kind of method and device detecting running environment authenticity
JP2008129714A (en) Abnormality detection method, abnormality detection device, abnormality detection program, and learning model generation method
CN106789837B (en) Network anomalous behaviors detection method and detection device
CN108319850B (en) Sandbox detection method, sandbox system and sandbox equipment
WO2022044664A1 (en) Boot device and method for booting a computer system
CN111523097A (en) APP brush user identification method and device based on android system and storage medium
Schwartz et al. A generic technique for automatically finding defense-aware code reuse attacks
KR101216485B1 (en) Detecting method of gamehack dll
KR102157208B1 (en) Smart contract excution apparatus and vulnerability detection method
KR20120014673A (en) Method for dectecting falsification of process by inserting disguised dll
US20130227642A1 (en) Apparatus and method for detecting illegal user
US9842018B2 (en) Method of verifying integrity of program using hash
CN109426546B (en) Application starting method and device, computer storage medium and equipment
US9063723B2 (en) Function-based software comparison method
KR100457405B1 (en) Method of detecting whether speed hack is in use
KR101042857B1 (en) method for blocking excution of hacking process
US8388441B2 (en) Method for displaying information about use of hack tool in online game
KR101252185B1 (en) method for blocking hack using thread check
KR20140089044A (en) Method of detecting software similarity using feature information of executable files and apparatus therefor

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: 20181217

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 8