KR101252185B1 - method for blocking hack using thread check - Google Patents

method for blocking hack using thread check Download PDF

Info

Publication number
KR101252185B1
KR101252185B1 KR1020100077017A KR20100077017A KR101252185B1 KR 101252185 B1 KR101252185 B1 KR 101252185B1 KR 1020100077017 A KR1020100077017 A KR 1020100077017A KR 20100077017 A KR20100077017 A KR 20100077017A KR 101252185 B1 KR101252185 B1 KR 101252185B1
Authority
KR
South Korea
Prior art keywords
thread
protected
game
threads
security
Prior art date
Application number
KR1020100077017A
Other languages
Korean (ko)
Other versions
KR20120014816A (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 KR1020100077017A priority Critical patent/KR101252185B1/en
Publication of KR20120014816A publication Critical patent/KR20120014816A/en
Application granted granted Critical
Publication of KR101252185B1 publication Critical patent/KR101252185B1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

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

Abstract

이 발명은 게임프로세스에 로드된 쓰레드를 검사하여 불법으로 삽입된 쓰레드를 검출함으로써 핵을 차단하는 방법에 관한 것이다.
이 발명에 따른 핵 차단방법은, 보안프로세스가 보호대상프로세스의 PID를 읽는 제1단계와, 상기 보안프로세스가 상기 보호대상프로세의 PID를 이용하여 상기 보호대상프로세스에 삽입된 쓰레드 목록 주소를 읽는 제2단계와, 상기 보안프로세스가 상기 보호대상프로세스의 쓰레드 목록 주소를 이용하여 상기 보호대상프로세스에 삽입된 쓰레드들의 시작주소들을 읽는 제3단계와, 상기 보안프로세스가 상기 보호대상프로세스의 쓰레드들의 시작주소들을 이용하여 상기 보호대상프로세스의 쓰레드들을 기저장된 허용 쓰레드 목록에서 탐색하는 제4단계와, 상기 보안프로세스가 상기 보호대상프로세스들의 쓰레드들 중 상기 허용 쓰레드 목록에 포함되지 않은 쓰레드를 핵 쓰레드로 판단하고, 상기 핵 쓰레드의 실행을 차단하는 제5단계를 포함한다.
The present invention relates to a method of blocking a nucleus by inspecting a thread loaded in a game process and detecting an illegally inserted thread.
In the nuclear blocking method according to the present invention, a first step in which a security process reads a PID of a protected process, and the security process reads a thread list address inserted into the protected process using the PID of the protected process. A second step, wherein the secure process reads start addresses of threads inserted into the protected process using the thread list address of the protected process, and the secure process starts the threads of the protected process. A fourth step of searching for the threads of the protected process in the pre-stored allowed thread list by using addresses; and determining that the security process is a nuclear thread among the threads of the protected processes that are not included in the allowed thread list. And a fifth step of blocking execution of the nuclear thread.

Description

쓰레드 체크를 이용한 핵 차단방법 {method for blocking hack using thread check}Nuclear blocking method using thread check {method for blocking hack using thread check}

이 발명은 쓰레드 체크를 이용한 핵 차단방법에 관한 것으로서, 보다 상세하게는 게임프로세스에 로드된 쓰레드를 검사하여 불법으로 삽입된 쓰레드를 검출함으로써 핵을 차단하는 방법에 관한 것이다.The present invention relates to a nuclear blocking method using a thread check, and more particularly, to a method for blocking nuclear by inspecting a thread loaded in a game process and detecting an illegally inserted thread.

초고속인터넷이 널리 보급되면서 온라인 게임인구가 급속도로 증가하고 수많은 온라인 게임들이 개발되었지만 아직까지 게임 보안에 대한 인식과 개념이 매우 미약하다. 컴퓨터에서의 불법 프로그램을 핵 또는 해킹프로그램이라고 하며, 게임에서의 핵 또는 해킹프로그램을 게임 핵이라고 하는데, 이 게임 핵은 특정 게임프로세스의 파일이나 메모리 등을 조작하는 프로그램을 가리킨다.The widespread use of high-speed Internet has led to the rapid growth of the online game population and the development of numerous online games. However, the concept and concept of game security is still very weak. Illegal programs in computers are called hacks or hacking programs, and hacks or hacking programs in games are called game hacks. These game hacks refer to programs that manipulate files, memory, etc. of a particular game process.

게임 핵은 게임의 메모리를 조작하여 능력치나 체력 등과 같은 특정 데이터를 바꾸어 주거나, 격투기 게임의 경우 타격 속도나 타격 횟수를 증가시키거나, 매크로 기능을 부여함으로써, 게이머가 게임을 손쉽게 이길 수 있도록 해준다. 이 때문에 게이머들은 온라인 게임시 게임 핵을 설치하고 싶어한다. 그러나, 온라인 게임에서의 게임 핵 사용은 사용자들간의 밸런스 붕괴, 게임서버로의 가중한 부하 등과 같은 문제를 일으킬 수 있다. 즉, 온라인 게임에서 일부 사용자들이 비정상적인 방법으로 이득을 보면서 게임(play)을 하게 되면, 다른 사용자들과의 균형이 무너지게 되고, 심각한 경우에는 온라인 게임 전체의 밸런스가 깨지며 게임서버에 과부하가 발생하게 된다.Game hacks allow gamers to easily win games by manipulating the game's memory to change certain data, such as stats and stamina, increasing the speed or number of blows in martial arts games, or granting macro functions. This is why gamers want to install game hacks for online games. However, the use of game hacks in online games can cause problems such as a balance breakdown among users, a heavy load on the game server, and the like. In other words, if some users play games while benefiting in an abnormal way, the balance with other users is broken, and in serious cases, the overall balance of the online game is broken and the game server is overloaded. Done.

따라서, 게임 공급자들은 게임과 함께 보안프로그램을 게이머 클라이언트시스템에 설치하도록 하고 있는 바, 사용자가 게임프로그램을 실행시키면 게임프로세스가 실행되고 보안프로세스도 게임과 함께 실행된다. 아울러, 게임이 실행되는 동안에 게이머가 보안프로세스를 중단시키면 게임프로세스도 함께 중단된다. 즉, 온라인 게임시 게임프로세스와 함께 보안프로세스가 실행되어, 그 실행된 보안프로세스가 게임 핵의 실행을 차단한다.Therefore, game providers have installed a security program along with the game on the gamer client system. When the user executes the game program, the game process is executed and the security process is executed with the game. In addition, if the gamers interrupt the security process while the game is running, the game process is also stopped. That is, the security process is executed together with the game process during the online game, and the executed security process blocks the execution of the game hack.

통상적으로 '프로그램' 또는 '파일'은 컴퓨터를 실행시키기 위해 차례대로 작성된 명령어 모음을 의미하며, '프로세스'라 함은 컴퓨터 내에서 실행중인 프로그램을 일컫는다. 즉, 게임프로그램은 게임프로세스로서 게이머 컴퓨터에서 실행되고, 보안프로그램은 보안프로세스로서 실행되며, 보안프로세스가 컴퓨터에서 실행되는 게임 핵을 검출하여 차단한다.Generally, a 'program' or a 'file' refers to a command set written in order to execute a computer, and a 'process' refers to a program running in the computer. That is, the game program is executed as a game process on the gamer computer, the security program is executed as the security process, and the security process detects and blocks the game hacks executed on the computer.

통상적으로 게임 핵을 검출하는 방법으로서, 패턴 매칭방법이 있다. 이는 핵이 가지고 있는 독특한 문자열(핵 패턴)을 수집하여 데이터베이스에 저장하고, 보안프로세스가 컴퓨터시스템에 실행중인 프로세스들에 대해 핵 패턴을 매칭하는 방법을 이용하여 게임 핵을 검출한다. 이러한 게임 핵 검출방법은 동일한 문자열 패턴 비교를 통해 게임 핵을 탐지하기 때문에, 핵 패턴 중 일부가 수정될 경우에는 해당 게임 핵을 탐지할 수 없는 문제점이 있다.Usually, as a method of detecting game nuclei, there is a pattern matching method. It collects unique strings (hack patterns) in hacks, stores them in a database, and detects game hacks using a method where the security process matches hack patterns against processes running on a computer system. Since the game nucleus detection method detects a game nucleus by comparing the same string pattern, there is a problem in that the game nucleus cannot be detected when some of the nucleus patterns are modified.

또 다른 게임 핵 검출방법으로서, 최근에는 게임 핵이 주로 사용하는 독특한 조합의 API 명령을 학습하여 그 API 명령을 기반으로 게임 핵 여부를 판단하는 방법이 있다. 그러나, 이러한 방법은 게임 핵과 유사한 API 명령을 주로 사용하는 보안프로세스도 게임 핵으로 오탐지하게 될 문제점이 있다.
As another method of detecting a game hack, recently, there is a method of determining a game hack based on the API command by learning a unique combination of API commands mainly used by game hacks. However, this method has a problem in that even a security process that mainly uses API commands similar to game hacks will be falsely detected as game hacks.

상술한 종래기술의 문제점을 해결하기 위하여 안출된 이 발명의 목적은 게임프로세스에 로드된 쓰레드를 실시간으로 체크하여 불법으로 삽입된 핵 쓰레드를 검출하여 차단함으로써 핵을 차단하는 방법을 제공하기 위한 것이다.
An object of the present invention devised to solve the above-mentioned problems of the prior art is to provide a method of blocking a nucleus by detecting and blocking a nuclear thread inserted illegally by checking a thread loaded in a game process in real time.

상술한 목적을 달성하기 위한 이 발명의 한 실시예에 따른 쓰레드 체크를 이용한 핵 차단방법은, 컴퓨터시스템에 실행되는 보안프로세스가 핵을 검출하여 차단하는 방법에 있어서,Nuclear blocking method using a thread check according to an embodiment of the present invention for achieving the above object, in the method that the security process running on the computer system detects and blocks the nucleus,

상기 보안프로세스가 보호대상프로세스의 PID를 읽는 제1단계와,A first step of the security process reading the PID of the process to be protected;

상기 보안프로세스가 상기 보호대상프로세의 PID를 이용하여 상기 보호대상프로세스에 삽입된 쓰레드 목록 주소를 읽는 제2단계와,A second step of the security process reading a thread list address inserted into the protected process using the PID of the protected process;

상기 보안프로세스가 상기 보호대상프로세스의 쓰레드 목록 주소를 이용하여 상기 보호대상프로세스에 삽입된 쓰레드들의 시작주소들을 읽는 제3단계와,A third step of the security process reading the starting addresses of the threads inserted into the protected process using the thread list address of the protected process;

상기 보안프로세스가 상기 보호대상프로세스의 쓰레드들의 시작주소들을 이용하여 상기 보호대상프로세스의 쓰레드들을 기저장된 허용 쓰레드 목록에서 탐색하는 제4단계와,A fourth step of the security process searching for the threads of the protected process in the pre-stored allowed thread list using the starting addresses of the threads of the protected process;

상기 보안프로세스가 상기 보호대상프로세스들의 쓰레드들 중 상기 허용 쓰레드 목록에 포함되지 않은 쓰레드를 핵 쓰레드로 판단하고, 상기 핵 쓰레드의 실행을 차단하는 제5단계를 포함한 것을 특징으로 한다.
And a fifth step in which the security process determines that a thread not included in the allowed thread list among the threads of the protected processes is a nuclear thread, and blocks execution of the nuclear thread.

이상과 같이 이 발명에 따르면 게임프로세스에 로드된 핵 쓰레드를 실시간으로 검출하여 차단할 수 있기 때문에 불법적인 핵 사용으로 인한 선의의 게이머들을 보호할 수 있는 잇점이 있다.
As described above, according to the present invention, since nuclear threads loaded in the game process can be detected and blocked in real time, there is an advantage of protecting in good faith gamers caused by illegal nuclear use.

도 1은 이 발명에 따른 보안프로세스를 포함한 컴퓨터시스템의 기능 블록도이다.
도 2는 이 발명에 따른 쓰레드 체크를 이용한 핵 차단방법을 도시한 동작 흐름도이다.
1 is a functional block diagram of a computer system including a security process according to the present invention.
2 is a flowchart illustrating a nuclear blocking method using a thread check according to the present invention.

이하, 첨부된 도면을 참조하여 이 발명의 한 실시예에 따른 쓰레드 체크를 이용한 핵 차단방법을 보다 상세하게 설명하면 다음과 같다.Hereinafter, a nuclear blocking method using a thread check according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

이 발명은 프로세스에 로드된 쓰레드를 체크하여 게임 핵을 검출하는데, 먼저 컴퓨터시스템에서 쓰레드에 대해 설명한다.The invention detects game hacks by checking the threads loaded in a process, which first describes the threads in a computer system.

게임프로세스, 보안프로세스 및 게임 핵 프로세스가 컴퓨터에서 실행됨에 있어서, 통상적으로 윈도우즈 운영체제(Windows? OS)는 프로세스가 실행될 때 필요한 다수의 동적연결라이브러리(DLL)를 기본적으로 제공하고 있으며, 윈도우 운영체제 하에서 구동되는 실행 프로세스들(게임프로세스, 보안프로세스, 게임 핵 프로세스 등)은 자신의 실행에 필요한 동적연결라이브러리(DLL)를 윈도우즈 커널 메모리에 로드한다.In As the game process, security processes and games nuclear processes are running on your computer, typically the Windows operating system (Windows? OS) is offering a number of dynamic link library (DLL) required when the process runs by default, drive under Windows operating systems Running processes (game processes, security processes, game hack processes, etc.) load the dynamic link libraries (DLLs) needed for their execution into the Windows kernel memory.

동적연결라이브러리(DLL)는 쓰레드(Thread) 단위로 실행된다. 즉, 이 쓰레드는 프로그램을 실행하는데 기본이 되는 최소 단위로서 모든 프로그램은 최소한 1개 이상의 쓰레드를 포함한다. 예컨대, 윈도우즈 운영체제에서 기본적으로 제공하는 실행프로그램 중 하나인 'notepad.exe'는 하나의 쓰레드로 이루어지지만, 좀 더 복잡한 실행프로그램 중 하나인 '그림판'은 3개의 쓰레드로 이루어진다. 이와 같이, 온라인 게임과 같이 아주 복잡한 실행프로그램은 더 많은 개수의 쓰레드로 이루어진다.Dynamic link libraries (DLLs) are executed in units of threads. That is, this thread is the basic minimum unit to run a program, and every program contains at least one thread. For example, 'notepad.exe', one of the executable programs provided by the Windows operating system, consists of one thread, but 'paint', one of the more complicated executable programs, consists of three threads. As such, very complex executables, such as online games, have a larger number of threads.

게임프로세스가 구동되는 동안 게임 핵 프로세스가 실행되면, 게임 핵 프로세스는 핵 기능을 수행하는 쓰레드(이하, 핵 쓰레드 함)를 게임프로세스에 삽입하여 게임프로세스가 게임을 진행하면서 그 핵 쓰레드를 구동하도록 한다.If the game hack process is executed while the game process is running, the game hack process inserts a thread that performs a nuclear function (hereinafter referred to as a hack thread) into the game process so that the game process runs the hack thread as the game progresses. .

이 발명은 게임프로세스에 로드된 핵 쓰레드를 실시간으로 검출하여 차단하는 방법을 제안한다.The present invention proposes a method for detecting and blocking a nuclear thread loaded in a game process in real time.

이 발명에 따른 핵 차단방법은 프로그램 형태로 제공된다. 이 발명의 핵 차단방법을 실행하는 보안프로그램은 컴퓨터시스템 내에서 보안프로세스를 생성하여 실행되며, 보안프로세스는 하나 이상의 보안쓰레드를 포함한다. 이 보안프로세스의 실행 코드와 데이터가 메모리에 로드된다.The nuclear screening method according to the present invention is provided in the form of a program. A security program that executes the nuclear blocking method of the present invention creates and executes a security process in a computer system, and the security process includes one or more security threads. Executable code and data of this security process are loaded into memory.

도 1은 이 발명에 따른 보안프로세스를 포함한 컴퓨터시스템의 기능 블록도이다. 컴퓨터시스템에 게임프로그램이 실행되면서 보안프로그램이 실행되고, 아울러 게임 핵이 실행된 경우를 예로서 설명한다.1 is a functional block diagram of a computer system including a security process according to the present invention. The case where the security program is executed while the game program is executed in the computer system and the game hack is executed is described as an example.

게임프로그램과 보안프로그램이 런칭되면 윈도우즈 운영체제(OS)에서 각각 게임프로세스(110)와 보안프로세스(120)가 실행된다. 게임프로세스(110)는 하나 이상의 게임쓰레드(111)와 하나 이상의 시스템쓰레드(112)를 포함하고, 보안프로세스(120)는 하나 이상의 보안쓰레드(121)를 포함한다. 게임 핵이 실행되면 게임 핵 프로세스(130)가 구동되어 게임프로세스(110)에 핵 쓰레드(131)를 삽입한다. 이 발명에 따른 보안프로세스(120)의 보안쓰레드(121)는 게임 핵에 의해 게임프로세스(110)에 삽입된 핵 쓰레드(131)를 검출한다. 이 실시예에서는 보안프로세스(120)가 보호하고자 하는 대상이 게임프로세스이나, 이 발명은 이에 한정되지 아니하며 임의의 해킹프로세스가 임의의 실행프로세스의 기능을 변경하지 못하도록 하는데 적용할 수 있다. 보호하고자 하는 대상 프로세스를 보호대상프로세스라 한다.When the game program and the security program are launched, the game process 110 and the security process 120 are executed in the Windows operating system (OS), respectively. The game process 110 includes one or more game threads 111 and one or more system threads 112, and the security process 120 includes one or more security threads 121. When the game hack is executed, the game hack process 130 is driven to insert the hack thread 131 into the game process 110. The security thread 121 of the security process 120 according to the present invention detects the nuclear thread 131 inserted into the game process 110 by the game hack. In this embodiment, the security process 120 is intended to protect the game process, but the present invention is not limited thereto and may be applied to prevent any hacking process from changing the function of any execution process. The target process to be protected is called the protected process.

윈도우즈 운영체제는 프로세스관리구조체(140)와 쓰레드관리구조체(150)를 포함한다. 프로세스관리구조체(140)는 윈도우즈 운영체제 하에서 컴퓨터시스템에서 실행되는 프로세스들에 대한 정보를 저장하는데, 각 실행 프로세스들에 포함된 쓰레드 목록이 저장된 주소(쓰레드 목록 주소) 정보가 저장된다. 쓰레드관리구조체(150)는 각 실행 프로세스들에 포함된 쓰레드들이 저장된 주소들이 저장된다. 즉, 프로세스관리구조체(140)에는 보호대상프로세스 즉, 게임프로세스(110)에 포함된 쓰레드 목록이 저장된 주소가 저장되고, 이 쓰레드 목록 주소의 쓰레드관리구조체(150)에는 게임프로세스(110)에 포함된 쓰레드들의 시작주소들이 저장된다.The Windows operating system includes a process management structure 140 and a thread management structure 150. The process management structure 140 stores information about processes running on a computer system under the Windows operating system, and stores address information (thread list address) in which a thread list included in each execution process is stored. The thread management structure 150 stores addresses at which threads included in respective execution processes are stored. That is, the process management structure 140 stores the protected process, that is, the address where the thread list included in the game process 110 is stored, and the thread management structure 150 of the thread list address is included in the game process 110. The starting addresses of the created threads are stored.

도 2는 이 발명에 따른 쓰레드 체크를 이용한 핵 차단방법을 도시한 동작 흐름도이다.2 is a flowchart illustrating a nuclear blocking method using a thread check according to the present invention.

이 발명은 보안프로세스에서 구현된다. 보안프로세스는 이 발명에 따른 기능을 구현하기 위해 적어도 하나 이상의 보안쓰레드를 포함한다. 즉, 보안프로세스는 둘 이상의 보안쓰레드로서 이 발명에 따른 핵 차단방법을 구현할 수도 있다.This invention is implemented in a security process. The security process includes at least one security thread to implement the functions according to the invention. That is, the security process may implement the nuclear blocking method according to the present invention as two or more security threads.

먼저, 보안프로세스는 보호대상프로세스의 구동에 필요한 허용 쓰레드 목록을 저장한다(S201). 이 허용 쓰레드 목록에는 시스템 쓰레드와 게임 쓰레드가 포함된다. 이 허용 쓰레드 목록은 보호대상프로세스가 핵에 의해 해킹되기 전에 확보되어 저장되는 것이 바람직하다.First, the security process stores a list of allowed threads required for driving the protected process (S201). This list of allowed threads includes system threads and game threads. This list of allowed threads is preferably secured and stored before the protected process is hacked by the hack.

다음, 보안프로세스는 보호대상프로세스의 PID(프로세스 ID)를 읽는다(S202). 통상적으로 보안프로세스가 실행될 때 보호대상프로세스의 PID 정보를 읽어올 수 있다.Next, the security process reads the PID (process ID) of the protected process (S202). Normally, when the security process is executed, the PID information of the protected process can be read.

다음, 보안프로세스는 보호대상프로세스의 PID를 프로세스관리구조체에 적용하여 현재 보호대상프로세스에 포함된 쓰레드 목록 주소를 읽어온다(S203).Next, the security process applies the PID of the protected process to the process management structure to read the thread list address included in the current protected process (S203).

다음, 보안프로세스는 보호대상프로세스의 쓰레드 목록 주소를 쓰레드관리구조체에 적용하여 보호대상프로세스의 쓰레드들의 시작주소들을 읽어온다(S204).Next, the security process reads the start addresses of the threads of the protected process by applying the thread list address of the protected process to the thread management structure (S204).

다음, 보안프로세스는 보호대상프로세스의 쓰레드 목록 중 하나의 쓰레드를 선택하고(S205), 선택 쓰레드의 시작주소를 이용하여 선택 쓰레드를 읽어온다(S206). 그리고, 읽어온 선택 쓰레드를 허용 쓰레드 목록에서 탐색한다(S207).Next, the security process selects one thread from the list of threads of the protected process (S205), and reads the selection thread using the start address of the selection thread (S206). In operation S207, the selected thread is read from the list of allowed threads.

단계 S207의 탐색 결과, 선택 쓰레드가 허용 쓰레드 목록에 포함되면(S208), 선택 쓰레드가 쓰레드 목록 중 마지막 쓰레드인지를 판단하여, 마지막 쓰레드가 아니면(S209) 단계 S205로 진행하여 다음 선택 쓰레드에 대해 단계 S205 내지 단계 S208을 반복수행하고, 마지막 쓰레드이면(S209) 일정 시간 후 단계 S203으로 진행하여 보호대상프로세스에 핵 쓰레드가 삽입되었는지 여부를 반복적으로 검사한다.As a result of the search in step S207, if the selection thread is included in the allowable thread list (S208), it is determined whether the selection thread is the last thread in the thread list, and if it is not the last thread (S209), the process proceeds to step S205 for the next selection thread. S205 to step S208 are repeated, and if it is the last thread (S209), the process proceeds to step S203 after a predetermined time and repeatedly checks whether a nuclear thread has been inserted into the protected process.

단계 S207의 탐색 결과, 선택 쓰레드가 허용 쓰레드 목록에 포함되어 있지 않으면(S208), 선택 쓰레드를 핵 쓰레드로 판단하고 핵 쓰레드의 실행을 차단한다(S210).As a result of the search in step S207, if the selection thread is not included in the list of allowed threads (S208), the selection thread is determined to be a nuclear thread and the execution of the nuclear thread is blocked (S210).

상술한 도 2에 도시된 바와 같은 이 발명에 따른 핵 차단방법은 실행중인 핵 쓰레드를 검출하여 그 실행을 차단할 수 있다.The nuclear blocking method according to the present invention as shown in FIG. 2 described above can detect a running nuclear thread and block its execution.

한편, 핵 프로세스 중 일부는 쓰레드를 생성한 후 바로 터미네이트(쓰레드 동작 정지)시킬 수가 있는데, 이렇게 생성 후 터미네이트된 핵 쓰레드에 대한 정보도 프로세스정보구조체에 저장된다. 이 발명에서는 단계 S203에서 보호대상프로세스의 실행중인 쓰레드 목록 주소 뿐만 아니라 터미네이트된 쓰레드 목록 주소도 읽어서 터미네이트된 쓰레드에 대해서도 이 발명을 적용한다.
On the other hand, some of the nuclear processes can be terminated immediately after the thread is created. In this way, information about the terminated nuclear thread is also stored in the process information structure. In the present invention, the present invention applies not only to the running thread list address of the process to be protected but also to the terminated thread list address in step S203, to the terminated thread.

110 : 게임프로세스 111 : 게임쓰레드
112 : 시스템쓰레드 120 : 보안프로세스
121 : 보안쓰레드 130 : 게임 핵 프로세스
131 : 핵 쓰레드 140 : 프로세스관리구조체
150 : 쓰레드관리구조체
110: game process 111: game thread
112: system thread 120: security process
121: Security Thread 130: Game Hack Process
131: nuclear thread 140: process management structure
150: thread management structure

Claims (3)

컴퓨터시스템에 실행되는 보안프로세스가 핵을 검출하여 차단하는 방법에 있어서,
상기 보안프로세스가 보호대상프로세스의 PID를 읽는 제1단계와,
상기 보안프로세스가 상기 보호대상프로세스의 PID를 프로세스관리구조체에 적용하여 상기 보호대상프로세스에 포함된 실행중 쓰레드 및 동작 정지된 쓰레드를 포함하는 쓰레드 목록 주소를 읽는 제2단계와,
상기 보안프로세스가 상기 보호대상프로세스의 쓰레드 목록 주소를 쓰레드관리구조체에 적용하여 상기 보호대상프로세스에 포함된 실행중 쓰레드 및 동작 정지된 쓰레드의 시작주소들을 읽는 제3단계와,
상기 보안프로세스가 상기 보호대상프로세스의 쓰레드들의 시작주소들을 이용하여 상기 보호대상프로세스에 포함된 실행중 쓰레드 및 동작 정지된 쓰레드를 기저장된 허용 쓰레드 목록에서 탐색하는 제4단계와,
상기 보안프로세스가 상기 보호대상프로세스에 포함된 실행중 쓰레드 및 동작 정지된 쓰레드 중 상기 허용 쓰레드 목록에 포함되지 않은 쓰레드를 핵 쓰레드로 판단하고, 상기 핵 쓰레드의 실행을 차단하는 제5단계를 포함한 것을 특징으로 하는 쓰레드 체크를 이용한 핵 차단방법.
In a method for detecting and blocking a hack by a security process running on a computer system,
A first step of the security process reading the PID of the process to be protected;
A second step of the security process applying a PID of the protected process to a process management structure to read a thread list address including a running thread and a stopped thread included in the protected process;
A third step of the security process applying the thread list address of the protected process to a thread management structure to read starting addresses of running threads and stopped threads included in the protected process;
A fourth step of the security process searching for a running thread and a stopped thread included in the protected process by using the start addresses of the threads of the protected process in a previously stored allowed thread list;
The security process includes a fifth step of determining that a thread not included in the allowable thread list among the running threads and the stopped threads included in the protected process as a nuclear thread, and blocking execution of the nuclear thread. Nuclear blocking method using a thread check characterized in.
삭제delete 제 1 항에 있어서, 상기 허용 쓰레드 목록은 게임쓰레드와 시스템쓰레드를 포함한 것을 특징으로 하는 쓰레드 체크를 이용한 핵 차단방법.

The method of claim 1, wherein the list of allowed threads includes a game thread and a system thread.

KR1020100077017A 2010-08-10 2010-08-10 method for blocking hack using thread check KR101252185B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100077017A KR101252185B1 (en) 2010-08-10 2010-08-10 method for blocking hack using thread check

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100077017A KR101252185B1 (en) 2010-08-10 2010-08-10 method for blocking hack using thread check

Publications (2)

Publication Number Publication Date
KR20120014816A KR20120014816A (en) 2012-02-20
KR101252185B1 true KR101252185B1 (en) 2013-04-05

Family

ID=45837761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100077017A KR101252185B1 (en) 2010-08-10 2010-08-10 method for blocking hack using thread check

Country Status (1)

Country Link
KR (1) KR101252185B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840179B (en) * 2018-12-15 2023-04-11 中国平安人寿保险股份有限公司 RocktMQ thread number monitoring method and device, electronic equipment and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100516304B1 (en) * 2003-05-16 2005-09-26 주식회사 안철수연구소 Device and Method for Detecting Malicious Code of Process Memory
KR100520788B1 (en) * 2003-06-03 2005-10-17 주식회사 안철수연구소 Device and Method For Detecting Malicious Thread
KR20100034852A (en) * 2008-09-25 2010-04-02 주식회사 안철수연구소 Malicious program detector for scanning a illegal memory access and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100516304B1 (en) * 2003-05-16 2005-09-26 주식회사 안철수연구소 Device and Method for Detecting Malicious Code of Process Memory
KR100520788B1 (en) * 2003-06-03 2005-10-17 주식회사 안철수연구소 Device and Method For Detecting Malicious Thread
KR20100034852A (en) * 2008-09-25 2010-04-02 주식회사 안철수연구소 Malicious program detector for scanning a illegal memory access and method thereof

Also Published As

Publication number Publication date
KR20120014816A (en) 2012-02-20

Similar Documents

Publication Publication Date Title
CA2735545C (en) Heuristic method of code analysis
Pappas et al. Transparent {ROP} exploit mitigation using indirect branch tracing
JP4929403B2 (en) Method and apparatus for automatically protecting malicious program in computer
EP3779745B1 (en) Code pointer authentication for hardware flow control
KR101242127B1 (en) Computing device having a function of DLL injection and method for DLL injection
Kim et al. A Brief Survey on Rootkit Techniques in Malicious Codes.
US20090094585A1 (en) Method and apparatus for analyzing exploit code in nonexecutable file using virtual environment
GB2436046A (en) Method for establishing a trusted running environment in the computer
KR20090052596A (en) A method and a device for malware detection
CN109508546A (en) A kind of software homology analysis method and device based on software gene
JP5455914B2 (en) Tamper resistant technology
KR20120014673A (en) Method for dectecting falsification of process by inserting disguised dll
KR101252185B1 (en) method for blocking hack using thread check
Brandão et al. Employment of secure enclaves in cheat detection hardening
KR100457405B1 (en) Method of detecting whether speed hack is in use
KR101071119B1 (en) game security method using trace of excuting game hack tool
KR101052735B1 (en) Method for detecting presence of memory operation and device using same
US8763138B2 (en) Method and device for security loading a memory and an associated memory
KR101731022B1 (en) Method and apparatus for detecting exploit
KR101216485B1 (en) Detecting method of gamehack dll
Fu et al. Detecting stack layout corruptions with robust stack unwinding
Bania Securing the kernel via static binary rewriting and program shepherding
KR101249764B1 (en) method for detecting and blocking game-hack process
KR101673364B1 (en) Security providing method of improving security of application in mobile device using access monitoring on memory information
KR101483171B1 (en) System and Method for Protecting Memory Data

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
FPAY Annual fee payment

Payment date: 20180402

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 7