KR101512418B1 - tampered position detection - Google Patents

tampered position detection Download PDF

Info

Publication number
KR101512418B1
KR101512418B1 KR20130122629A KR20130122629A KR101512418B1 KR 101512418 B1 KR101512418 B1 KR 101512418B1 KR 20130122629 A KR20130122629 A KR 20130122629A KR 20130122629 A KR20130122629 A KR 20130122629A KR 101512418 B1 KR101512418 B1 KR 101512418B1
Authority
KR
South Korea
Prior art keywords
blocks
target code
protection target
block
row
Prior art date
Application number
KR20130122629A
Other languages
Korean (ko)
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 KR20130122629A priority Critical patent/KR101512418B1/en
Application granted granted Critical
Publication of KR101512418B1 publication Critical patent/KR101512418B1/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/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/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention relates to a system and a method for detecting, quickly, whether a protecting object code (original file or original process loaded in memory) is altered by a malicious code and the altered part thereby. The system for altered part detection according to the present invention comprises: a saving part saving eigen values of multiple row blocks and column blocks of the original protecting object code; a matching part matching blocks of an execution protecting object code and blocks of the original file protecting object code by obtaining eigen values of multiple column blocks and row blocks of the execution protecting object code corresponding to the original file protecting object code; and a comparison part detecting altered parts in each block by comparing the eigen values of the original protecting object code and execution protecting object code to the blocks matched by the matching part, and determining the altered parts by the altered row and column blocks, wherein the original file protecting object code and the execution protecting object code are distinguished into multiple small blocks, respectively, and each small block is determined by one column block and one row block.

Description

변조 위치 검출 시스템 및 방법 {tampered position detection}[0001] The present invention relates to a tampered position detection system,

이 발명은 파일 또는 메모리 보안 기술에 관한 것으로서, 보다 상세하게는 보호대상코드(원본파일 또는 메모리에 로드된 원본프로세스)가 악성코드에 의해 변조되었는지 여부 및 그 변조 위치를 빠르게 검출하는 시스템 및 방법에 관한 것이다.
The present invention relates to a file or memory security technology, and more particularly, to a system and method for rapidly detecting a protected code (original file or original process loaded in memory) by malicious code and its modulation location .

컴퓨터시스템에는 다수의 프로그램이 설치되어 실행된다. 프로그램(또는 파일이라고도 함)은 컴퓨터를 실행시키기 위해 차례대로 작성된 명령어 모음을 의미하며, 프로그램이 메모리에 로딩되어 실행중인 상태를 프로세스라 한다. 컴퓨터시스템으로 다양한 작업을 수행함에 따라 컴퓨터시스템에는 다양한 개인정보가 저장되며 다양한 작업들이 수행된다.A plurality of programs are installed and executed in a computer system. A program (also referred to as a file) refers to a set of instructions that are created in order for a computer to run, and a state in which a program is loaded into memory and running is called a process. As the computer system performs various tasks, various personal information is stored in the computer system and various tasks are performed.

이에 악성코드는 프로그램, 프로세스, 문서 등을 위변조하여 컴퓨터시스템에 저장된 개인정보를 외부로 유출하거나, 특정 메모리에 주소에 저장된 금융데이터를 다른 값으로 위변조하여 이체대상계좌번호나 이체금액을 조작하기도 한다. 또한, 게임에서의 해킹 프로그램인 게임 핵은 특정 게임 프로그램이나 특정 게임 프로세스가 로딩된 메모리 등을 조작하는 프로그램으로서, 게임의 메모리를 조작하여 능력치나 체력 등과 같은 특정 데이터를 바꾸어 주거나, 격투기 게임에서 타격 속도나 타격 횟수를 증가시키거나, 매크로 기능을 부여하여 게이머가 게임을 손쉽게 이길 수 있도록 한다.The malicious code exploits personal information stored in a computer system by forgery or forgery programs, processes, documents, etc., or manipulates the transfer target account number or transfer amount by forging or falsifying the financial data stored in the address in a specific memory . In addition, a game nucleus, which is a hacking program in a game, is a program for manipulating a specific game program or a memory loaded with a specific game process. The game nucleus manipulates the memory of the game to change specific data such as a stamina or physical strength, Increase speed or hit counts, or add macros to allow gamers to easily beat the game.

이와 같이 게임 핵 등의 악성코드에 의해 컴퓨터시스템에 설치된 프로그램이나 메모리에 로딩된 프로세스가 위변조되지 못하도록 보호하는 기술들이 제안되었다.As described above, technologies for protecting a program installed in a computer system or a process loaded in a memory from malicious code such as a game nucleus are proposed.

프로그램 내지 파일 보안에 대한 종래기술로서, 대한민국 공개특허 제2013-0008119호, "파일 변조 검출방법"이 있다. 이 선행특허는 보안용 심볼 서버가 원본 검사대상파일의 파일 색인 정보와 원본 해쉬값을 대응하여 데이터베이스에 저장하는 제1단계와, 클라이언트컴퓨터로부터 실행 검사대상파일의 질의 파일 색인 정보와 질의 해쉬값이 포함된 파일 변조 질의가 수신되면, 상기 보안용 심볼 서버가 상기 질의 파일 색인 정보로 상기 데이터베이스를 검색하는 제2단계와, 상기 질의 파일 색인 정보에 대응하여 상기 데이터베이스에 저장된 원본 해쉬값과 상기 질의 해쉬값을 비교하고, 상기 비교 결과를 상기 클라이언트컴퓨터에게 제공하여 상기 클라이언트컴퓨터로 하여금 상기 실행 검사대상파일의 변조 여부를 검출하도록 하는 제3단계를 포함한다.As a conventional technique for program or file security, Korean Patent Laid-Open Publication No. 2013-0008119, "File Modulation Detection Method" In the prior art, the security symbol server stores the file index information of the original inspection target file and the original hash value in correspondence with each other in the database, and a second step of storing the query file index information of the execution inspection object file and the query hash value A second step of the security symbol server retrieving the database with the inquiry file index information when the included file modulating query is received; and a second step of retrieving the original hash value stored in the database and the query hash And providing the comparison result to the client computer to cause the client computer to detect whether or not the file to be tested is modulated.

한편, 메모리 보안에 대한 종래기술로서, 대한민국 등록특허 제1052735호, "메모리 조작유무를 감지하는 방법 및 이를 이용한 장치"가 있다. 이 선행특허는 보호대상 파일에 대해서 원본확인코드를 생성하는 단계; 상기 생성된 원본확인코드를 상기 보호대상 파일에 저장하는 단계; 상기 원본확인코드가 삽입된 보호대상 파일이 메모리상에 로드되는 단계; 상기 메모리상에 로드된 메모리상코드에 대해서, 기정해진 주기에 따라 상기 CRC 알고리즘을 이용해서 메모리확인코드를 생성하는 단계; 및 상기 원본확인코드와 상기 메모리확인코드를 비교하는 단계를 포함한다.On the other hand, Korean Patent Registration No. 1052735, " Method for detecting presence / absence of memory manipulation and apparatus using the same, " This prior patent discloses a method comprising: generating an original verification code for a file to be protected; Storing the generated original verification code in the protection target file; Loading the protected object file into which the original confirmation code is inserted; Generating a memory verification code for the memory-based code loaded on the memory using the CRC algorithm according to a predetermined cycle; And comparing the original verification code with the memory verification code.

상술한 선행특허들은 원본파일 또는 원본프로세스에 대한 고유값(해쉬값 또는 CRC값)을 저장해 놓고, 이후 실행파일 또는 실행프로세스에 대한 고유값을 산출하여 원본파일 또는 원본프로세스의 고유값과 비교함으로써, 실행파일 또는 실행프로세스가 원본파일 또는 원본프로세스로부터 위변조되었는지를 검출한다. 이러한 선행특허들은 실행파일 또는 실행프로세스의 위변조 여부를 검출할 수는 있으나, 그 위변조 위치를 검출할 수 없는 문제점이 있다.The above-mentioned prior patents store a unique value (hash value or CRC value) for the original file or the original process and then calculate a unique value for the executable file or the execution process and compare the original value with the original value of the original file or original process, And detects whether the executable file or the executable process is forged or falsified from the original file or the original process. These prior patents can detect whether an executable file or an execution process is forged or falsified, but can not detect the fake location.

한편, 최근 스마트 폰이나 태블릿 PC 등과 같은 모바일 장치가 널리 보급되면서, 이러한 모바일 장치에서 사용 가능한 다양한 어플리케이션에 대한 관심이 증가하고 있다. 모바일 장치 사용자는 자신의 모바일 장치를 소정의 어플리케이션 제공 서버에 접속하여 게임이나 온라인 금융 서비스 등과 같은 다양한 어플리케이션을 다운로드받아 사용한다. 다양한 어플리케이션의 활용이 증가하면서, 어플리케이션을 불법으로 위변조하는 행위도 증가하고 있는 바, 어플리케이션이 불법으로 위변조되는 경우, 모바일 장치 사용자의 개인 정보가 무방비로 노출될 수 있고, 어플리케이션 저작권이 침해되는 경우가 발생할 수 있다.On the other hand, as mobile devices such as smart phones and tablet PCs have become widespread in recent years, interest in various applications available in such mobile devices is increasing. A mobile device user connects his or her mobile device to a predetermined application providing server to download and use various applications such as a game or an online financial service. As the use of various applications increases, the number of illegal forgery of applications is increased. When the application is illegally forged, the personal information of the mobile device user may be exposed with no protection and the copyright of the application may be infringed. Lt; / RTI >

이러한 어플리케이션의 위변조를 방지하는 종래기술로서, 대한민국 등록특허 제1273370호, "어플리케이션 위변조 방지 장치 및 방법"이 있다. 이 선행특허는 클라이언트 단말이 어플리케이션을 실행하고자 할 때, 어플리케이션 제공 서버가 상기 클라이언트 단말로부터 상기 어플리케이션을 구성하는 데이터 코드 값을 입력으로 하는 소정의 해시(hash) 값을 수신하여 상기 수신된 해시 값이 기 저장되어 있는 해시 값과 일치하는 경우에만 상기 어플리케이션의 실행을 위한 액세스(access)를 허가함으로써, 위조되거나 변조된 어플리케이션이 사용되는 것을 방지한다. 이러한 선행특허도 어플리케이션의 위변조 여부를 검출할 수는 있으나 그 위변조 위치를 검출할 수는 없는 문제점이 있다.As a conventional technique for preventing forgery and falsification of such applications, Korean Patent Registration No. 1273370, " Apparatus and Method for Preventing Forgery of Application Forbidden " In this prior patent, when a client terminal desires to execute an application, the application providing server receives a predetermined hash value from the client terminal, the hash value being a data code value constituting the application, And permits access for execution of the application only when it coincides with a previously stored hash value, thereby preventing falsified or modulated applications from being used. This prior patent also has a problem that it is impossible to detect whether the application is forged or falsed, but the fake and falsified position can not be detected.

물론, 원본파일의 코드와 실행파일의 코드, 원본프로세스의 코드와 실행프로세스의 코드, 원본어플리케이션의 코드와 실행어플리케이션의 코드를 일대일로 비교하면 그 위변조 위치를 검출할 수는 있으나, 이 경우 위변조 여부 검출 시간이 오래 걸리는 문제점이 있다. 또한, 클라이언트가 파일, 프로세스 또는 어플리케이션의 위변조 여부를 서버에 쿼리하고, 서버가 그 위변조 여부를 검출하여 그 결과값을 클라이언트에게 응답하는 서버-클라이언트 환경에 적용할 경우, 네트워크 트래픽이 과도하게 증가하게 되는 문제점이 있다.
Of course, if the code of the original file and the code of the executable file, the code of the original process and the code of the execution process, and the code of the original application and the code of the execution application are compared one by one, the fake and falsified position can be detected. The detection time is long. In addition, when the client queries the server whether a file, a process or an application is forged or falsified, and when the server detects the forgery or falsification and applies the result to the server-client environment in which the result is returned to the client, the network traffic is excessively increased .

상술한 종래기술의 문제점을 충족시키기 위하여 안출된 이 발명의 목적은, 컴퓨터단말기 또는 모바일장치의 보호대상코드가 악성코드에 의해 변조되었는지 여부 및 그 변조 위치를 빠르게 검출하는 시스템 및 방법에 관한 것이다.
SUMMARY OF THE INVENTION An object of the present invention is to provide a system and method for quickly detecting whether or not a protected code of a computer terminal or a mobile device has been modulated by a malicious code and its modulation position.

상술한 목적을 달성하기 위한 이 발명에 따른 변조 위치 검출 시스템은, 원본 보호대상코드의 다수의 행중블록들의 고유값과 다수의 열중블록들의 고유값을 저장하는 저장부와, 상기 원본 보호대상코드에 대응하는 실행 보호대상코드의 다수의 행중블록들의 고유값과 다수의 열중블록들의 고유값을 획득하여 상기 실행 보호대상코드의 중블록들과 상기 원본 보호대상코드의 중블록들을 매칭하는 매칭부와, 상기 매칭부에서 매칭된 중블록에 대해 상기 실행 보호대상코드의 고유값과 원본 보호대상코드의 고유값을 비교하여 중블록별 변조 여부를 검출하고, 변조된 행중블록과 열중블록에 의해 변조위치가 결정되도록 하는 비교부를 포함하며, 상기 원본 보호대상코드와 상기 실행 보호대상코드는 각각 다수의 소블록들로 구분되고, 각각의 소블록이 하나의 행중블록과 하나의 열중블록에 의해 결정되는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a modulation position detection system comprising: a storage unit for storing eigenvalues of blocks in a plurality of rows of an original protection target code and eigenvalues of blocks in a plurality of rows; A matching unit for acquiring eigenvalues of blocks in the plurality of rows of the corresponding execution protection target code and eigenvalues of the blocks in the plurality of rows to match the blocks of the execution protection target code and the blocks of the source protection target code, Comparing the eigenvalue of the execution protection target code with the eigenvalue of the original protection target code for the middle block matched by the matching unit to detect whether the modulation is performed for each of the blocks, Wherein the source protection target code and the execution protection target code are divided into a plurality of small blocks, And is determined by a block in a row and a block in a row.

또한, 이 발명에 따른 변조 위치 검출 방법은, 원본 보호대상코드에 대응하는 실행 보호대상코드의 다수의 행중블록들의 고유값과 다수의 열중블록들의 고유값을 획득하는 제1단계와, 상기 실행 보호대상코드의 중블록들과 상기 원본 보호대상코드의 중블록들을 매칭하는 제2단계와, 상기 제2단계에서 매칭된 중블록에 대해 상기 실행 보호대상코드의 고유값과 기저장된 상기 원본 보호대상코드의 고유값을 비교하여 중블록별 변조 여부를 검출하고 상기 변조된 행중블록과 열중블록에 의해 변조위치가 결정되도록 하는 제3단계를 포함하며, 상기 원본 보호대상코드와 상기 실행 보호대상코드는 각각 다수의 소블록들로 구분되고, 각각의 소블록이 하나의 행중블록과 하나의 열중블록에 의해 결정되는 것을 특징으로 한다.
The modulation position detection method according to the present invention includes a first step of obtaining eigenvalues of blocks in a plurality of rows of an execution protection target code corresponding to an original protection target code and eigenvalues of a plurality of blocks in a row, A second step of matching the blocks of the target code with the middle blocks of the original protection target code, and a second step of matching the original value of the execution protection target code with the original protection target code And a third step of detecting modulation of each of the blocks and determining a modulation position by using the modulated row block and the heat block, wherein the original protection target code and the execution protection target code are respectively Wherein each of the small blocks is divided into a plurality of small blocks and each small block is determined by one row block and one column block.

이상과 같이 이 발명에 따르면 보호대상코드을 다수의 행중블록과 다수의 열중블록으로 나누고 각 행중블록과 열중블록별 고유값을 산출하여 그 변조 여부를 검증하고 행중블록과 열중블록이 겹쳐지는 소블록을 변조위치로 검출함으로써, 적은 양의 데이터로도 보호대상코드의 변조 여부 및 변위 위치를 정확하게 검출할 수 있는 잇점이 있다.
As described above, according to the present invention, the protection code is divided into a plurality of blocks in a row and a plurality of blocks in a row, and the eigenvalues of the blocks and the blocks in each row are calculated to verify whether the blocks are modulated and a small block The modulation position and the displacement position of the protection object code can be accurately detected even with a small amount of data.

도 1은 이 발명에 따른 변조 위치 검출 시스템을 도시한 구성 블록도이다.
도 2는 이 발명에 따른 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하여 변조된 소블록을 검출하는 원리를 간략하게 도시한 도면이다.
도 3은 이 발명에 따른 변조 위치 검출 방법을 도시한 동작 흐름도이다.
1 is a block diagram showing a configuration of a modulation position detecting system according to the present invention.
FIG. 2 is a view briefly showing a principle of detecting a modulated small block by dividing a protection object code according to the present invention into a plurality of blocks in a row and a plurality of blocks in a column.
3 is an operational flowchart showing the modulation position detection method according to the present invention.

이하, 첨부된 도면을 참조하며 이 발명에 따른 변조 위치 검출 시스템 및 방법을 보다 상세하게 설명한다.Hereinafter, a modulation position detection system and method according to the present invention will be described in more detail with reference to the accompanying drawings.

보호대상코드의 원본은 각 단말기에 설치되어 실행된다. 보호대상코드가 단말기에 저장되어 있을 때 또는 메모리에 로딩될 때 또는 앱 스토어 등에서 단말기에 다운로드될 때 등 다양한 순간에 원본 보호대상코드는 변조될 수 있다. 따라서, 보호대상코드가 실행될 때 혹은 단말기에 보관되어 있는 동안에 해당 보호대상코드(이를 실행 보호대상코드라 함)가 원본 보호대상코드와 동일한 지 여부 즉, 무결성을 검증할 필요가 있다.The source of the protection target code is installed and executed in each terminal. The original protected code may be modulated at various moments, such as when the protected code is stored in the terminal, loaded into memory, or downloaded to the terminal, such as in an app store. Therefore, it is necessary to verify whether the corresponding protection target code (referred to as the execution protection target code) is the same as the original protection target code, that is, integrity, when the protection target code is executed or stored in the terminal.

실행 보호대상코드가 원본 보호대상코드와 동일함을 검증하는 무결성 검증은 물리적으로 하나의 단말기 자체적으로 이루어질 수 있고, 물리적으로 원거리 이격된 서버-클라이언트 환경에서 이루어질 수도 있다.Integrity verification that verifies that the execution protection target code is the same as the original protection target code may be physically performed by one terminal itself or may be performed in a physically remote and remote server-client environment.

도 1은 이 발명에 따른 변조 위치 검출 시스템을 도시한 구성 블록도이다.1 is a block diagram showing a configuration of a modulation position detecting system according to the present invention.

실행 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하는 중블록 설정부(11)와, 상기 중블록설정부(11)에서 구분된 상기 행중블록들 각각의 고유값과 상기 열중블록들 각각의 고유값을 산출하는 중블록 고유값 계산부(12)와, 상기 실행 보호대상코드에 대응하는 원본 보호대상코드의 다수의 행중블록들 및 다수의 열중블록들 각각의 고유값을 저장하는 저장부(13)와, 상기 중블록 고유값 계산부(12)에서 계산된 상기 실행 보호대상코드의 중블록들과 상기 저장부(13)에 저장된 상기 원본 보호대상코드의 중블록들을 매칭하는 매칭부(14)와, 상기 매칭부(14)에서 매칭된 중블록에 대해 실행 보호대상코드의 고유값과 원본 보호대상코드의 고유값별 고유값을 비교하여 중블록별 변조 여부를 검출하는 비교부(15)와, 상기 비교부(15)의 비교결과 변조가 감지되면 변조된 행중블록과 열중블록에 의해 결정된 소블록을 변조위치로 판정하는 변조 위치 검출부(16)를 포함한다.A block setting unit 11 for dividing the execution protection target code into a plurality of blocks in a row and a plurality of blocks in a row; Block eigenvalue calculator 12 for calculating the eigenvalues of each of the blocks, and a block eigenvalue calculator 12 for storing eigenvalues of a plurality of blocks in the row and a plurality of blocks in the column of the original protection target code corresponding to the execution protection target code And the block of the original protection target code stored in the storage unit 13 are matched with the blocks of the execution protection target code calculated by the middle block eigenvalue calculation unit 12 A comparison unit for comparing the eigenvalues of the execution protection target code with the eigenvalues of the original value of the original protection target code with respect to the middle block matched by the matching unit, (15), a comparison result of the comparison unit (15) That senses when a modulation position detector (16) for determining a small block in a location determined by the modulation on the modulated haengjung blocks and lost block.

상기 중블록 설정부(11)는 상기 보호대상코드가 다수의 소블록들로 구분되고, 각각의 소블록이 하나의 행중블록과 하나의 열중블록에 의해 결정되도록 상기 다수의 행중블록들과 다수의 열중블록들을 설정한다.The middle block setting unit 11 sets the number of blocks and the plurality of blocks so that the protection code is divided into a plurality of small blocks and each small block is determined by one row block and one column block. Sets the blocks in the row.

모든 소블록들이 동일한 크기일 필요는 없으며, 따라서, 모든 행중블록들과 모든 열중블록들이 동일한 크기일 필요는 없다. 보호대상코드를 구성하는 영역별로 보호 필요성 및 중요도에 따라 각 중블록들의 행 길이 또는 열 길이를 다르게 결정할 수 있다. 이때, 실행 보호대상코드의 행중블록들과 열중블록들을 구분하는 기준과, 원본 보호대상코드의 행중블록들과 열중블록들을 구분하는 기준을 동일하게 적용하면 충분하다. 즉, 상기 실행 보호대상코드와 원본 보호대상코드는 상호 동일한 규칙이 적용되어 다수의 행중블록들 및 다수의 열중블록들로 구분된다.Not all small blocks need to be the same size, and therefore, all the row blocks and all row blocks need not be the same size. It is possible to determine the row length or the column length of each of the blocks differently according to the necessity and importance of protection for each area constituting the protection target code. At this time, it suffices to apply the same criterion for distinguishing between the blocks in the row of the execution protection target code and the blocks in the row, and the criteria for distinguishing between the blocks in the row and the blocks in the row of the original protection target code. That is, the execution protection target code and the source protection target code are classified into a plurality of blocks in a row and a plurality of blocks in a row by applying the same rule.

상기 보호대상코드는 프로그램, 파일, 프로세스, 어플리케이션, 문서, 멀티미디어 파일 등이 포함될 수 있다.The protection target code may include a program, a file, a process, an application, a document, a multimedia file, and the like.

도 2는 이 발명에 따른 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하여 변조된 소블록을 검출하는 원리를 간략하게 도시한 도면이다.FIG. 2 is a view briefly showing a principle of detecting a modulated small block by dividing a protection object code according to the present invention into a plurality of blocks in a row and a plurality of blocks in a column.

도 2에서는 보호대상코드를 N 개의 행중블록들(CMB_1 ~ CMB_N)과 M 개의 열중블록들(RMB_1 ~ RMB_M)로 구분한 예가 도시된다. 원본 보호대상코드와 그 대응되는 실행 보호대상코드가 동일한 구조로 구분된다.FIG. 2 shows an example in which the protection target code is divided into N blocks (CMB_1 to CMB_N) and M blocks (RMB_1 to RMB_M). The original protected code and the corresponding executed protection target code are classified into the same structure.

원본 보호대상코드를 구성하는 N 개의 행중블록들과 M 개의 열중블록들이 각각의 고유값이, 실행 보호대상코드를 구성하는 N 개의 행중블록들과 M 개의 열중블록들 각각의 고유값과 비교된다. 즉, N+M 개의 중블록들이 비교된다.The eigenvalues of blocks of N rows and M columns of blocks constituting the original protection target code are compared with the eigenvalues of blocks of N rows and M columns of blocks constituting the execution protection target code. That is, N + M middle blocks are compared.

만약 하나의 소블록이 변조된 경우, N 개의 행중블록들 중 하나의 행중블록(CMB_I)과 M 개의 열중블록들 중 하나의 열중블록(RMB_J)에서 변조가 감지된다. 하나의 행중블록과 하나의 열중블록이 변조가 검출되면 그 겹쳐지는 위치의 소블록(SB_IJ)을 변조위치로 검출할 수 있다. 즉, N×M 개의 소블록들 중 하나의 소블록을 변조 위치로 검출할 수 있게 된다.If one small block is modulated, modulation is detected in one of the row blocks (CMB_I) and one of the M row blocks (RMB_J) among the N row blocks. A small block (SB_IJ) at the overlapping position can be detected as the modulation position when modulation is detected in one row block and one column block. That is, one of the N x M small blocks can be detected as a modulation position.

일반적으로 N×M 개의 소블록 단위로 변조 위치를 검출하려면, N×M 개의 소블록들 각각의 고유값을 계산하고 비교하여야 한다. 하지만, 이 발명을 적용하면 N+M 개의 중블록들 단위로 고유값을 계산하고 비교하면 N×M 개의 소블록들 중 변조된 하나의 소블록을 검출할 수 있게 된다.Generally, in order to detect a modulation position in N × M small block units, the eigenvalues of N × M small blocks must be calculated and compared. However, according to the present invention, it is possible to detect a modulated small block among N × M small blocks by calculating and comparing eigenvalues in units of N + M middle blocks.

도 3은 이 발명에 따른 변조 위치 검출 방법을 도시한 동작 흐름도이다.3 is an operational flowchart showing the modulation position detection method according to the present invention.

먼저, 변조 위치 검출 시스템은 원본 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하고, 각각의 중블록별 고유값을 저장한다(S31). 여기서, 원본 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하는 기준은, 원본 보호대상코드가 다수의 소블록들로 구분되며 각각의 소블록이 하나의 행중블록과 하나의 열중블록에 의해 결정되도록 한다.First, the modulation position detection system divides an original code to be protected into a plurality of blocks in a row and a plurality of blocks in a column, and stores the eigenvalues of the respective blocks in step S31. Here, the criterion for dividing the original protection target code into a plurality of blocks in a row and a plurality of blocks in a column is that the original protection target code is divided into a plurality of small blocks and each small block is divided into one block To be determined by the block.

변조 위치 검출 시스템은 실행 보호대상코드의 다수의 행중블록들 및 다수의 열중블록들 각각의 고유값을 획득한다(S32). 여기서, 실행 보호대상코드는 원본 보호대상코드와 대응되며, 실행 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하는 기준은 원본 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하는 기준과 동일한 것이 바람직하다. 또한, 실행 보호대상코드의 중블록별 고유값 계산방법과 원본 보호대상코드의 중블록별 고유값 계산방법은 동일한 것이 바람직하다.The modulation position detection system obtains the eigenvalues of each of the plurality of row blocks and the plurality of heat block of the execution protection target code (S32). Here, the execution protection target code corresponds to the original protection target code, and the criterion for dividing the execution protection target code into a plurality of blocks in the row and a plurality of blocks in the column is the block in which the original protection target code is divided into a plurality of blocks, It is preferable that the reference is the same as the reference for dividing by blocks. It is also preferable that the eigenvalue computation method of the block of execution protection target code and the eigenvalue computation method of the block of the original protection target code are the same.

다음, 변조 위치 검출 시스템은 상호 매칭되는 중블록별로 원본 보호대상코드의 고유값과 실행 보호대상코드의 고유값을 비교한다(S33). 비교 결과 동일하면 해당 중블록이 변조되지 않은 것으로 결정하고 동일하지 않으면 해당 중블록이 변조된 것으로 결정하는 것은 당연하다.Next, the modulation position detection system compares the eigenvalues of the original protection target code with the eigenvalues of the execution protection target code on a block-by-block basis (S33). If the comparison result is the same, it is determined that the corresponding block is not modulated, and if it is not the same, it is of course determined that the corresponding block is modulated.

모든 중블록에 대해 비교가 완료될 때까지 단계 S33을 반복 수행하고, 모든 중블록에 대한 비교가 완료된 후(S34), 변조된 중블록이 존재하면(S35), 변조된 행중블록과 열중블록이 중첩된 소블록을 변조위치로 검출한다(S36).After the comparison of all the middle blocks is completed (S34), if there is a modulated block (S35), the modulated row block and the heat block The overlapped small blocks are detected as modulation positions (S36).

하나의 실시예에서, 중블록 설정부(11)와, 중블록별 고유값 계산부(12)와, 저장부(13)와, 매칭부(14)와, 비교부(15)와, 변조 위치 검출부(16)는 물리적으로 동일한 단말기(예컨대, 하나의 PC 또는 모바일장치) 내에 위치할 수 있다.In one embodiment, a block setting unit 11, a block-by-block eigenvalue calculation unit 12, a storage unit 13, a matching unit 14, a comparison unit 15, The detection unit 16 may be physically located within the same terminal (e.g., one PC or mobile device).

다른 실시예에서 중블록 설정부(11)와 중블록별 고유값 계산부(12)는 클라이언트 단말기에 위치하고, 저장부(13)와 매칭부(14)와 비교부(15)는 서버에 위치할 수도 있다. 이때, 변조 위치 검출부(16)는 클라이언트 단말기에 위치할 수도 있고, 서버에 위치할 수도 있다. 이러한 클라이언트-서버 환경에서는 중블록별 고유값을 통신하기 위해 해당 중블록의 식별자와 고유값을 함께 전송하는 것이 바람직하다.In another embodiment, the middle block setting unit 11 and the middle block specific eigen value calculating unit 12 are located in the client terminal, and the storing unit 13, the matching unit 14 and the comparing unit 15 are located in the server It is possible. At this time, the modulation position detection unit 16 may be located at the client terminal or at the server. In such a client-server environment, it is desirable to transmit the identifier and the eigenvalue of the corresponding block in order to communicate the eigenvalue of each block.

실행 보호대상코드가 원본 보호대상코드와 다르게 변조된 것과 그 변조위치가 검출된 경우 후속 조치는, 보호대상코드 개발사, 운영사, 사용자의 정책에 따라 다양하게 취해질 수 있다.Follow-up actions can be taken variously according to the policy of the developer, operator, and user of the protected code when the code to be protected is modulated differently from the original code to be protected and the position of the modulation is detected.

이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만, 이는 본 발명의 가장 양호한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. In addition, it is a matter of course that various modifications and variations are possible without departing from the scope of the technical idea of the present invention by anyone having ordinary skill in the art.

11 : 중블록 설정부 12 : 중블록 고유값 계산부
13 : 저장부 14 : 매칭부
15 : 비교부 16 : 변조 위치 검출부
11: middle block setting unit 12: middle block eigenvalue calculation unit
13: storage unit 14: matching unit
15: comparison unit 16: modulation position detection unit

Claims (10)

원본 보호대상코드의 다수의 행중블록들의 고유값과 다수의 열중블록들의 고유값을 저장하는 저장부와,
상기 원본 보호대상코드에 대응하는 실행 보호대상코드의 다수의 행중블록들의 고유값과 다수의 열중블록들의 고유값을 획득하여 상기 실행 보호대상코드의 중블록들과 상기 원본 보호대상코드의 중블록들을 매칭하는 매칭부와,
상기 매칭부에서 매칭된 중블록에 대해 상기 실행 보호대상코드의 고유값과 원본 보호대상코드의 고유값을 비교하여 중블록별 변조 여부를 검출하고, 변조된 행중블록과 열중블록에 의해 변조위치가 결정되도록 하는 비교부를 포함하며,
상기 원본 보호대상코드와 상기 실행 보호대상코드는 각각 다수의 소블록들로 구분되고, 각각의 소블록이 하나의 행중블록과 하나의 열중블록에 의해 결정되고,
상기 실행 보호대상코드와 원본 보호대상코드의 중블록별로 식별자를 부여하고, 상기 매칭부는 상기 식별자를 이용하여 상호 대응되는 상기 실행 보호대상코드의 중블록과 상기 원본 보호대상코드의 중블록을 매칭하는 것을 특징으로 하는 변조 위치 검출 시스템.
A storage unit for storing eigenvalues of blocks in a plurality of rows of the original code to be protected and eigenvalues of blocks in the plurality of columns;
The method comprising: obtaining an eigenvalue of blocks in a plurality of rows of an execution protection target code corresponding to the original protection target code and an eigenvalue of a plurality of blocks in the column, A matching unit for matching,
Comparing the eigenvalue of the execution protection target code with the eigenvalue of the original protection target code for the middle block matched by the matching unit to detect whether the modulation is performed for each of the blocks, And a comparator for comparing the first and second signals,
Wherein the source protection target code and the execution protection target code are divided into a plurality of small blocks, each small block is determined by one row block and one column block,
Wherein the matching unit assigns an identifier for each block of the execution protection target code and the source protection target code, and the matching unit uses the identifier to match blocks of the mutually corresponding blocks of the execution protection target code and the source protection target code And the modulated position detection system.
제 1 항에 있어서, 상기 실행 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하는 중블록 설정부와,
상기 중블록 설정부에서 구분된 행중블록들 각각의 고유값과 열중블록들 각각의 고유값을 산출하여 상기 매칭부에 제공하는 중블록 고유값 계산부를 더 포함한 것을 특징으로 하는 변조 위치 검출 시스템.
The apparatus of claim 1, further comprising: a block setting unit for dividing the execution protection target code into a plurality of blocks in a row and a plurality of blocks in a column;
Further comprising a block eigenvalue calculator for calculating an eigenvalue of each block in the row and an eigenvalue of each block in the column and providing the eigenvalue to the matching unit.
제 1 항에 있어서, 상기 비교부의 비교결과 변조가 감지되면 변조된 행중블록과 열중블록에 의해 결정된 소블록을 변조위치로 판정하는 변조 위치 검출부를 더 포함한 것을 특징으로 하는 변조 위치 검출 시스템.The modulation position detection system according to claim 1, further comprising a modulation position detection unit that determines a modulated position as a modulated position, when the modulation result of the comparison unit is sensed, the small block determined by the modulated row block and the heat block. 삭제delete 제 1 항에 있어서, 상기 실행 보호대상코드와 원본 보호대상코드는 상호 동일한 규칙이 적용되어 다수의 행중블록들 및 다수의 열중블록들로 구분되는 것을 특징으로 하는 변조 위치 검출 시스템.The system of claim 1, wherein the execution protection target code and the source protection target code are classified into a plurality of blocks of a row and a plurality of blocks of a heat applying the same rule. 원본 보호대상코드에 대응하는 실행 보호대상코드의 다수의 행중블록들의 고유값과 다수의 열중블록들의 고유값을 획득하는 제1단계와,
상기 실행 보호대상코드의 중블록들과 상기 원본 보호대상코드의 중블록들을 매칭하는 제2단계와,
상기 제2단계에서 매칭된 중블록에 대해 상기 실행 보호대상코드의 고유값과 기저장된 상기 원본 보호대상코드의 고유값을 비교하여 중블록별 변조 여부를 검출하고 상기 변조된 행중블록과 열중블록에 의해 변조위치가 결정되도록 하는 제3단계를 포함하며,
상기 원본 보호대상코드와 상기 실행 보호대상코드는 각각 다수의 소블록들로 구분되고, 각각의 소블록이 하나의 행중블록과 하나의 열중블록에 의해 결정되고,
상기 실행 보호대상코드와 원본 보호대상코드의 중블록별로 식별자를 부여하고, 상기 제2단계는 상기 식별자를 이용하여 상호 대응되는 상기 실행 보호대상코드의 중블록과 상기 원본 보호대상코드의 중블록을 매칭하는 것을 특징으로 하는 변조 위치 검출 방법.
Comprising: a first step of obtaining eigenvalues of blocks in a plurality of rows of an execution protection target code corresponding to an original protection target code and eigenvalues of blocks in a plurality of rows;
A second step of matching the middle blocks of the execution protection target code with the middle blocks of the source protection target code,
Comparing an eigenvalue of the execution protection target code with an eigenvalue of the original protection target code stored for the middle block matched in the second step to detect whether modulation is performed for each of the blocks, So that the modulation position is determined by the third step,
Wherein the source protection target code and the execution protection target code are divided into a plurality of small blocks, each small block is determined by one row block and one column block,
And a second step of assigning an identifier for each block of the execution protection target code and the source protection target code, Wherein the first and second modulation positions are matched with each other.
제 6 항에 있어서, 상기 실행 보호대상코드를 다수의 행중블록들과 다수의 열중블록들로 구분하는 제4단계와,
상기 제4단계에서 구분된 행중블록들 각각의 고유값과 열중블록들 각각의 고유값을 산출하여 상기 제2단계에 제공하는 제5단계를 더 포함한 것을 특징으로 하는 변조 위치 검출 방법.
7. The method of claim 6, further comprising: a fourth step of dividing the execution protection target code into a plurality of blocks and a plurality of blocks;
Further comprising: a fifth step of calculating an eigenvalue of each of the blocks in the row and an eigenvalue of each of the blocks in the row, and providing the calculated eigenvalues to the second step.
제 6 항에 있어서, 상기 제3단계의 비교결과 변조가 감지되면 변조된 행중블록과 열중블록에 의해 결정된 소블록을 변조위치로 판정하는 제6단계를 더 포함한 것을 특징으로 하는 변조 위치 검출 방법.The method as claimed in claim 6, further comprising a sixth step of determining a small block determined by a modulatable row block and a row block as a modulation position when the modulation result of the third step is sensed. 삭제delete 제 6 항에 있어서, 상기 실행 보호대상코드와 원본 보호대상코드는 상호 동일한 규칙이 적용되어 다수의 행중블록들 및 다수의 열중블록들로 구분되는 것을 특징으로 하는 변조 위치 검출 방법.7. The method of claim 6, wherein the execution protection target code and the source protection target code are classified into a plurality of blocks and a plurality of blocks in which the same rule is applied.
KR20130122629A 2013-10-15 2013-10-15 tampered position detection KR101512418B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130122629A KR101512418B1 (en) 2013-10-15 2013-10-15 tampered position detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130122629A KR101512418B1 (en) 2013-10-15 2013-10-15 tampered position detection

Publications (1)

Publication Number Publication Date
KR101512418B1 true KR101512418B1 (en) 2015-04-15

Family

ID=53034706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130122629A KR101512418B1 (en) 2013-10-15 2013-10-15 tampered position detection

Country Status (1)

Country Link
KR (1) KR101512418B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100125958A (en) * 2009-05-22 2010-12-01 주식회사 파일태그 Method of generating image file for forgery verification and method of forgery verification
US8190915B2 (en) * 2006-06-14 2012-05-29 Oracle International Corporation Method and apparatus for detecting data tampering within a database
KR20120110660A (en) * 2011-03-30 2012-10-10 주식회사 엔씨소프트 Method for detecting modification of computer program executing in memory
KR20130056594A (en) * 2011-11-22 2013-05-30 주식회사 안랩 Terminal device and malignant code treating method of the terminal device, vaccine server and malignant code treating method of the vaccine server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190915B2 (en) * 2006-06-14 2012-05-29 Oracle International Corporation Method and apparatus for detecting data tampering within a database
KR20100125958A (en) * 2009-05-22 2010-12-01 주식회사 파일태그 Method of generating image file for forgery verification and method of forgery verification
KR20120110660A (en) * 2011-03-30 2012-10-10 주식회사 엔씨소프트 Method for detecting modification of computer program executing in memory
KR20130056594A (en) * 2011-11-22 2013-05-30 주식회사 안랩 Terminal device and malignant code treating method of the terminal device, vaccine server and malignant code treating method of the vaccine server

Similar Documents

Publication Publication Date Title
US11303626B2 (en) Secure token passing via hash chains
CN108334753B (en) Pirate application verification method and distributed server node
US8955124B2 (en) Apparatus, system and method for detecting malicious code
KR101948721B1 (en) Method and apparatus for examining forgery of file by using file hash value
CN103368957B (en) Method and system that web page access behavior is processed, client, server
CN104541281A (en) Method and devices for selective RAM scrambling
EP2273417A2 (en) Device authority for authenticating a user of an on-line service
US20100333213A1 (en) Systems and Methods for Determining Authorization to Operate Licensed Software Based on a Client Device Fingerprint
CN109561085A (en) A kind of auth method based on EIC equipment identification code, server and medium
CN107005543A (en) System and method for preventing unwarranted network intrusions
CN102722672B (en) A kind of method and device detecting running environment authenticity
CN109684072A (en) The system and method for being used to detect the computing resource of malicious file based on machine learning model management
CN105760787A (en) System and method used for detecting malicious code of random access memory
CN104700029B (en) A kind of software online test method, device and server
CN114626033B (en) Implementation method and terminal of data security room
KR101235517B1 (en) Method for Detecting Modification of Computer Program Executing in Memory
CN108229210A (en) A kind of method, terminal and computer readable storage medium for protecting data
KR101512418B1 (en) tampered position detection
WO2022188602A1 (en) Data providing method, apparatus and system
KR101273370B1 (en) Application counterfeit prevention apparatus and method
CN115664772A (en) Access request processing method and device, computer equipment and storage medium
CN111104669A (en) Cracking detection method, device, system, server, terminal and storage medium
KR20150051833A (en) Method for detection software piracy and theft using partial information of executable file and apparatus using the same
CN110598378B (en) Global offset table measurement method, dynamic measurement method, related device and equipment
KR20190132598A (en) Method and apparatus for detecting fraud click using user agent

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180402

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 5