KR101235517B1 - Method for Detecting Modification of Computer Program Executing in Memory - Google Patents
Method for Detecting Modification of Computer Program Executing in Memory Download PDFInfo
- Publication number
- KR101235517B1 KR101235517B1 KR1020110028668A KR20110028668A KR101235517B1 KR 101235517 B1 KR101235517 B1 KR 101235517B1 KR 1020110028668 A KR1020110028668 A KR 1020110028668A KR 20110028668 A KR20110028668 A KR 20110028668A KR 101235517 B1 KR101235517 B1 KR 101235517B1
- Authority
- KR
- South Korea
- Prior art keywords
- computer program
- memory
- program
- protected
- modulation
- Prior art date
Links
- 238000004590 computer program Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims description 32
- 238000012986 modification Methods 0.000 title abstract description 3
- 230000004048 modification Effects 0.000 title abstract description 3
- 238000001514 detection method Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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
- G06F21/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Bioethics (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 컴퓨터 메모리에서 실행되는 컴퓨터 프로그램이 변조되는지의 여부를 탐지할 수 있도록 한다. 이를 위하여 변조로부터의 보호 대상이 되는 보호 대상 프로그램은 원본저장코드를 포함하도록 구성되며, 원본저장코드는 보호 대상 프로그램이 메모리에 로드될 때 실행되어 원본정보를 저장해 놓는다. 원본정보는 보호 대상 프로그램의 일정 보호영역에 관한 정보를 말하며, 변조탐지용 프로그램은 메모리에 로드된 보호 대상 프로그램의 보호영역 정보와 상기 원본정보를 주기적으로 비교하여 변조가 발생하였는지를 조사한다. 본 발명에 따르면, 메모리에서 실행되는 컴퓨터 프로그램의 원본정보에 근거하여 변조 여부를 탐지하기 때문에 알려져 있지 않은 악성 코드에 의한 변조까지 탐지할 수 있고, 변조를 판단하기 위한 원본정보를 별도로 배포할 필요가 없으므로, 편리하고 효율적으로 컴퓨터 프로그램의 실행 시간 변조를 탐지할 수 있다.The present invention makes it possible to detect whether a computer program running on a computer memory is tampered with. To this end, the protected program to be protected from tampering is configured to include the original stored code, which is executed when the protected program is loaded into memory to store the original information. The original information refers to information about a certain protected area of the protected program, and the tamper detection program periodically compares the protected area information of the protected program loaded in the memory with the original information to check whether tampering has occurred. According to the present invention, since tampering is detected based on original information of a computer program running in a memory, tampering by unknown malicious code can be detected, and it is necessary to separately distribute original information for judging tampering. As a result, it is possible to detect the modification of the execution time of the computer program conveniently and efficiently.
Description
본 발명은 컴퓨터 메모리에서 실행되는 컴퓨터 프로그램이 악성 코드에 의해 변조되는지의 여부를 탐지하여, 컴퓨터 프로그램이 부정하게 이용되는 것을 방지하고, 이에 적절히 조치를 취할 수 있도록 한다.
The present invention detects whether a computer program running in computer memory is tampered with by malicious code, thereby preventing the computer program from being used illegally and taking appropriate measures.
컴퓨터와 관련하여 매우 다양한 악성 코드가 존재하며, 특히 컴퓨터에서 실행되는 정상적인 컴퓨터 프로그램을 변조하여 부정한 목적을 달성하려는 시도가 많이 이루어지고 있다.There are a wide variety of malicious codes related to computers, and there are many attempts to achieve unjust goals by altering normal computer programs running on computers.
예컨대 온라인 게임의 경우 게임 아이템과 같은 게임 내 재화의 가치가 높아지면서 로봇 프로그램을 통해 자동화된 과정으로 게임을 진행하여 게임 내 재화를 습득하는 행위가 발생하고 있다.For example, in the case of online games, the value of in-game goods such as game items increases, and the act of acquiring in-game goods is progressing through the automated process through a robot program.
로봇 프로그램은 게임 클라이언트가 메모리에 로드하는 프로그램 모듈을 변조하여 자신의 목적에 따라 게임이 진행되도록 제어한다.The robot program modulates a program module loaded by the game client into memory to control the game to proceed according to its purpose.
이와 같은 상황을 방지하기 위해서는 컴퓨터의 메모리에서 실행되는 컴퓨터 프로그램이 변조되었는지의 여부를 탐지할 필요가 있다.To prevent such a situation, it is necessary to detect whether the computer program running in the memory of the computer has been tampered with.
이에 본 발명은 상기와 같은 필요성에 부응하기 위하여 안출된 것으로서, 컴퓨터의 메모리에서 실행되는 컴퓨터 프로그램이 변조되었는지의 여부를 효율적으로 탐지할 수 있는 방법을 제공하는데 그 목적이 있다.
Accordingly, an object of the present invention is to provide a method capable of efficiently detecting whether a computer program executed in a memory of a computer has been tampered with.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 제1실시예는 메모리에 로드된 컴퓨터 프로그램의 일정 보호영역에 관한 정보를 원본정보로 저장해 놓는 원본저장단계; 및 변조탐지용 프로그램이 주기적으로 상기 메모리에 로드되어 있는 상기 컴퓨터 프로그램의 보호영역에 관한 정보와 상기 원본정보를 비교하여 상기 컴퓨터 프로그램이 변조되었는지의 여부를 탐지하는 변조탐지단계를 포함하여 이루어진다. 상기 원본저장단계는 상기 컴퓨터 프로그램이 상기 메모리에 로드될 때 실행되도록 상기 컴퓨터 프로그램에 설정되어 있는 원본저장코드가 수행한다.In order to achieve the above object, a first embodiment according to the present invention comprises: an original storage step of storing information about a predetermined protection area of a computer program loaded in a memory as original information; And a modulation detection step of detecting whether or not the computer program has been tampered with by comparing the original information with information about the protection area of the computer program loaded in the memory. The original storing step is performed by an original storing code set in the computer program to be executed when the computer program is loaded into the memory.
상기 원본저장코드는 상기 보호영역의 데이터를 그대로 상기 원본정보로 저장할 수 있다.The original storage code may store the data of the protection area as the original information.
상기 원본저장코드는 상기 보호영역의 데이터를 복호화가 가능한 암호화 방식으로 암호화 하여 상기 원본정보로 저장할 수 있다.The original storage code may encrypt the data of the protected area in a decryptable encryption manner and store the original information.
상기 원본저장코드는 상기 보호영역의 데이터에 관한 해쉬(Hash) 값을 상기 원본정보로 저장할 수 있다.The original storage code may store a hash value of the data of the protected area as the original information.
상기 원본정보는 상기 컴퓨터 프로그램이 상기 메모리에서 언로드될 때 삭제될 수 있다.
The original information may be deleted when the computer program is unloaded from the memory.
본 발명에 따른 제2실시예에서 보호 대상이 되는 컴퓨터 프로그램은 일정 보호영역의 데이터를 특정 암호화 방식에 따라 암호화한 암호값을 가지고 있도록 구성된다.In the second embodiment according to the present invention, the computer program to be protected is configured to have a cipher value in which data of a certain protected area is encrypted according to a specific encryption method.
본 발명에 따른 제2실시예는, 변조탐지용 프로그램이 주기적으로 메모리에 로드되어 있는 상기 컴퓨터 프로그램의 일정 보호영역에 관한 데이터를 특정 암호화 방식에 따라 암호화 하는 암호화 단계; 및 상기 변조탐지용 프로그램이 상기 암호화 단계에서 처리된 결과값과 상기 컴퓨터 프로그램이 가지고 있는 암호값을 비교하여 상기 컴퓨터 프로그램의 변조 여부를 탐지하는 변조탐지단계를 포함하여 이루어진다.According to a second embodiment of the present invention, an encryption step of encrypting data relating to a predetermined protection area of a computer program in which a tamper detection program is periodically loaded into a memory is performed; And a tamper detection step for the tamper detection program to detect whether the computer program has been tampered with by comparing a result value processed in the encryption step with a cryptographic value possessed by the computer program.
상기 제2실시예에서 상기 특정 암호화 방식은 해쉬(Hash) 함수를 이용하여 해쉬값을 산출하는 방식일 수 있다.
In the second embodiment, the specific encryption method may be a method of calculating a hash value using a hash function.
상기 제1실시예와 제2실시예에서, 상기 컴퓨터 프로그램의 일정 보호영역은 실행시 그 내용이 변경되지 않는 데이터가 저장되는 영역일 수 있다.
In the first and second embodiments, the predetermined protection area of the computer program may be an area in which data whose contents are not changed when executed is stored.
상기 변조탐지용 프로그램은 상기 메모리에 로드되어 있는 컴퓨터 프로그램이 변조된 경우, 변조와 관련된 정보를 특정 서버로 전송할 수 있다.When the computer program loaded in the memory is modulated, the modulation detection program may transmit information related to the modulation to a specific server.
이때 상기 특정 서버로 전송하는 변조와 관련된 정보는 변조된 위치, 변조 전의 데이터, 변조 후의 데이터, 변조된 데이터의 길이, 변조로 인해 분기되는 프로그램 정보 등을 포함할 수 있다.In this case, the information related to the modulation transmitted to the specific server may include a modulated position, data before modulation, data after modulation, length of modulated data, program information branched by the modulation, and the like.
상기 변조탐지용 프로그램은 상기 메모리에 로드되어 있는 컴퓨터 프로그램이 변조된 경우 상기 컴퓨터 프로그램의 실행을 종료시키거나, 또는 상기 변조된 데이터를 복구시킬 수 있다.
The modulation detection program may terminate execution of the computer program or restore the modulated data when the computer program loaded in the memory is modulated.
상기 컴퓨터 프로그램은 특정 어플리케이션(Application)이 그 실행 중 상기 메모리에 로드하는 프로그램 모듈을 포함할 수 있다.The computer program may include a program module which a specific application loads into the memory during its execution.
상기 어플리케이션은 사용자의 컴퓨터 장치에서 실행되어 통신망을 통해 게임 서버와 통신하면서 온라인 게임을 수행하는 게임 클라이언트일 수 있다.
The application may be a game client that runs on a user's computer device and performs an online game while communicating with a game server through a communication network.
본 발명에 따르면, 메모리에서 실행되는 컴퓨터 프로그램의 원본정보에 근거하여 변조 여부를 탐지하기 때문에 알려져 있지 않은 악성 코드에 의한 변조까지 탐지할 수 있다.According to the present invention, since tampering is detected based on original information of a computer program executed in a memory, tampering by unknown malicious code can be detected.
또한, IAT Wrapping 기술이나 난독화(가상화) 기술을 사용하는 패커, 실행파일 압축 프로그램 등 타 용도의 컴퓨터 프로그램에 의한 영향을 받지 않는다.In addition, it is not affected by computer programs for other purposes, such as packers and executable file compression programs that use IAT Wrapping technology or obfuscation (virtualization) technology.
뿐만 아니라 정확한 변조 위치나 변조 데이터를 판단하기 위해 보호영역에 관한 원본정보를 별도로 배포할 필요도 없다.In addition, it is not necessary to distribute original information on the protection area separately in order to determine the correct modulation position or modulation data.
이에 따라 컴퓨터 메모리에서 실행되는 컴퓨터 프로그램의 변조 여부를 효율적으로 탐지하고, 신속하게 적절한 대응 조치를 취할 수 있도록 해준다.
This effectively detects the tampering of computer programs running on computer memory, and allows for rapid response.
도 1은 컴퓨터 장치의 예,
도 2는 본 발명에 따른 제1실시예의 보호 대상 프로그램에 관한 개요,
도 3은 본 발명에 따른 제1실시예에서 보호 대상 프로그램과 변조탐지용 프로그램이 메모리에 로드되어 있는 상태를 보인 예,
도 4는 본 발명에 따른 제1실시예의 변조 탐지 방법을 설명하는 흐름도,
도 5는 본 발명에 따른 제2실시예의 보호 대상 프로그램에 관한 개요,
도 6은 본 발명에 따른 제2실시예에서 보호 대상 프로그램과 변조탐지용 프로그램이 메모리에 로드되어 있는 상태를 보인 예,
도 7은 본 발명에 따른 제2실시예의 변조 탐지 방법을 설명하는 흐름도,
도 8은 어플리케이션이 필요에 따라 여러 모듈을 메모리에 로드하는 예,
도 9와 도 10은 본 발명에 따른 변조 탐지 방법을 온라인 게임 서비스에 적용하는 예이다.1 is an example of a computer device,
2 is an overview of a program to be protected according to the first embodiment of the present invention;
3 is a view showing a state in which a program to be protected and a tamper detection program are loaded in a memory in the first embodiment according to the present invention;
4 is a flowchart for explaining a modulation detection method of a first embodiment according to the present invention;
5 is an overview of a program to be protected according to a second embodiment of the present invention;
6 is a view showing a state in which a program to be protected and a modulation detection program are loaded in a memory in a second embodiment according to the present invention;
7 is a flowchart for explaining a modulation detection method of a second embodiment according to the present invention;
8 illustrates an example in which an application loads several modules into a memory as needed.
9 and 10 are examples of applying the modulation detection method according to the present invention to an online game service.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
본 발명은 컴퓨터 장치의 메모리에서 실행되는 컴퓨터 프로그램이 변조되는지의 여부를 탐지하는 방법에 관한 것이다.The present invention relates to a method for detecting whether a computer program running in a memory of a computer device is modulated.
컴퓨터 장치는 개인용 컴퓨터(PC: Personal Computer), 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰, PDA(Personal Digital Assistant) 등 컴퓨터 프로그램을 메모리에 로드하여 실행할 수 있는 일체의 기기를 말한다.
A computer device refers to any device that can load and execute a computer program such as a personal computer (PC), a notebook computer, a tablet computer, a smartphone, a personal digital assistant (PDA), and the like in a memory.
도 1은 컴퓨터 장치(11)의 예를 도시한 것으로서, 각 요소들은 다양한 구조를 가질 수 있는 시스템 버스(11-9)를 통해 서로 연결되고, 중앙처리장치(CPU: Central Processing Unit,11-1)의 총괄적인 제어하에 서로 데이터를 주고 받으면서 그 역할을 수행한다.1 shows an example of a
저장매체(11-2)는 비휘발성의 성질을 가지며, 일반적으로 개인용 컴퓨터에서는 내장형 하드 디스크 드라이브(HDD: Hard Disk Drive)가 사용되지만, 컴퓨터 장치(11)에 의해 액세스될 수 있는 내장형, 외장형, 분리형, 비분리형의 다양한 형태를 가질 수 있다.The storage medium 11-2 has a non-volatile property, and in general, an internal hard disk drive (HDD) is used in a personal computer, but internal, external, and external devices accessible by the
입력수단(11-3)은 사용자가 컴퓨터 장치(11)로 각종 명령이나 정보를 입력할 수 있도록 하며, 디스플레이 수단(11-4)은 시각적으로 출력할 정보를 디스플레이 화면에 표시한다.The input means 11-3 allows the user to input various commands or information to the
메모리(11-5)는 중앙처리장치(11-1)가 즉시 액세스할 컴퓨터 프로그램이나 데이터를 유지하는 RAM(Random Access Memory)을 말하는 것으로서, 컴퓨터 프로그램은 중앙처리장치(11-1)에 의해 메모리(11-5)에 로드되어 실행된다.The memory 11-5 refers to a random access memory (RAM) that holds a computer program or data that the central processing unit 11-1 immediately accesses. The computer program is stored in the memory by the central processing unit 11-1. It is loaded in (11-5) and executed.
네트워크 인터페이스(11-6)는 컴퓨터 장치(11)가 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(13)에 접속하여 통신할 수 있도록 한다.
The network interface 11-6 allows the
본 발명의 설명에서 보호 대상이 되는 컴퓨터 프로그램은 그 자체만으로 전체 기능을 수행하는 것일 수도 있고, 메인 컴퓨터 프로그램에 의해 메모리(11-5)에 로드되어 실행되는 프로그램 모듈(예: DLL, EXE)일 수도 있다.In the description of the present invention, a computer program to be protected may be a program module (eg, a DLL or an EXE) that is loaded and executed in the memory 11-5 by the main computer program. It may be.
이하에서는 설명의 편의를 위하여 변조로부터의 보호 대상이 되는 컴퓨터 프로그램을 '보호 대상 프로그램'으로 칭하기로 한다. 즉, 보호 대상 프로그램은 메인 컴퓨터 프로그램이 될 수도 있고, 메인 컴퓨터 프로그램이 필요에 따라 메모리(11-5)에 불러 오는 프로그램 모듈일 수도 있다.
Hereinafter, for convenience of description, a computer program to be protected from tampering will be referred to as a 'protected program'. That is, the program to be protected may be a main computer program or may be a program module which the main computer program loads into the memory 11-5 as necessary.
도 2를 참조하자면, 본 발명에 따른 제1실시예의 변조 탐지 방법에서 보호 대상 프로그램(310)은 원본저장코드(311)를 포함하도록 구성된다.2, in the modulation detection method of the first embodiment according to the present invention, the
원본저장코드(311)는 보호 대상 프로그램(310)에 포함되는 코드로서, 보호 대상 프로그램(310)이 메모리(11-5)에 로드될 때 보호 대상 프로그램(310)의 일정 보호영역에 관한 정보를 원본정보로 저장해 놓는다.The
원본저장코드(311)는 메모리(11-5)에 로드된 보호 대상 프로그램(310)이 처음 실행될 때 원본정보를 저장한다.The
보호 대상 프로그램(310)의 어떤 영역을 보호영역으로 할 것인지는 필요에 따라 다양하게 설정할 수 있다. Which area of the program to be protected 310 is a protected area can be set in various ways as necessary.
보호영역의 구체적인 예를 들자면, .text, .rdata, .rsrc 등과 같이 보호 대상 프로그램(310)의 실행시 그 내용이 변경되지 않는 데이터가 저장되는 영역을 보호영역으로 설정할 수 있다.As a specific example of the protected area, an area in which data whose contents are not changed when the
원본저장코드(311)는 보호영역의 데이터를 그대로 원본정보로 저장할 수도 있고, 노출 방지를 위해 보호영역의 데이터를 특정 암호화 방식으로 암호화하여 원본정보로 저장할 수도 있다. 후자의 경우 보호영역의 데이터에 관한 해쉬(Hash) 값을 원본정보로 저장할 수 있다.The
만일 변조 탐지 과정이 보호영역의 데이터를 그대로 비교하도록 구성된다면, 상기 암호화 방식은 복호화가 가능한 방식을 사용해야 한다.
If the tamper detection process is configured to compare the data of the protected area as it is, the encryption method should use a decryptable method.
도 3은 본 발명에 따른 제1실시예의 변조 탐지 방법과 관련한 메모리(11-5)의 상태를 도시한 것으로서, 메모리(11-5)에 보호 대상 프로그램(310)과 변조탐지용 프로그램(321)이 로드되어 있다.FIG. 3 shows the state of the memory 11-5 related to the modulation detection method of the first embodiment according to the present invention, in which the
제1실시예에서 변조탐지용 프로그램(321)은 보호 대상 프로그램(310)의 원본저장코드(311)가 저장해 놓은 원본정보를 이용하여 보호 대상 프로그램(310)이 변조되는지의 여부를 감시한다.In the first embodiment, the
도 4는 본 발명에 따른 제1실시예의 변조 탐지 방법을 도시한 것이다.4 shows a modulation detection method of the first embodiment according to the present invention.
먼저 보호 대상 프로그램(310)이 메모리(11-5)에 로드되고(S211), 원본저장코드(311)가 보호 대상 프로그램(310)의 최초 실행시 보호 대상 프로그램(310)의 보호영역에 관한 정보를 원본정보(331)로 저장해 놓는다(S212).First, the
그러면 변조탐지용 프로그램(321)은 단계 S213 내지 S216에 따라 주기적으로 메모리(11-5)의 보호 대상 모듈(310)이 변조되는지를 탐지한다.The
즉, 변조탐지용 프로그램(321)은 주기적으로 메모리(11-5)에 로드되어 있는 보호 대상 프로그램(310)의 보호영역에 관한 정보를 원본저장코드(311)가 저장해 놓은 원본정보(331)와 비교하여 서로 일치하는지를 조사하며(S213). 조사 결과 서로 일치하면 변조가 발생하지 않은 것으로 판단하고(S214,S215), 서로 일치하지 않으면 변조가 발생한 것으로 판단한다(S214,S216).That is, the
이때, 원본정보(331)가 보호영역의 데이터 그대로인 경우에는 메모리(11-5)에 로드되어 있는 보호 대상 프로그램(310)의 보호영역 데이터를 그대로 읽어 원본정보(331)와 비교한다.At this time, when the
그러나 원본정보(331)가 해쉬값인 경우에는 메모리(11-5)에 로드되어 있는 보호 대상 프로그램(310)의 보호영역 데이터의 해쉬값을 구해 서로 비교한다.However, when the
또한, 원본정보(331)가 복호화가 가능한 암호화 방식으로 암호화된 값이라면, 원본정보(331)를 복호화한 값과 메모리(11-5)에 로드되어 있는 보호 대상 프로그램(310)의 보호영역 데이터를 비교한다.
In addition, if the
원본정보(331)는 보호 대상 프로그램(310)이 메모리(11-5)에서 언로드될 때 삭제하도록 구성될 수 있다. 원본정보(331)의 삭제는 보호 대상 프로그램(310), 보호 대상 프로그램을 호출한 메인 프로그램, 변조탐지용 프로그램(321), 또는 별도의 프로그램이 수행할 수 있다.The
도 5를 참조하자면, 본 발명에 따른 제2실시예의 변조 탐지 방법에서 보호 대상 프로그램(310)은 보호영역의 암호값(313)을 포함하도록 구성된다.Referring to FIG. 5, in the modulation detection method of the second embodiment of the present invention, the program to be protected 310 is configured to include an
보호영역의 암호값이란 보호 대상 프로그램(310)의 보호영역에 관한 데이터를 특정 암호화 방식에 따라 암호화한 값을 말한다.The cipher value of the protected area refers to a value obtained by encrypting data related to the protected area of the protected
보호 대상 프로그램(310)의 어떤 영역을 보호영역으로 할 것인지는 필요에 따라 다양하게 설정할 수 있다. 구체적인 예로서 .text, .rdata, .rsrc 등과 같이 보호 대상 프로그램(310)의 실행시 그 내용이 변경되지 않는 데이터가 저장되는 영역을 보호영역으로 설정할 수 있다.Which area of the program to be protected 310 is a protected area can be set in various ways as necessary. As a specific example, an area in which data whose contents are not changed when the program to be protected 310 is executed, such as .text, .rdata, or .rsrc, may be set as a protection area.
보호영역의 암호값을 생성하는 암호화 방식은 다양하게 구성될 수 있으며, 구체적인 예로서 해쉬(Hash) 함수를 이용하여 보호영역의 데이터에 관한 해쉬값을 생성할 수 있다.An encryption method for generating an encryption value of a protection area may be configured in various ways. As a specific example, a hash value for data of the protection area may be generated using a hash function.
도 6은 본 발명에 따른 제2실시예의 변조 탐지 방법과 관련한 메모리(11-5)의 상태를 도시한 것으로서, 메모리(11-5)에 보호 대상 프로그램(310)과 변조탐지용 프로그램(321)이 로드되어 있다.FIG. 6 shows the state of the memory 11-5 related to the modulation detection method of the second embodiment according to the present invention, in which the protected
제2실시예에서 변조탐지용 프로그램(321)은 보호 대상 프로그램(310)이 가지고 있는 보호영역의 암호값(313)을 이용하여 보호 대상 프로그램(310)이 변조되는지의 여부를 감시한다.
In the second embodiment, the
도 7을 참조하여, 본 발명에 따른 컴퓨터 프로그램의 변조 탐지 방법에 관한 제2실시예를 설명하기로 한다.Referring to FIG. 7, a second embodiment of a modulation detection method of a computer program according to the present invention will be described.
먼저 보호 대상 프로그램(310)이 메모리(11-5)에 로드되고(S231), 도 6에 도시된 바와 같이 메모리(11-5)에 로드된 보호 대상 프로그램(310)은 보호영역의 암호값(313)을 가지고 있다.First, the protected
그러면 변조탐지용 프로그램(321)은 단계 S232 내지 S236에 따라 주기적으로 메모리(11-5)의 보호 대상 모듈(310)이 변조되는지를 탐지한다.The
즉, 변조탐지용 프로그램(321)은 메모리(11-5)에 로드되어 있는 보호 대상 프로그램(310)의 보호영역 데이터를 읽어 특정 암호화 방식에 따라 암호화 한다. 이때 특정 암호화 방식은 보호 대상 프로그램(310)이 가지고 있는 보호영역의 암호값(313)을 생성할 때 사용한 암호화 방식과 같은 것이다(S232).That is, the
이제 변조탐지용 프로그램(321)은 단계 S232에서 암호화한 결과값과 보호 대상 프로그램(310)이 가지고 있는 암호값(313)을 비교하여 서로 일치하는지를 조사한다(S233). 그리고 단계 S233에서의 조사 결과 서로 일치하면 변조가 발생하지 않은 것으로 판단하고(S234,S235), 서로 일치하지 않으면 변조가 발생한 것으로 판단한다(S234,S236).
The
제1실시예와 제2실시예의 변조탐지용 프로그램(321)은 보호 대상 프로그램(310)이 변조되었다고 판단된 경우 다양한 조치를 취할 수 있다.The
변조탐지용 프로그램(321)은 변조된 위치, 변조 전의 데이터, 변조 후의 데이터, 변조된 데이터의 길이, 변조로 인해 분기되는 프로그램 정보 등과 같이 변조와 관련된 각종 정보를 통신망(13)을 통해 특정 서버로 전송할 수 있다.The
또한, 변조탐지용 프로그램(321)은 보호 대상 프로그램(310)이 변조되었다고 판단된 경우 보호 대상 프로그램(310)의 실행을 강제로 종료시키거나, 또는 메모리(11-5)의 변조된 데이터를 원상 복구시킬 수도 있다.
In addition, the
한편, 보호 대상 프로그램(310)은 특정 어플리케이션(Application)이 그 실행 중 메모리(11-5)에 로드하는 프로그램 모듈일 수 있다.Meanwhile, the program to be protected 310 may be a program module which a specific application loads into the memory 11-5 during its execution.
예컨대 어플리케이션은 사용자의 컴퓨터 장치에서 실행되어 통신망(13)을 통해 게임 서버와 통신하면서 온라인 게임을 수행하는 게임 클라이언트일 수 있다. 이러한 게임 클라이언트는 실행 중 필요에 따라 여러 게임 모듈(DLL, EXE 등)을 메모리(11-5)에 로드한다.For example, the application may be a game client that runs on a user's computer device and performs an online game while communicating with a game server through the
도 8을 참조하자면, 게임 클라이언트와 같이 메모리(11-5)에서 실행 중인 어플리케이션(351)은 저장매체(11-2)에 저장되어 있는 여러 프로그램 모듈(게임 모듈)을 필요에 따라 메모리(11-5)에 로드한다.Referring to FIG. 8, an
이때 어플리케이션(351)이 메모리(11-5)에 로드하는 프로그램 모듈이 보호 대상 프로그램(보호 대상 모듈)이라면, 이 보호 대상 모듈은 제1실시예와 관련하여 원본저장코드를 포함하고 있거나, 제2실시예와 관련하여 보호영역의 암호값을 가지고 있게 된다.At this time, if the program module that the
그러면 변조탐지용 프로그램(321)은 메모리(11-5)에 로드된 각 보호 대상 모듈의 원본정보, 또는 보호영역의 암호값을 이용하여 각 보호 대상 모듈이 변조되는지의 여부를 탐지한다.Then, the
이때 변조탐지용 프로그램(321)은 각 보호 대상 프로그램마다 개별적으로 구비되어 그 역할을 수행할 수도 있고, 각 보호 대상 프로그램에 관한 변조 탐지를 일괄적으로 처리할 수도 있다.
In this case, the
도 9는 온라인 게임 서비스를 제공하는 시스템의 개요를 도시한 것으로서, 게임 서비스 시스템(15)은 통신망(13)을 통해 각 사용자의 컴퓨터 장치(11)에 설치된 게임 클라이언트(371)와 연동하여 온라인 게임 서비스를 제공한다.9 shows an outline of a system for providing an online game service, wherein the
게임 서비스 시스템(15)은 통신망(13)을 통해 게임 클라이언트(371)를 전송해 주고, 또한 항상 최신 버전으로 유지시켜 준다. 게임 클라이언트(371)는 일반적으로 메인 프로그램과 여러 게임 모듈로 구성된다.The
온라인 게임을 부정하게 이용하려는 사용자는 컴퓨터 장치(11)에서 실행되는 게임 클라이언트(371) 또는 각 게임 모듈을 변조하여 게임을 이용한다.
A user who illegally uses an online game modulates the
도 10을 참조하여, 온라인 게임 서비스에 본 발명에 따른 변조 탐지 방법을 적용하는 예를 살펴보기로 한다.Referring to FIG. 10, an example of applying the modulation detection method according to the present invention to an online game service will be described.
먼저 게임 서비스 시스템(15)에서는 게임 클라이언트(371)의 각 게임 모듈 중 보호 대상 모듈을 선택하고(S251), 각 보호 대상 모듈에 원본저장코드를 설정하거나, 또는 보호영역의 암호값을 포함시킨다(S252).First, the
그리고 각 사용자의 컴퓨터 장치(11)로 게임 클라이언트(메인 프로그램, 각 게임 모듈, 변조탐지용 프로그램 등)를 전송한다(S253).Then, a game client (main program, each game module, a tamper detection program, etc.) is transmitted to the
컴퓨터 장치(11)에서 게임 클라이언트가 실행되어 게임이 시작되면(S254), 게임 클라이언트는 게임의 진행에 따라 필요한 게임 모듈을 메모리(11-5)에 로드하는데, 보호 대상 모듈이 메모리(11-5)에 로드되면 변조탐지용 프로그램(321)에 의해 변조 여부가 탐지된다(S255).When the game client is executed in the
즉, 본 발명에 따른 제1실시예에서는 원본정보를 이용하여 변조 여부가 탐지되고, 제2실시예에서는 보호영역의 암호값을 이용하여 변조 여부가 탐지된다.That is, in the first embodiment according to the present invention, whether or not the modulation is detected using the original information, and in the second embodiment, whether or not the tampering is detected using the encryption value of the protection area.
변조탐지용 프로그램(321)은 보호 대상 모듈에 변조가 발생하였다고 판단되면(S256), 변조와 관련된 정보를 게임 서비스 시스템(15)으로 전송한다(S257).If it is determined that the modulation has occurred in the module to be protected (S256), the
그러면 게임 서비스 시스템(15)은 해당 사용자의 게임 접속을 종료시키거나 이후 게임 이용을 제한하는 등 부정 사용자 제재 정책에 따라 필요한 조치를 취할 수 있다(S258).
Then, the
상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.
It is to be understood that the present invention is not limited to the above-described embodiment, and 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.
11: 컴퓨터 장치 11-1: 중앙처리장치
11-2: 저장매체 11-3: 입력수단
11-4: 디스플레이 수단 11-5: 메모리
11-6: 네트워크 인터페이스 13: 통신망
15: 게임 서비스 시스템 310: 보호 대상 프로그램
311: 원본저장코드 313: 보호영역의 암호값
321: 변조탐지용 프로그램 331: 원본정보
371: 게임 클라이언트11: Computer Unit 11-1: Central Processing Unit
11-2: Storage medium 11-3: Input means
11-4: Display Means 11-5: Memory
11-6: Network Interface 13: Network
15: game service system 310: protected program
311: Source code 313: Password value for protected area
321: tamper detection program 331: source information
371: game client
Claims (13)
상기 메모리에 로드된 상기 컴퓨터 프로그램의 일정 보호영역에 관한 정보를 원본정보로 저장해 놓는 원본저장단계; 및
변조탐지용 프로그램이 주기적으로 상기 메모리에 로드되어 있는 상기 컴퓨터 프로그램의 보호영역에 관한 정보와 상기 원본정보를 비교하여 상기 컴퓨터 프로그램이 변조되었는지의 여부를 탐지하는 변조탐지단계를 포함하고,
상기 원본저장단계는 상기 컴퓨터 프로그램이 상기 메모리에 로드될 때 실행되도록 상기 컴퓨터 프로그램에 설정되어 있는 원본저장코드가 수행하며,
상기 컴퓨터 프로그램의 보호영역은 실행시 그 내용이 변경되지 않는 데이터가 저장되는 영역인 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.In the modulation detection method of a computer program running in the memory,
An original storage step of storing information on a predetermined protection area of the computer program loaded in the memory as original information; And
A modulation detection step of detecting whether or not the computer program has been tampered by comparing the original information with information on the protection area of the computer program loaded in the memory periodically by a modulation detection program;
The original storing step is performed by an original storing code set in the computer program to be executed when the computer program is loaded into the memory,
And a protected area of the computer program is an area in which data is stored that does not change its contents when executed.
상기 원본저장코드는 상기 보호영역의 데이터를 상기 원본정보로 저장하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.The method of claim 1,
And the original storage code stores the data of the protected area as the original information.
상기 원본저장코드는 상기 보호영역의 데이터를 복호화가 가능한 암호화 방식으로 암호화 하여 상기 원본정보로 저장하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.The method of claim 1,
And the original storage code encrypts the data of the protected area using an encryption method that can be decrypted and stores the original information as the original information.
상기 원본저장코드는 상기 보호영역의 데이터에 관한 해쉬(Hash) 값을 상기 원본정보로 저장하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.The method of claim 1,
And the original storage code stores a hash value of the data of the protected area as the original information.
상기 원본정보는 상기 컴퓨터 프로그램이 상기 메모리에서 언로드될 때 삭제되는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.The method of claim 1,
And the original information is deleted when the computer program is unloaded from the memory.
상기 컴퓨터 프로그램은 일정 보호영역의 데이터를 특정 암호화 방식에 따라 암호화한 암호값을 가지고 있도록 구성되고,
변조탐지용 프로그램이 주기적으로 상기 메모리에 로드되어 있는 상기 컴퓨터 프로그램의 보호영역에 관한 데이터를 상기 특정 암호화 방식에 따라 암호화 하는 암호화 단계; 및
상기 변조탐지용 프로그램이 상기 암호화 단계에서 처리된 결과값과 상기 컴퓨터 프로그램이 가지고 있는 암호값을 비교하여 상기 컴퓨터 프로그램의 변조 여부를 탐지하는 변조탐지단계를 포함하며,
상기 컴퓨터 프로그램의 보호영역은 실행시 그 내용이 변경되지 않는 데이터가 저장되는 영역인 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.In the modulation detection method of a computer program running in the memory,
The computer program is configured to have a cipher value in which data of a certain protected area is encrypted according to a specific encryption method,
An encryption step of encrypting data relating to a protected area of the computer program loaded in the memory by a modulation detection program periodically according to the specific encryption method; And
And a tamper detection step for detecting whether the computer program has been tampered with by the tamper detection program by comparing the result value processed in the encryption step with the encryption value of the computer program.
And a protected area of the computer program is an area in which data is stored that does not change its contents when executed.
상기 특정 암호화 방식은 해쉬(Hash) 함수를 이용하여 해쉬값을 산출하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.The method according to claim 6,
The specific encryption method is a modulation detection method of a computer program executed in a memory, characterized in that for calculating a hash value using a hash (Hash) function.
상기 변조탐지용 프로그램은 상기 메모리에 로드되어 있는 컴퓨터 프로그램이 변조된 경우, 변조와 관련된 정보를 특정 서버로 전송하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.8. The method according to any one of claims 1 to 7,
And the modulation detection program transmits information related to the modulation to a specific server when the computer program loaded in the memory is modulated.
상기 특정 서버로 전송하는 변조와 관련된 정보는 변조된 위치, 변조 전의 데이터, 변조 후의 데이터, 변조된 데이터의 길이, 및 변조로 인해 분기되는 프로그램 정보 중 하나 이상의 정보를 포함하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.The method of claim 9,
In the memory, characterized in that the information related to the modulation transmitted to the particular server includes at least one of the modulated position, the data before the modulation, the data after the modulation, the length of the modulated data, and the program information branched by the modulation. How to detect tampering with computer programs running.
상기 변조탐지용 프로그램은 상기 메모리에 로드되어 있는 컴퓨터 프로그램이 변조된 경우 상기 컴퓨터 프로그램의 실행을 종료시키거나, 또는 상기 변조된 데이터를 복구시키는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.8. The method according to any one of claims 1 to 7,
The tamper detection program is configured to terminate execution of the computer program or restore the modulated data when the computer program loaded in the memory is modulated. .
상기 컴퓨터 프로그램은 특정 어플리케이션(Application)이 그 실행 중 상기 메모리에 로드하는 프로그램 모듈을 포함하는 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.8. The method according to any one of claims 1 to 7,
And the computer program comprises a program module which a specific application loads into the memory during its execution.
상기 어플리케이션은 사용자의 컴퓨터 장치에서 실행되어 통신망을 통해 게임 서버와 통신하면서 온라인 게임을 수행하는 게임 클라이언트인 것을 특징으로 하는 메모리에서 실행되는 컴퓨터 프로그램의 변조 탐지 방법.13. The method of claim 12,
And wherein said application is a game client running on a user's computer device and performing an online game while communicating with a game server via a communication network.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110028668A KR101235517B1 (en) | 2011-03-30 | 2011-03-30 | Method for Detecting Modification of Computer Program Executing in Memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110028668A KR101235517B1 (en) | 2011-03-30 | 2011-03-30 | Method for Detecting Modification of Computer Program Executing in Memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120110660A KR20120110660A (en) | 2012-10-10 |
KR101235517B1 true KR101235517B1 (en) | 2013-02-20 |
Family
ID=47281463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110028668A KR101235517B1 (en) | 2011-03-30 | 2011-03-30 | Method for Detecting Modification of Computer Program Executing in Memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101235517B1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101277517B1 (en) * | 2012-12-04 | 2013-06-21 | 주식회사 안랩 | Apparatus and method for detecting falsified application |
KR101482700B1 (en) * | 2013-09-27 | 2015-01-14 | (주)잉카엔트웍스 | Method For Verifying Integrity of Program Using Hash |
KR101512418B1 (en) * | 2013-10-15 | 2015-04-15 | 주식회사 잉카인터넷 | tampered position detection |
KR101579175B1 (en) * | 2014-02-21 | 2015-12-21 | 주식회사 안랩 | Apparatus and method for detection of repackaging |
KR101484706B1 (en) * | 2014-03-25 | 2015-01-20 | 새솔다이아몬드공업 주식회사 | Manufacturing method of pad conditioner |
KR102337963B1 (en) * | 2020-03-09 | 2021-12-10 | 엔에이치엔 주식회사 | The faking code of program detecting method and apparatus thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080018683A (en) * | 2006-08-25 | 2008-02-28 | 삼성전자주식회사 | Tamper resistant method of executable program and module thereof |
KR20090036339A (en) * | 2007-10-09 | 2009-04-14 | 주식회사 안철수연구소 | System and method for generating original code of execute image |
-
2011
- 2011-03-30 KR KR1020110028668A patent/KR101235517B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080018683A (en) * | 2006-08-25 | 2008-02-28 | 삼성전자주식회사 | Tamper resistant method of executable program and module thereof |
KR20090036339A (en) * | 2007-10-09 | 2009-04-14 | 주식회사 안철수연구소 | System and method for generating original code of execute image |
Also Published As
Publication number | Publication date |
---|---|
KR20120110660A (en) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301575B2 (en) | Secure data synchronization | |
USRE47364E1 (en) | Method and system for protecting against the execution of unauthorized software | |
EP3265950B1 (en) | Device attestation through security hardened management agent | |
US10423791B2 (en) | Enabling offline restart of shielded virtual machines using key caching | |
US9489520B2 (en) | Decryption and encryption of application data | |
Altuwaijri et al. | Android data storage security: A review | |
KR101402542B1 (en) | Persistent security system and method | |
US8886964B1 (en) | Protecting remote asset against data exploits utilizing an embedded key generator | |
KR101235517B1 (en) | Method for Detecting Modification of Computer Program Executing in Memory | |
US10949540B2 (en) | Security policy enforcement based on dynamic security context updates | |
JP6072091B2 (en) | Secure access method and secure access device for application programs | |
US20120151219A1 (en) | Security usb storage medium generation and decryption method, and medium recorded with program for generating security usb storage medium | |
US9177121B2 (en) | Code protection using online authentication and encrypted code execution | |
US11349651B2 (en) | Measurement processing of high-speed cryptographic operation | |
US20160330030A1 (en) | User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
Mannan et al. | Unicorn: Two-factor attestation for data security | |
US10754979B2 (en) | Information management terminal device | |
CN103530169B (en) | Method for protecting virtual machine files and user terminal | |
JP2006259848A (en) | Program execution device, program execution method and program | |
KR20180004462A (en) | Ransomware prevention technique using key backup | |
KR101604892B1 (en) | Method and devices for fraud prevention of android-based applications | |
US9390280B2 (en) | System and method for obtaining keys to access protected information | |
KR20240066716A (en) | Method for managing content decryption key and apparatus for same | |
Mahboubi et al. | Shared file protection against unauthorised encryption using a Buffer-Based Signature Verification Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160107 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170203 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180202 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190201 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20200107 Year of fee payment: 8 |