KR102341431B1 - Method for protecting protection target execution file and device for performing the method - Google Patents

Method for protecting protection target execution file and device for performing the method Download PDF

Info

Publication number
KR102341431B1
KR102341431B1 KR1020210101473A KR20210101473A KR102341431B1 KR 102341431 B1 KR102341431 B1 KR 102341431B1 KR 1020210101473 A KR1020210101473 A KR 1020210101473A KR 20210101473 A KR20210101473 A KR 20210101473A KR 102341431 B1 KR102341431 B1 KR 102341431B1
Authority
KR
South Korea
Prior art keywords
protected
executable file
area
decryption
data area
Prior art date
Application number
KR1020210101473A
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 KR1020210101473A priority Critical patent/KR102341431B1/en
Application granted granted Critical
Publication of KR102341431B1 publication Critical patent/KR102341431B1/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

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

Abstract

The present invention relates to a method for protecting an executable file to be protected and to a device for performing the same. The method for protecting an executable file to be protected includes: a step in which a protection process obtains information on a data area and a code area of the executable file to be protected; a step in which the protection process encrypts the data area and code area; and a step in which the protection process decrypts the encrypted data area and the code area based on a decryption request and decryption request data of a protected process based on the executable file to be protected.

Description

피보호 실행 파일을 보호하는 방법 및 이러한 방법을 수행하는 장치{Method for protecting protection target execution file and device for performing the method}{Method for protecting protection target execution file and device for performing the method}

본 발명은 피보호 실행 파일을 보호하는 방법 및 이러한 방법을 수행하는 장치에 관한 것이다. 구체적으로 피보호 실행 파일에 대한 암호화 및 복호화를 통해 피보호 실행 파일(또는 피보호 프로세스)을 보호하기 위한 방법 및 이러한 방법을 수행하는 장치에 관한 것이다.The present invention relates to a method for protecting an executable file to be protected and an apparatus for performing such a method. Specifically, it relates to a method for protecting a protected executable file (or a protected process) through encryption and decryption of the protected executable file, and an apparatus for performing such a method.

세계 소프트웨어 시장 성장과 더불어 각각의 소프트웨어 안에서 사용하는 핵심 알고리즘을 비롯한 주요 기술에 대한 지적재산보호 기술의 필요성이 크게 대두되고 있다. 더구나 실행 코드에 대한 역공학(reverse engineering) 기술이 계속 발전해감에 따라 소스 코드 없이 실행 코드 형태로 배포되는 대부분의 상용 소프트웨어들에 대한 지적재산권 침해 가능성이 더욱 커지고 있다. 특히 역공학 도구가 점차 자동화되어 역공학 분야에서 전문 지식이 없이도 소프트웨어의 핵심 기술들이 손쉽게 노출될 수 있다. 실행 코드 형태로 배포되는 소프트웨어에 대하여 악의적인 역공학을 피할 수 있도록 보호해주는 기법이 실행 코드 보호 기법이다.Along with the growth of the global software market, the need for intellectual property protection technology for key technologies including key algorithms used within each software is growing. Moreover, as the technology of reverse engineering of executable code continues to develop, the possibility of intellectual property infringement for most commercial software distributed in the form of executable code without source code is increasing. In particular, as reverse engineering tools are gradually automated, core technologies of software can be easily exposed without expertise in the field of reverse engineering. Executable code protection is a technique that protects software distributed in the form of executable code from malicious reverse engineering.

하지만, 기존의 실행 코드 보호 기법은 한계점을 가진다. 특히 실행 코드 보호 기법 중 암호화 기법의 경우, 실행 파일에 복호화를 위한 코드가 삽입되므로, 피보호 프로세스의 복호화 루틴이 노출된다는 단점을 가지고 있으며, 복호화를 위한 비밀키도 실행 파일 어딘가에 존재해야 하기 때문에 복호화 키가 노출될 우려가 있다는 문제점이 존재한다. However, the existing executable code protection scheme has limitations. In particular, in the case of the encryption method among executable code protection methods, since the code for decryption is inserted into the executable file, the decryption routine of the protected process is exposed. There is a problem that the key may be exposed.

본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.An object of the present invention is to solve all of the above problems.

또한, 본 발명은, 독립적으로 동작하는 보호 프로세스를 기반으로 피보호 실행 파일의 용량 증가 및 피보호 실행 파일를 기반으로 수행되는 피보호 프로세스의 실행 속도 저하 없이 피보호 프로세스의 임의적인 실행을 보호하는 것을 목적으로 한다.In addition, the present invention protects the arbitrary execution of the protected process without increasing the capacity of the protected executable based on the independently operating protected process and reducing the execution speed of the protected process performed based on the protected executable. The purpose.

또한, 본 발명은, 독립적으로 동작하는 보호 프로세스와 피보호 실행 파일을 실행시 생성되어지는 피보호 프로세스 간의 통신을 통해 피보호 실행 파일을 기반으로 수행되는 피보호 프로세스의 복호화를 수행하여 역공학으로부터 피보호 프로세스를 보호하는 것을 목적으로 한다.In addition, the present invention performs decryption of the protected process performed based on the protected executable file through communication between the protected process that operates independently and the protected process that is created when the protected executable file is executed to avoid reverse engineering. It aims to protect the process to be protected.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.A representative configuration of the present invention for achieving the above object is as follows.

본 발명의 일 실시예에 따르면, 피보호 실행 파일을 보호하는 방법은 보호 프로세스가 상기 피보호 실행 파일의 데이터 영역과 코드 영역에 대한 정보를 획득하는 단계, 상기 보호 프로세스가 상기 데이터 영역과 상기 코드 영역을 암호화하는 단계와 상기 보호 프로세스가 상기 피보호 실행 파일 기반의 피보호 프로세스의 복호화 요청 및 복호화 요청 데이터를 기반으로 암호화된 상기 데이터 영역 및 상기 코드 영역을 복호화하는 단계를 포함할 수 있다. According to an embodiment of the present invention, a method for protecting an executable file to be protected includes: a protection process obtaining information about a data area and a code area of the protected executable file; The method may include encrypting a region, and the protection process decrypting the data region and the code region encrypted based on a decryption request and decryption request data of the protected process based on the protected executable file.

한편, 상기 보호 프로세스는 복호화 OEP(Original Entry Point) 상에서 상기 데이터 영역 및 상기 코드 영역에 대한 복호화를 수행하고, 상기 피보호 프로세스는 상기 복호화 OEP 상에서 복호화된 이후, 디폴트 OEP 상에서 실행될 수 있다.Meanwhile, the protection process may decrypt the data area and the code area on a decryption original entry point (OEP), and the protected process may be performed on the default OEP after being decrypted on the decryption OEP.

또한, 상기 복호화 요청 데이터는 PID(process identification), 베이스 어드레스 및 피보호 실행 파일 경로에 대한 정보를 포함하고, 상기 PID는 상기 피보호 프로세스의 식별자이고, 상기 베이스 어드레스는 상기 피보호 프로세스의 메모리 시작 주소이고, 상기 피보호 실행 파일 경로는 상기 피보호 프로세스의 상기 데이터 영역 및 상기 코드 영역의 복호화를 위한 경로일 수 있다.In addition, the decryption request data includes information on a process identification (PID), a base address, and a path to a protected executable file, the PID is an identifier of the protected process, and the base address is a memory start of the protected process. address, and the path of the executable file to be protected may be a path for decrypting the data area and the code area of the process to be protected.

본 발명의 다른 실시예에 따르면, 피보호 실행 파일을 보호하는 사용자 장치는 보호 프로세스를 구동하기 위한 프로세서를 포함하고, 상기 프로세서는 상기 피보호 실행 파일의 데이터 영역과 코드 영역에 대한 정보를 획득하고, 상기 데이터 영역과 상기 코드 영역을 암호화하고, 상기 피보호 실행 파일 기반의 피보호 프로세스의 복호화 요청 및 복호화 요청 데이터를 기반으로 암호화된 상기 데이터 영역 및 상기 코드 영역을 복호화하도록 구현될 수 있다.According to another embodiment of the present invention, a user device for protecting an executable file to be protected includes a processor for running a protection process, the processor acquiring information about a data area and a code area of the executable file to be protected; , encrypt the data area and the code area, and decrypt the encrypted data area and the code area based on the decryption request and decryption request data of the protected process based on the protected executable file.

한편, 상기 보호 프로세스는 복호화 OEP(Original Entry Point) 상에서 상기 데이터 영역 및 상기 코드 영역에 대한 복호화를 수행하고, 상기 피보호 프로세스는 상기 복호화 OEP 상에서 복호화된 이후, 디폴트 OEP 상에서 실행될 수 있다.Meanwhile, the protection process may decrypt the data area and the code area on a decryption original entry point (OEP), and the protected process may be performed on the default OEP after being decrypted on the decryption OEP.

또한, 상기 복호화 요청 데이터는 PID(process identification), 베이스 어드레스 및 피보호 실행 파일 경로에 대한 정보를 포함하고, 상기 PID는 상기 피보호 프로세스의 식별자이고, 상기 베이스 어드레스는 상기 피보호 프로세스의 메모리 시작 주소이고, 상기 피보호 실행 파일 경로는 상기 피보호 프로세스의 상기 데이터 영역 및 상기 코드 영역의 복호화를 위한 경로일 수 있다.In addition, the decryption request data includes information on a process identification (PID), a base address, and a path to a protected executable file, the PID is an identifier of the protected process, and the base address is a memory start of the protected process. address, and the path of the executable file to be protected may be a path for decrypting the data area and the code area of the process to be protected.

본 발명에 의하면, 독립적으로 동작하는 보호 프로세스를 기반으로 피보호 실행 파일의 용량 증가 및 피보호 실행 파일를 기반으로 수행되는 피보호 프로세스의 실행 속도 저하 없이 피보호 프로세스의 임의적인 실행이 보호될 수 있다.According to the present invention, the arbitrary execution of the protected process can be protected without increasing the capacity of the protected executable file based on the independently operating protected process and reducing the execution speed of the protected process based on the protected executable. .

또한, 본 발명에 의하면, 독립적으로 동작하는 보호 프로세스와 피보호 실행 파일을 실행시 생성되어지는 피보호 프로세스 간의 통신을 통해 피보호 실행 파일을 기반으로 수행되는 피보호 프로세스의 복호화를 수행하여 역공학으로부터 피보호 프로세스가 보호될 수 있다.In addition, according to the present invention, reverse engineering is performed by performing decryption of the protected process performed based on the protected executable file through communication between the independently operated protected process and the protected process generated when the protected executable file is executed. The protected process can be protected from

도 1은 본 발명의 실시예에 따른 피보호 프로세스의 보호 방법을 나타낸 개념도이다.
도 2는 본 발명의 실시예에 따른 보호 프로세스의 동작을 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 보호 프로세스의 동작을 나타낸 개념도이다.
도 4는 본 발명의 실시예에 따른 피보호 실행 파일의 암호화 영역을 나타낸 개념도이다.
1 is a conceptual diagram illustrating a method of protecting a process to be protected according to an embodiment of the present invention.
2 is a conceptual diagram illustrating an operation of a protection process according to an embodiment of the present invention.
3 is a conceptual diagram illustrating an operation of a protection process according to an embodiment of the present invention.
4 is a conceptual diagram illustrating an encryption area of an executable file to be protected according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여 지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0012] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0010] Reference is made to the accompanying drawings, which show by way of illustration specific embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be implemented with changes from one embodiment to another without departing from the spirit and scope of the present invention. In addition, it should be understood that the location or arrangement of individual components within each embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention should be taken as encompassing the scope of the claims and all equivalents thereto. In the drawings, like reference numerals refer to the same or similar elements throughout the various aspects.

이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 바람직한 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, various preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily practice the present invention.

본 발명은 사용자 장치 상에서 보호 프로세스의 보호 대상인 피보호 실행 파일(예를 들어, exe, dll, bin)를 기반으로 수행되는 피보호 프로세스에 대한 역공학(reverse engineering)을 방지하기 위한 것이다.An object of the present invention is to prevent reverse engineering of a protected process performed on a user device based on a protected executable file (eg, exe, dll, bin) that is a protection target of the protected process.

이하, 본 발명의 실시예에서 피보호 실행 파일은 윈도우 실행 파일(예를 들어, exe, dll, bin)과 같은 프로세스의 실행을 위한 파일을 포함할 수 있다. 본 발명의 피보호 실행 파일은 윈도우 실행 파일뿐만 아니라 컴퓨터 상에서 특정 프로세스의 실행을 위한 다양한 실행 파일을 포함할 수 있다.Hereinafter, in an embodiment of the present invention, the executable file to be protected may include a file for executing a process such as a Windows executable file (eg, exe, dll, bin). The protected executable file of the present invention may include various executable files for executing a specific process on a computer as well as a Windows executable file.

본 발명에서 피보호 실행 파일의 코드 영역과 데이터 영역에 대한 암호화 및 피보호 실행 파일 기반으로 수행되는 피보호 프로세스에 대한 복호화를 통해 역공학으로부터 피보호 프로세스를 보호하는 프로세스는 보호 프로세스(protection process)라는 용어로 정의된다. 보호 프로세스는 피보호 프로세스와 별개로 사용자 장치 상에서 독립적으로 구동되어 피보호 프로세스를 보호할 수 있다.In the present invention, the process of protecting the protected process from reverse engineering by encrypting the code area and data area of the protected executable file and decrypting the protected process performed based on the protected executable file is a protection process. is defined in terms of The protection process may be independently driven on the user device separately from the protected process to protect the protected process.

피보호 실행 파일은 코드 영역과 데이터 영역을 포함할 수 있다. 코드 영역은 프로세스를 실행하기 위한 코드(또는 명령어)의 집합이고, 데이터 영역은 데이터의 집합이다. 코드 영역에는 개발자가 만든 알고리즘이 기계어 형태로 노출되어 있다. 코드 영역 상에서 노출된 기계어는 역공학을 통해 분석되므로 피보호 실행 파일이 어떤 기능을 수행하는지 알 수 있다. 즉, 피보호 실행 파일의 코드 영역, 데이터 영역이 분석되는 경우, 피보호 실행 파일/피보호 프로세스가 위험에 노출되게 된다.A protected executable file may include a code area and a data area. The code area is a set of codes (or instructions) for executing a process, and the data area is a set of data. In the code area, the algorithm created by the developer is exposed in the form of machine language. Since the machine language exposed on the code area is analyzed through reverse engineering, it is possible to know what function the protected executable file performs. That is, when the code area and data area of the protected executable file are analyzed, the protected executable file/protected process is exposed to risk.

종래의 기술에서는 기계어를 고스란히 노출되는 것을 방지하기 위해 코드 난독화(Code Obfuscation)라는 기술을 통해 기계어가 보호되었다. 그러나, 기존의 코드 난독화된 기계어도 역공학을 통해 분석이 가능하다는 문제점이 존재한다. 또한, 코드 난독화 데이터가 피보호 실행 파일에 삽입되므로 피보호 실행 파일 기반으로 수행되는 피보호 프로세스의 실행 속도 저하 뿐만 아니라 피보호 실행 파일의 용량이 증가하는 문제점이 있다.In the prior art, the machine language is protected through a technology called code obfuscation in order to prevent the machine language from being exposed as it is. However, there is a problem that an existing code obfuscation machine can be analyzed through reverse engineering. In addition, since the code obfuscation data is inserted into the executable file to be protected, there is a problem in that the execution speed of the process to be protected based on the executable file to be protected is lowered as well as the capacity of the executable file to be protected is increased.

본 발명에서는 코드 난독화, 피보호 실행 파일 실행시 속도 저하, 피보호 실행 파일 용량 증가 없이 역공학으로부터 피보호 실행 파일/피보호 프로세스를 보호하기 위한 방법이 개시된다.The present invention discloses a method for protecting a protected executable file/protected process from reverse engineering without code obfuscation, slowing down when executing the protected executable, or increasing the size of the protected executable.

도 1은 본 발명의 실시예에 따른 피보호 프로세스의 보호 방법을 나타낸 개념도이다.1 is a conceptual diagram illustrating a method of protecting a process to be protected according to an embodiment of the present invention.

도 1에서는 보호 프로세스를 기반으로 피보호 프로세스를 역공학으로부터 보호하기 위한 방법이 개시된다.1 discloses a method for protecting a protected process from reverse engineering based on the protection process.

도 1을 참조하면, 보호 프로세스(100)는 피보호 실행 파일(110)을 기반으로 수행되는 피보호 프로세스(150)와 독립적으로 운용되면서 피보호 프로세스(110)(또는 피보호 실행 파일(110))을 보호할 수 있다. 본 발명의 실시예에 따른 보호 프로세스(100)는 피보호 프로세스(150)와 별도로 독립적으로 구동되면서 피보호 실행 파일(100)에 대한 암호화 및 피보호 실행 파일(110)을 기반으로 수행되는 피보호 프로세스(150)에 대한 복호화를 통해 역공학을 통한 피보호 실행 파일(110)의 분석을 방지할 수 있다. 보호 프로세스(100)는 피보호 프로세스(150)와 별도로 독립적으로 구동되기 때문에 피보호 실행 파일(110)을 기반으로 수행되는 피보호 프로세스(150)의 실행 속도 저하가 없고 피보호 실행 파일(110)의 용량 증가도 없을 수 있다.Referring to FIG. 1 , the protected process 100 operates independently of the protected process 150 performed based on the protected executable 110 , and the protected process 110 (or the protected executable 110 ) ) can be protected. The protection process 100 according to an embodiment of the present invention is operated independently of the protected process 150 , and is encrypted for the protected executable file 100 and is performed based on the protected executable file 110 . Through the decryption of the process 150, it is possible to prevent the analysis of the protected executable file 110 through reverse engineering. Since the protected process 100 is driven independently from the protected process 150 , there is no reduction in the execution speed of the protected process 150 performed based on the protected executable 110 and the protected executable 110 . There may be no increase in the capacity of

우선 암호화를 위해 보호 프로세스(100)는 피보호 실행 파일(110)의 코드 영역(120)과 데이터 영역(130)을 구분할 수 있다. 보호 프로세스(100)는 피보호 실행 파일(110)의 구분된 코드 영역(120) 및 데이터 영역(130)에 대한 암호화를 수행할 수 있다. 암호화된 피보호 실행 파일(110)을 기반으로 수행되는 피보호 프로세스(150)는 구동시 보호 프로세스(100)로 복호화를 요청하고, 보호 프로세스(100)는 피보호 프로세스(150)의 요청에 따라 피보호 프로세스(150)을 복호화할 수 있다.First, for encryption, the protection process 100 may distinguish the code area 120 and the data area 130 of the executable file to be protected 110 . The protection process 100 may encrypt the separated code area 120 and the data area 130 of the executable file 110 to be protected. When the process to be protected 150 performed based on the encrypted executable file 110 to be protected is driven, the protected process 100 requests decryption, and the protected process 100 responds to the request of the protected process 150 . The protected process 150 may be decrypted.

피보호 실행 파일(110)이 구동되면 파일이 아닌 메모리에서 접근한다. 따라서, 암호화는 피보호 실행 파일(110)을 대상으로 수행되고, 복호화는 메모리 상에서 구동되는 피보호 실행 파일(110)을 기반으로 수행되는 피보호 프로세스(150)를 대상으로 수행될 수 있다.When the protected executable file 110 is driven, it is accessed from the memory rather than the file. Accordingly, encryption may be performed on the executable file 110 to be protected, and decryption may be performed on the process 150 to be protected based on the executable file 110 driven in the memory.

보호 프로세스(100)의 피보호 프로세스(150)에 대한 복호화가 없다면, 피보호 프로세스(150)는 실행될 수 없어서 피보호 프로세스(150)에 대한 임의적인 실행이 방지될 수 있다.If there is no decryption for the protected process 150 of the protected process 100, the protected process 150 cannot be executed, so that arbitrary execution of the protected process 150 can be prevented.

보호 프로세스(100)는 피보호 프로세스(150)에 대한 복호화시 별도의 복호화 OEP(Original Entry Point)를 설정하여 복호화를 수행할 수 있다. 피보호 프로세스(150)에 대한 복호화 완료 이후, 피보호 프로세스(150)는 피보호 프로세스(150)의 디폴트(default) OEP 상에서 구동될 수 있다. 복호화 이후, 디폴트 OEP는 피보호 프로세스(150)의 실행시 첫번째로 실행되는 주소이다.The protection process 100 may perform decryption by setting a separate decryption original entry point (OEP) when decrypting the process to be protected 150 . After the decryption of the protected process 150 is completed, the protected process 150 may be driven on a default OEP of the protected process 150 . After decryption, the default OEP is the address that is executed first when the protected process 150 is executed.

보호 프로세스(100)가 피보호 실행 파일(110)을 암호화시 디폴트 OEP에 대한 정보도 암호화된다. 따라서, 피보호 프로세스(150)의 복호화 요청시 보호 프로세스(100)는 복호화 OEP를 별도로 설정하여 피보호 프로세스(150)의 시작 위치를 변경시켜 복호화 OEP 상에서 복호화 절차를 수행할 수 있다.When the protection process 100 encrypts the executable file 110 to be protected, information on the default OEP is also encrypted. Accordingly, when a decryption request of the protected process 150 is requested, the protection process 100 may separately set the decryption OEP and change the start position of the protected process 150 to perform a decryption procedure on the decryption OEP.

보호 프로세스(100)는 피보호 실행 파일(110)에 대한 암호화시 별도의 통신 코드를 추가하고 통신 코드를 기반으로 피보호 프로세스(150)와 통신할 수 있다. 피보호 프로세스(150)는 통신 코드 기반의 통신을 통해 보호 프로세스(100)로 복호화를 요청할 수 있다. 피보호 프로세스(150)는 복호화 요청시 PID(process ID), 베이스 어드레스(BaseAddress), 피보호 실행 파일 경로와 같은 복호화 요청 데이터를 보호 프로세스(100)로 전송할 수 있다. PID는 피보호 프로세스(150)의 식별 정보이고, 베이스 어드레스는 피보호 프로세스(150)의 메모리 시작 주소이다. 피보호 실행 파일 경로는 피보호 프로세스(150)의 코드 영역과 데이터 영역에 대한 정보를 획득하기 위해 활용되는 정보이다.The protection process 100 may add a separate communication code when encrypting the protected executable file 110 and communicate with the protected process 150 based on the communication code. The process to be protected 150 may request decryption from the protection process 100 through communication code-based communication. The process to be protected 150 may transmit decryption request data such as a process ID (PID), a base address, and a path to an executable file to be protected to the protection process 100 when a decryption request is made. The PID is identification information of the protected process 150 , and the base address is a memory start address of the protected process 150 . The protected executable file path is information used to obtain information about the code area and data area of the protected process 150 .

보호 프로세스(100)는 PID를 기반으로 피보호 프로세스(150)를 식별하고 피보호 실행 파일 경로를 기반으로 피보호 프로세스(150)의 코드 영역(160)과 데이터 영역(170)에 대한 정보를 획득할 수 있다. 피보호 실행 파일(110)이 OS(operating system)에 의해 피보호 프로세스(150)로서 메모리에 로드될 경우, 보호 프로세스(100)의 개입 없이는 암호화된 코드 영역(120)과 데이터 영역(130)을 정상적으로 실행 가능 메모리 상에 재배치하지 못한다.The protected process 100 identifies the protected process 150 based on the PID and obtains information about the code area 160 and the data area 170 of the protected process 150 based on the protected executable file path. can do. When the protected executable file 110 is loaded into the memory as the protected process 150 by an operating system (OS), the encrypted code area 120 and the data area 130 are created without the intervention of the protected process 100 . Failure to relocate to executable memory normally.

따라서, 보호 프로세스(100)는 베이스 어드레스를 통해 정보를 얻는 것이 아니라 피보호 프로세스(150)의 피보호 실행 파일 경로를 통해 피보호 프로세스(150)의 코드 영역(160)과 데이터 영역(170)에 대한 정보를 획득한다.Accordingly, the protected process 100 does not obtain information through the base address, but rather in the code area 160 and data area 170 of the protected process 150 through the protected executable file path of the protected process 150 . get information about

구체적으로 보호 프로세스(100)는 수신한 피보호 프로세스(150)의 피보호 실행 파일 경로를 통해 코드 영역(160)과 데이터 영역(170)에 대한 정보를 획득하고, 코드 영역(160)과 데이터 영역(170)을 복호화할 수 있다. 보호 프로세스(100)는 복호화된 코드 영역(160)과 데이터 영역(170)을 메모리에 이미 로드되어 있는 코드 영역(160)과 데이터 영역(170)에 덮어씌워 피보호 프로세스(150)을 정상 작동시킬 수 있다.Specifically, the protection process 100 obtains information about the code area 160 and the data area 170 through the received executable file path of the protected process 150, and the code area 160 and the data area. (170) can be decrypted. The protection process 100 overwrites the decrypted code area 160 and the data area 170 with the code area 160 and the data area 170 already loaded in the memory to operate the protected process 150 normally. can

이러한 방법을 통해 보호 프로세스(100)는 피보호 프로세스(150)의 외부에서 독립적으로 동작하면서 피보호 실행 파일(110)들의 암호화 요청시 피보호 실행 파일(110)의 코드 영역(120)과 데이터 영역(130)을 암호화 해주는 역할을 수행하고, 피보호 프로세스(150)의 요청시에만 피보호 프로세스(150)에 대한 복호화를 수행하도록 함으로써 역공격으로 인한 임의적인 피보호 프로세스(150)의 실행으로부터 피보소 프로세스(150)를 보호할 수 있다.Through this method, the protection process 100 operates independently outside of the protected process 150 , and when an encryption request for the protected executable files 110 is requested, the code area 120 and the data area of the protected executable file 110 . By performing a role of encrypting 130 and decrypting the protected process 150 only upon request of the protected process 150, it is possible to avoid arbitrary execution of the protected process 150 due to a reverse attack. The boso process 150 can be protected.

보호 프로세스(100)와 피보호 프로세스(150)는 적어도 하나의 사용자 장치 상에서 구동되고, 적어도 하나의 사용자 장치의 적어도 하나의 프로세서를 기반으로 구동될 수 있다.The protected process 100 and the protected process 150 may be driven on at least one user device and based on at least one processor of the at least one user device.

도 2는 본 발명의 실시예에 따른 보호 프로세스의 동작을 나타낸 개념도이다.2 is a conceptual diagram illustrating an operation of a protection process according to an embodiment of the present invention.

도 2에서는 보호 프로세스가 피보호 실행 파일의 코드 영역과 데이터 영역을 판단하고, 암호화를 수행하는 방법이 개시된다.2 discloses a method in which a protection process determines a code area and a data area of an executable file to be protected, and performs encryption.

도 2를 참조하면, 보호 프로세스(200)는 피보호 실행 파일(210)의 코드 영역(220)과 데이터 영역(230)을 결정할 수 있다. 코드 영역(220)은 피보호 프로세스(250)을 실행하기 위한 코드(명령어)의 집합이고, 데이터 영역(230)은 피보호 프로세스(250) 관련 데이터의 집합이다. Referring to FIG. 2 , the protection process 200 may determine the code area 220 and the data area 230 of the executable file 210 to be protected. The code area 220 is a set of codes (instructions) for executing the protected process 250 , and the data area 230 is a set of data related to the protected process 250 .

코드 영역(220)과 데이터 영역(230)은 역공학을 통해 분석되는 영역이다. 따라서, 보호 프로세스(200)는 코드 영역(220)과 데이터 영역(230)을 암호화하여 역공학을 통한 피보호 실행 파일(210)에 대한 분석(또는 해킹)을 방지할 수 있다.The code area 220 and the data area 230 are areas analyzed through reverse engineering. Accordingly, the protection process 200 can prevent the analysis (or hacking) of the protected executable file 210 through reverse engineering by encrypting the code area 220 and the data area 230 .

암호화시 보호 프로세스(200)는 피보호 실행 파일(210)의 실행시 보호 프로세스(200)와 피보호 프로세스(250) 간의 통신을 위한 통신 코드(280)를 추가할 수 있다. 피보호 프로세스(250)는 통신 코드(280)를 기반으로 보호 프로세스(200)와 통신하여 보호 프로세스(200)로 복호화를 요청할 수 있다. 전술한 바와 같이 피보호 실행 파일(210)이 구동되면 파일이 아닌 메모리에서 접근하므로 암호화는 피보호 실행 파일(210)을 기반으로 수행되고, 복호화는 피보호 프로세스(250)를 기반으로 수행될 수 있다.The encryption protection process 200 may add a communication code 280 for communication between the protection process 200 and the protection target process 250 when the protected executable file 210 is executed. The protected process 250 may communicate with the protection process 200 based on the communication code 280 to request the protection process 200 for decryption. As described above, when the executable file to be protected 210 is driven, it is accessed from the memory rather than from the file, so encryption is performed based on the executable file 210 to be protected, and decryption can be performed based on the process 250 to be protected. have.

피보호 프로세스(250)는 복호화를 요청시 복호화 요청 데이터(예를 들어, PID, 베이스 어드레스, 실행 파일 경로)를 보호 프로세스(200)로 전송할 수 있다. 보호 프로세스(200)는 복호화 요청 데이터를 기반으로 피보호 프로세스(250)를 복호화할 수 있다.The protected process 250 may transmit decryption request data (eg, PID, base address, and executable file path) to the protection process 200 when decryption is requested. The protection process 200 may decrypt the protected process 250 based on the decryption request data.

도 3은 본 발명의 실시예에 따른 보호 프로세스의 동작을 나타낸 개념도이다.3 is a conceptual diagram illustrating an operation of a protection process according to an embodiment of the present invention.

도 3에서는 보호 프로세스가 피보호 실행 파일의 코드 영역과 데이터 영역에 대한 암호화를 수행한 이후, 피보호 프로세스의 코드 영역과 데이터 영역에 대한 복호화를 수행하는 방법이 개시된다.In FIG. 3 , a method of decrypting the code and data areas of the protected process after the protection process encrypts the code and data areas of the executable file to be protected is disclosed.

도 3을 참조하면, 보호 프로세스는 피보호 프로세스로부터 복호화 요청 및 복호화 요청 데이터를 수신할 수 있다.Referring to FIG. 3 , the protection process may receive a decryption request and decryption request data from a process to be protected.

복호화 요청 데이터는 PID(350), 베이스 어드레스(미도시), 피보호 실행 파일 경로(360)를 포함할 수 있다.The decryption request data may include a PID 350 , a base address (not shown), and a path to an executable file to be protected 360 .

PID(350)는 피보호 프로세스의 식별 정보이고, 베이스 어드레스(미도시)는 피보호 프로세스의 메모리 시작 주소이다. 베이스 어드레스(미도시)는 피보호 프로세스의 코드 영역/데이터 영역의 메모리 시작 주소 및 메모리 마지막 주소를 획득하기 위해 사용될 수 있다. 피보호 실행 파일 경로(360)는 코드 영역과 데이터 영역에 대한 정보를 획득하고, 코드 영역과 데이터 영역을 복호화하기 위해 사용될 수 있다.The PID 350 is identification information of a process to be protected, and a base address (not shown) is a memory start address of the process to be protected. The base address (not shown) may be used to obtain a memory start address and a memory end address of the code area/data area of the process to be protected. The protected executable file path 360 may be used to obtain information about the code area and the data area, and to decrypt the code area and the data area.

보호 프로세스는 피보호 프로세스의 복호화 요청에 따라 피보호 프로세스를 복호화할 수 있다.The protection process may decrypt the protected process according to the decryption request of the protected process.

보호 프로세스는 PID를 기반으로 피보호 프로세스를 식별한다(S300). 보호 프로세스는 피보호 프로세스의 식별 이후, 피보호 실행 파일 경로를 통해 피보호 프로세스의 코드 영역과 데이터 영역에 대한 정보를 획득하고(S310), 코드 영역과 데이터 영역을 복호화할 수 있다(S320).The protection process identifies the process to be protected based on the PID (S300). After identification of the process to be protected, the protection process may obtain information on the code area and data area of the protected process through the protected executable path (S310), and may decrypt the code area and the data area (S320).

피보호 프로세스에 대한 복호화를 수행시 복호화 OEP 상에서 복호화를 수행할 수 있다(S325). OEP는 프로그램 실행시 첫번째로 실행되는 주소이다. 본 발명에서 피보호 프로세스의 복호화가 수행되는 복호화 OEP는 실제 피보호 프로세스의 실행을 위한 시작 주소인 디폴트 OEP와 다른 위치이다. 코드 영역 및 데이터 영역에 대한 암호화가 되어있기 때문에 디폴트 OEP가 아닌 별도의 복호화 OEP 상에서 피보호 프로세스가 복호화된다. 복호화 OEP 상에서 복호화가 수행되고, 복호화 종료 이후, 디폴트 OEP로 복귀되어 피보호 프로세스가 정상 실행될 수 있다(S335).When decoding the process to be protected, decoding may be performed on the decryption OEP (S325). OEP is the address that is executed first when the program is executed. In the present invention, the decryption OEP in which the decryption of the protected process is performed is different from the default OEP, which is the starting address for the actual execution of the protected process. Since the code area and data area are encrypted, the protected process is decrypted on a separate decryption OEP rather than the default OEP. Decryption is performed on the decryption OEP, and after the decryption is completed, the default OEP is returned to normal execution of the protected process (S335).

구체적으로 피보호 실행 파일이 OS에 의해 피보호 프로세스로서 메모리에 로드될 경우, 보호 프로세스의 개입 없이는 암호화된 코드 영역과 데이터 영역을 정상적으로 실행 가능 메모리 상에 재배치하지 못한다. 따라서, 피보호 실행 파일 경로(360)를 통해 코드 영역과 데이터 영역에 대한 정보가 획득되어 복호화된 이후, 베이스 어드레스 기반으로 메모리에 로드되어 있는 코드 영역과 데이터 영역에 복호화된 코드 영역과 데이터 영역의 정보를 덮어씌워 피보호 프로세스가 정상 작동될 수 있다. Specifically, when a protected executable file is loaded into the memory as a protected process by the OS, the encrypted code area and data area cannot be normally relocated on the executable memory without the intervention of the protected process. Accordingly, after the information on the code area and the data area is obtained and decoded through the protected executable file path 360, the code area and the data area that are loaded into the memory based on the base address and decoded into the data area are separated. By overwriting the information, the protected process can operate normally.

도 4는 본 발명의 실시예에 따른 피보호 실행 파일의 암호화 영역을 나타낸 개념도이다.4 is a conceptual diagram illustrating an encryption area of an executable file to be protected according to an embodiment of the present invention.

도 4에서는 피보호 실행 파일의 코드 영역 및 데이터 영역이 개시된다. 4 shows a code area and a data area of an executable file to be protected.

도 4를 참조하면, 피보호 실행 파일의 구조 중 암호화할 영역은 섹션(section) 영역일 수 있다. 특히, 섹션 영역 중 텍스트 섹션(text section)(420)과 데이터 섹션(data section)(440)에 대한 암호화가 수행될 수 있다. 텍스트 섹션(420)은 피보호 실행 파일의 코드 영역을 의미하고, 데이터 섹션(440)은 피보호 실행 파일의 데이터 영역을 의미할 수 있다.Referring to FIG. 4 , an area to be encrypted among the structure of the executable file to be protected may be a section area. In particular, encryption may be performed on a text section 420 and a data section 440 among the section areas. The text section 420 may mean a code area of the executable file to be protected, and the data section 440 may mean a data area of the executable file to be protected.

코드 영역 및 데이터 영역에 대한 암호화를 위해 텍스트 섹션(420)과 데이터 섹션(440)의 크기와 주소에 대한 정보가 필요하다. 실행 파일의 포맷 형식으로 텍스트 섹션과 데이터 섹션의 주소와 크기에 대한 정보는 IMAGE_SECTION_HEADERS(420)를 통해 획득될 수 있다. 보호 프로세스는 텍스트 섹션(420)과 데이터 섹션(440)의 크기와 주소에 대한 정보를 기반으로 텍스트 섹션(코드 영역)(420), 데이터 섹션(데이터 영역)(440)을 암호화할 수 있다. 보호 프로세스는 코드 영역과 데이터 영역에 대한 암호화시 통신 코드를 추가할 수 있다.For encryption of the code area and the data area, information on the sizes and addresses of the text section 420 and the data section 440 is required. Information on the addresses and sizes of the text section and data section in the format of the executable file may be acquired through the IMAGE_SECTION_HEADERS 420 . The protection process may encrypt the text section (code region) 420 and data section (data region) 440 based on information about the size and address of the text section 420 and data section 440 . The protection process may add a communication code when encrypting the code area and the data area.

복호화시 피보호 프로세스는 통신 코드를 기반으로 보호 프로세스와 통신하기 위해 필요한 함수들의 주소를 획득할 수 있다. 피보호 프로세스가 획득된 함수를 기반으로 보호 프로세스와의 통신이 성공하면 보호 프로세스로 복호화를 요청할 수 있다. 피보호 프로세스는 복호화 요청시 복호화 요청 데이터를 보호 프로세스로 전송할 수 있다. 전술한 바와 같이 복호화 요청 데이터는 PID, 베이스 어드레스, 피보호 실행 파일 경로에 대한 정보를 포함할 수 있다.Upon decryption, the protected process may acquire addresses of functions necessary to communicate with the protected process based on the communication code. If the protected process succeeds in communication with the protected process based on the acquired function, the protected process can request decryption. The protected process may transmit the decryption request data to the protection process when a decryption request is made. As described above, the decryption request data may include information about a PID, a base address, and a path to an executable file to be protected.

보호 프로세스는 PID를 기반으로 피보호 프로세스를 식별한다. 보호 프로세스는 피보호 프로세스의 식별 이후, 피보호 실행 파일 경로를 통해 피보호 프로세스의 코드 영역과 데이터 영역에 대한 정보를 획득하고, 코드 영역과 데이터 영역을 복호화할 수 있다. 피보호 프로세스의 코드 영역과 데이터 영역에 대한 복호화는 복호화 OEP 상에서 수행될 수 있다.The protected process identifies the protected process based on the PID. After identification of the protected process, the protected process may obtain information about the code area and data area of the protected process through the protected executable file path, and may decrypt the code area and the data area. Decryption of the code area and the data area of the protected process may be performed on the decryption OEP.

보호 프로세스는 피보호 실행 파일 경로를 기반으로 피보호 프로세스의 코드 영역과 데이터 영역에 대한 정보를 획득하고, 코드 영역과 데이터 영역을 복호화할 수 있다. 이후, 보호 프로세스는 복호화된 코드 영역과 데이터 영역을 메모리에 이미 로드되어 있는 코드 영역과 데이터 영역에 덮어씌워 피보호 프로세스를 정상 작동시킬 수 있다. 보다 구체적으로 코드 영역과 데이터 영역에 대한 복호화가 종료된 이후, 피보호 프로세스의 디폴트 OEP로 돌아가 피보호 프로세스가 정상적으로 실행될 수 있다. The protected process may obtain information on the code area and data area of the protected process based on the path of the protected executable file, and may decrypt the code area and the data area. Thereafter, the protection process can operate the protected process normally by overwriting the decoded code area and data area with the code area and data area already loaded in the memory. More specifically, after the decoding of the code area and the data area is finished, the default OEP of the protected process may be returned to the protected process, and the protected process may be normally executed.

이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.The embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the computer software field. Examples of computer-readable recording media include hard disks, magnetic media such as floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floppy disks. medium), and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. A hardware device may be converted into one or more software modules to perform processing in accordance with the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.In the above, the present invention has been described with reference to specific matters such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments, and the present invention is not limited to the above embodiments. Those of ordinary skill in the art to which the invention pertains can make various modifications and changes from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and the scope of the spirit of the present invention is not limited to the scope of the scope of the present invention. will be said to belong to

Claims (6)

피보호 실행 파일을 보호하는 방법은,
보호 프로세스가 상기 피보호 실행 파일의 데이터 영역과 코드 영역에 대한 정보를 획득하는 단계;
상기 보호 프로세스가 상기 데이터 영역과 상기 코드 영역을 암호화하는 단계;
상기 보호 프로세스가 상기 피보호 실행 파일 기반의 피보호 프로세스의 복호화 요청 및 복호화 요청 데이터를 기반으로 암호화된 상기 데이터 영역 및 상기 코드 영역을 복호화하는 단계를 포함하되,
상기 보호 프로세스는 복호화 OEP(Original Entry Point) 상에서 상기 데이터 영역 및 상기 코드 영역에 대한 복호화를 수행하고,
상기 피보호 프로세스는 상기 복호화 OEP 상에서 복호화된 이후, 디폴트 OEP 상에서 실행되는 것을 특징으로 하는 방법.
How to protect a protected executable file:
obtaining, by a protection process, information about a data area and a code area of the executable file to be protected;
encrypting the data area and the code area by the protection process;
Decrypting, by the protection process, the encrypted data area and the code area based on a decryption request and decryption request data of the protected process based on the protected executable file;
The protection process performs decoding on the data area and the code area on a decryption original entry point (OEP),
The method of claim 1, wherein the protected process is performed on a default OEP after being decrypted on the decryption OEP.
삭제delete 제1항에 있어서,
상기 복호화 요청 데이터는 PID(process identification), 베이스 어드레스 및 피보호 실행 파일 경로에 대한 정보를 포함하고,
상기 PID는 상기 피보호 프로세스의 식별자이고,
상기 베이스 어드레스는 상기 피보호 프로세스의 메모리 시작 주소이고,
상기 피보호 실행 파일 경로는 상기 피보호 프로세스의 상기 데이터 영역 및 상기 코드 영역의 복호화를 위한 경로인 것을 특징으로 하는 방법.
According to claim 1,
The decryption request data includes information on a process identification (PID), a base address, and a path to an executable file to be protected,
The PID is an identifier of the protected process,
the base address is a memory start address of the protected process;
The method of claim 1, wherein the protected executable file path is a path for decrypting the data area and the code area of the protected process.
피보호 실행 파일을 보호하는 사용자 장치는,
보호 프로세스를 구동하기 위한 프로세서를 포함하고,
상기 프로세서는 상기 피보호 실행 파일의 데이터 영역과 코드 영역에 대한 정보를 획득하고,
상기 데이터 영역과 상기 코드 영역을 암호화하고,
상기 피보호 실행 파일 기반의 피보호 프로세스의 복호화 요청 및 복호화 요청 데이터를 기반으로 암호화된 상기 데이터 영역 및 상기 코드 영역을 복호화하도록 구현되고,
상기 보호 프로세스는 복호화 OEP(Original Entry Point) 상에서 상기 데이터 영역 및 상기 코드 영역에 대한 복호화를 수행하고,
상기 피보호 프로세스는 상기 복호화 OEP 상에서 복호화된 이후, 디폴트 OEP 상에서 실행되는 것을 특징으로 하는 사용자 장치.
The user device protecting the protected executable file is:
a processor for running a protection process;
The processor obtains information about the data area and the code area of the executable file to be protected,
encrypting the data area and the code area;
It is implemented to decrypt the encrypted data area and the code area based on the decryption request and decryption request data of the protected process based on the protected executable file,
The protection process performs decoding on the data area and the code area on a decryption original entry point (OEP),
and the protected process is executed on a default OEP after being decrypted on the decryption OEP.
삭제delete 제4항에 있어서,
상기 복호화 요청 데이터는 PID(process identification), 베이스 어드레스 및 피보호 실행 파일 경로에 대한 정보를 포함하고,
상기 PID는 상기 피보호 프로세스의 식별자이고,
상기 베이스 어드레스는 상기 피보호 프로세스의 메모리 시작 주소이고,
상기 피보호 실행 파일 경로는 상기 피보호 프로세스의 상기 데이터 영역 및 상기 코드 영역의 복호화를 위한 경로인 것을 특징으로 하는 사용자 장치.
5. The method of claim 4,
The decryption request data includes information on a process identification (PID), a base address, and a path to an executable file to be protected,
The PID is an identifier of the protected process,
the base address is a memory start address of the protected process;
The user device, characterized in that the path of the executable file to be protected is a path for decoding the data area and the code area of the process to be protected.
KR1020210101473A 2021-08-02 2021-08-02 Method for protecting protection target execution file and device for performing the method KR102341431B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210101473A KR102341431B1 (en) 2021-08-02 2021-08-02 Method for protecting protection target execution file and device for performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210101473A KR102341431B1 (en) 2021-08-02 2021-08-02 Method for protecting protection target execution file and device for performing the method

Publications (1)

Publication Number Publication Date
KR102341431B1 true KR102341431B1 (en) 2021-12-21

Family

ID=79165484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210101473A KR102341431B1 (en) 2021-08-02 2021-08-02 Method for protecting protection target execution file and device for performing the method

Country Status (1)

Country Link
KR (1) KR102341431B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150101811A (en) * 2014-02-27 2015-09-04 (주)스마일게이트엔터테인먼트 Method of unpacking protection with code separation and apparatus thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150101811A (en) * 2014-02-27 2015-09-04 (주)스마일게이트엔터테인먼트 Method of unpacking protection with code separation and apparatus thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
오명신 외 1명, ‘소프트웨어 불법복제방지를 위한 보안칩’, 정보보호학회논문지, 2002.08.* *

Similar Documents

Publication Publication Date Title
AU2006205315B2 (en) Method and portable storage device for allocating secure area in insecure area
KR102433011B1 (en) Method of apk file protection, apk file protection system performing the same, and storage medium storing the same
US7568112B2 (en) Data access control method for tamper resistant microprocessor using cache memory
KR100678927B1 (en) Method and portable storage device for allocating secure area in insecure area
US8966158B2 (en) Data protection technique that protects illicit copying of data maintained in data storage
US20030070083A1 (en) Method and device for encryption/decryption of data on mass storage device
US8307408B2 (en) System and method for file processing and file processing program
US20110271350A1 (en) method for protecting software
WO2005098570A1 (en) Execution device
CN106960156B (en) Data encryption and access method and device based on application program
KR20110034612A (en) Secure memory management system and method
JP4619361B2 (en) Recording medium having encryption instruction information
CN108064382B (en) Ukey-based software decryption method and terminal
JP2005018788A (en) Data protection method and data protection device for data storage/retrieval system
KR102341431B1 (en) Method for protecting protection target execution file and device for performing the method
KR20170022023A (en) An apparatus for obfuscating and restoring program execution code and method thereof
CN109344656B (en) Database data encryption/decryption method, device and equipment
CN104866740A (en) Static analysis preventing method and device for files
JP2007026105A (en) Device, method, and program for file management
CN107688729B (en) Application program protection system and method based on trusted host
JP2021048518A (en) Information processing device, information processing system, and control method of information processing device
JP2007172526A (en) Information processing system and information processing method
US11539503B2 (en) Container management for cryptanalysis attack protection
KR102147315B1 (en) Method for reading document, and apparatus applied to the same
CN114095236B (en) Key searching method, device, computing equipment and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant