KR20000054834A - Modification prevention system of program cooperated with operating system and compiler and method thereof - Google Patents

Modification prevention system of program cooperated with operating system and compiler and method thereof Download PDF

Info

Publication number
KR20000054834A
KR20000054834A KR1020000035930A KR20000035930A KR20000054834A KR 20000054834 A KR20000054834 A KR 20000054834A KR 1020000035930 A KR1020000035930 A KR 1020000035930A KR 20000035930 A KR20000035930 A KR 20000035930A KR 20000054834 A KR20000054834 A KR 20000054834A
Authority
KR
South Korea
Prior art keywords
program
operating system
password
file
approval
Prior art date
Application number
KR1020000035930A
Other languages
Korean (ko)
Other versions
KR100348027B1 (en
Inventor
류종렬
Original Assignee
류종렬
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 류종렬 filed Critical 류종렬
Priority to KR1020000035930A priority Critical patent/KR100348027B1/en
Publication of KR20000054834A publication Critical patent/KR20000054834A/en
Priority to PCT/KR2001/001093 priority patent/WO2002001358A1/en
Priority to AU2001266397A priority patent/AU2001266397A1/en
Application granted granted Critical
Publication of KR100348027B1 publication Critical patent/KR100348027B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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
    • G06F21/121Restricting unauthorised execution of programs
    • 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
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • G06F21/126Interacting with the operating system

Landscapes

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

Abstract

PURPOSE: A method for preventing a program change by linking an operating system and a compiler, is provided to have an equal enciphered module in the operating system operating a program produced in the compiler, to encipher and produce the program by using the enciphered module in compiling of a developer, and to decide whether the program is illegally changed by checking the program with a corresponding enciphered module in the operating system when the program is sold and executed. CONSTITUTION: A method for preventing a program change by linking an operating system and a compiler, comprises the steps as follows. A program developer insert enciphered information in a program with a standardized enciphered module between the operating system and compiler when compiling, after making a program code through a compiler program. The generated and completed program is installed in a computer, and the operating system decides whether the program is illegally changed by using the enciphered information when executing the program. If so, the execution of program is suspended, and if not, a normal execution is performed.

Description

운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템 및 그 방법{Modification prevention system of program cooperated with operating system and compiler and method thereof}Modification prevention system of program cooperated with operating system and compiler and method

본 발명은 소프트웨어의 불법변경 방지 방법에 관한 것으로, 특히 컴파일러와 운영체제가 연계되어 소프트웨어의 불법변경을 방지하는 시스템 및 방법에 관한것이다.The present invention relates to a method for preventing illegal alteration of software, and more particularly, to a system and method for preventing illegal alteration of software by linking a compiler and an operating system.

일반적으로 소프트웨어의 정품을 확인하기 위해 사용하던 제품번호 부여방식은 불법복제에 매우 취약하였다. 시디레코더(CD Recorder)를 사용하여 원본을 복사하거나, 하드 디스크에 카피하여도 제품번호만 있으면 설치가 가능하였기 때문이다. 이런 점을 보완하기 위해 시디의 특정트랙에 복사방지를 위한 코드를 입력하여 복제가 이루어지면 해당 코드를 변경시켜 설치를 원천적으로 막는 방법, 하드웨어적인 락을 걸어 해당 락이 존재하지 않으면 실행되지 않는 방법, 소프트웨어 판매회사의 확인을 거친 후에 제품번호를 부여 받아 실행하는 방법 등이 쓰이고 있다. 하지만, 이런 방법들은 모두 역어셈블러와 같은 분석툴을 이용해 프로그램 코드를 분석하여 어떤 루틴에 의해 불법 복사가 판정되는지 조사하는 것이 용이하며, 해당 루틴을 건너뛰게 하여 즉, 불법 복사 루틴을 실행하지 않게 하여 정상실행하는 방법이 공공연히 시행되고 있다. 이러한 프로그램 불법변경은 비단 정품 소프트웨어에서만 그치는 것이 아니라 평가판 프로그램과 같이 날짜제한이 있는 프로그램의 경우에도 이용되고 있으며, 평가판 프로그램의 날짜체크 루틴을 무력화시켜 정해진 날짜가 지나도 계속 사용할 수 있게 한다.In general, the serial numbering method used to verify the authenticity of software was very vulnerable to piracy. This is because it was possible to install the product by copying the original using a CD recorder or copying it to a hard disk. To compensate for this, if you copy the code for copy protection to a specific track of the CD and copy it, change the code to prevent the installation from being installed, apply a hardware lock, and do not run if the lock does not exist, After checking with the software vendor, the product number is given and executed. However, all of these methods make it easy to analyze the program code using an analysis tool such as an inverse assembler to investigate which routine determines illegal copying, skipping the routine, ie not running the illegal copy routines, and so on. The method of implementation is openly implemented. Such illegal changes are not only limited to genuine software, but are also used for programs with a limited date, such as trial programs, and disable the trial program's date checking routine so that they can continue to be used after a specified date.

이러한 불법변경을 방지하기 위한 종래의 방법중에는 프로그램의 데이타를 암호화 시키고, 불법변경이 발생하였을 경우에는 그 암호가 변경되어 정상실행되지 않게 하는 방법이 있으나, 이는 단지 암호화 루틴을 찾기 힘들뿐이지 불법변경을 방지할 수 있는 근본적인 해결책이 되지 못하며, 프로그램 개발자 입장에서도 프로그램 개발이외에 새로운 암호화 루틴을 개발해야하는 이중고를 겪도록하는 문제점을 여전히 갖고 있다.In order to prevent such illegal changes, there is a method of encrypting the data of the program, and if the illegal change occurs, the password is changed so that it does not execute normally, but it is only difficult to find the encryption routine. It is not a fundamental solution to prevent, and program developers still have the problem of having to develop new encryption routines besides program development.

본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로, 그 목적은 프로그램 개발툴인 컴파일러와 상기 컴파일러에서 제작된 프로그램이 운영되는 운영체제 상에 동일한 암호화 모듈을 갖도록 하고 개발자가 컴파일시에 컴파일러에 구비되어 있는 암호화 모듈을 사용해 프로그램을 암호화 시켜 제작하고, 그 프로그램이 판매된 후 실행될 시에 운영체제상에서 해당 암호화 모듈로 프로그램을 검사하여 불법변경이 되었는지 판단하도록 하는 운영체제와 컴파일러가 연계된 프로그램 변경 방지 시스템 및 방법을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and its object is to have the same encryption module on the operating system in which the compiler, which is a program development tool, and the program produced by the compiler, is provided in the compiler when the developer compiles. A system and method for preventing program change in which an operating system and a compiler are linked to produce a program by encrypting a program using an encryption module, and when the program is sold and executed, examines the program with the corresponding encryption module on the operating system to determine whether an illegal change has been made. To provide.

본 발명의 다른 목적은 프로그램 컴파일시에 운영체제의 승인을 받도록 하여 악의적 목적의 프로그램이 개발되지 못하도록하는 시스템 및 방법을 제공하는데 있다.Another object of the present invention is to provide a system and method for preventing the development of malicious programs by allowing the operating system to be approved at the time of program compilation.

도 1은 본 발명의 실현을 위한 시스템 구성도.1 is a system configuration for the realization of the present invention.

도 2는 본 발명에 의한 컴파일러상에서의 프로그램 암호화 과정을 나타낸 흐름도.2 is a flowchart illustrating a program encryption process on a compiler according to the present invention.

도 3은 본 발명에 의한 운영체제상의 프로그램 불법변경 확인과정을 나타낸 흐름도.3 is a flowchart illustrating a process for confirming illegal change of a program on an operating system according to the present invention.

도 4는 본 발명에 의한 운영체제 승인여부 및 악성프로그램 진단과정을 나타낸 흐름도.Figure 4 is a flow chart showing the operating system approval and malware diagnosis process according to the present invention.

< 도면의 주요부분에 대한 부호의 설명 ><Description of Symbols for Major Parts of Drawings>

100 : 운영체제 개발자 105 : 운영체제 승인 암호 생성부100: operating system developer 105: operating system approval password generation unit

110 : 악성프로그램 리스트110: malicious program list

115 : 프로그램 개발자 정보 데이터베이스115: program developer information database

120 : 컴파일러 개발자 140 : 프로그램 개발자120: Compiler Developer 140: Program Developer

145 : 운영체제 승인부 150 : 로컬암호 생성부145: operating system approval unit 150: local password generation unit

155 : 암호 생성부 160 : 프로그램 사용자155: password generation unit 160: program user

165 : 제어부 170 : 운영체제165 control unit 170 operating system

이와 같은 목적을 달성하기 위한 본 발명에 의한 프로그램 불법변경 방지 시스템의 특징은 프로그램 개발자가 작성한 코드를 컴파일 시키며 컴파일시 운영체제 승인을 받도록 하고, 컴파일된 파일의 정보를 암호화하여 불법변경 확인 암호를 생성하고 상기 컴파일된 파일에 저장하는 컴파일러; 및 상기 작성된 프로그램의 실행 기반이 되며, 상기 프로그램의 실행 전에 파일에 포함된 불법변경 확인 암호와 운영체제 승인 암호를 통해 불법변경 여부와 운영체제의 승인 여부를 확인하는 운영체제를 포함하여 이루어지는데 있다.The characteristic of the program illegal change prevention system according to the present invention for achieving the above object is to compile the code written by the program developer and to receive the operating system approval at compile time, to generate the illegal change confirmation password by encrypting the information of the compiled file A compiler for storing the compiled file; And an operating system that becomes a basis for executing the created program, and checks whether the illegal change is made and whether the operating system is approved through an illegal change confirmation password and an operating system approval password included in a file before execution of the program.

또한, 본 발명에 의한 프로그램 불법변경 방지 방법의 특징은 프로그램 개발자가 컴파일러 프로그램을 통해 프로그램 코드 작성을 완료한 후, 컴파일시 운영체제와 컴파일러사이에 표준화된 암호화 모듈로 프로그램에 암호화 정보를 삽입하는 제 1단계; 제 1 단계에서 생성 완료된 프로그램을 컴퓨터에 설치한 후, 프로그램 실행시 운영체제가 상기 암호화 정보를 이용해 불법변경되었는지 판단하는 제 2단계; 및 상기 판단결과 변경되었으면 프로그램 실행을 중지하고, 변경되지 않았을 경우 정상실행을 하는 제 3단계를 포함하여 이루어지는데 있다.In addition, a feature of the method for preventing illegal changes of a program according to the present invention is that a program developer inserts encryption information into a program by using a standardized encryption module between an operating system and a compiler after compiling the program code through a compiler program. step; A second step of determining whether an operating system is illegally changed using the encryption information when the program is executed after installing the program generated in the first step on a computer; And a third step of stopping the program execution if the result of the determination is changed and performing normal execution if it is not changed.

이하, 첨부한 도면을 통해 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실현을 위한 시스템 구성도이다.1 is a system configuration diagram for realizing the present invention.

본 발명의 실현을 위해서는 우선 운영체제 개발자(100)와 컴파일러 개발자(120) 사이에 표준화된 암호모듈을 사용할 것을 약정하여야 한다. 운영체제 개발자(100)가 운영체제에 포함될 다수의 표준화된 암호화 모듈을 컴파일러(120)에게 제공하면, 컴파일러 개발자(120)는 해당하는 암호화 모듈을 컴파일러에 포함시켜 프로그램 개발자(140)에게 판매하고 프로그램 개발자(140)가 프로그램 코드를 완성한 후, 컴파일시에 다수의 암호화 모듈 중 선택된 하나의 암호화 모듈로 프로그램 코드를 이용해 암호화를 하고 해당 암호화 코드를 프로그램내에 포함시킨다.In order to realize the present invention, it is first necessary to use a standardized cryptographic module between the operating system developer 100 and the compiler developer 120. When the operating system developer 100 provides the compiler 120 with a number of standardized cryptographic modules to be included in the operating system, the compiler developer 120 includes the corresponding cryptographic module in the compiler and sells it to the program developer 140 and the program developer ( After the 140 completes the program code, it encrypts the program code with one selected encryption module among a plurality of encryption modules at the time of compilation and includes the encryption code in the program.

상기 운영체제라 함은 윈도우즈, 유닉스, OS/2 등을 말하는 것이며, 컴파일러라 함은 비주얼 베이직이나, C++ 등의 프로그램 개발툴을 의미한다.The operating system refers to Windows, Unix, OS / 2 and the like, and the compiler refers to program development tools such as Visual Basic and C ++.

상기 컴파일러 개발자(120)가 개발한 컴파일러에는 상기 표준화된 암호화 모듈로 컴파일된 파일을 암호화하는 암호생성부(155), 운영체제 승인을 받기 위한 운영체제 승인부(145), 프로그램 개발과정에서 불필요한 운영체제 승인과정을 생략하기 위한 로컬암호 생성부(150)가 포함되어 있다.The compiler developed by the compiler developer 120 includes an encryption generation unit 155 for encrypting a file compiled with the standardized encryption module, an operating system approval unit 145 for receiving operating system approval, and an unnecessary operating system approval process in a program development process. Local password generation unit 150 for omitting is included.

상기 운영체제 개발자는 악성 프로그램의 제작을 막기위해 운영체제에서 승인을 해주는 승인암호 모듈(105)과 프로그램 개발자 정보를 저장하는 데이터베이스(115), 악성 프로그램에 대한 리스트를 저장하고 있는 데이터베이스(110)를 구비한다. 그리고, 운영체제 개발자가 사용자에게 판매하는 운영체제에는 프로그램이 변경되었는지 확인하기 위해 로드된 프로그램을 암호화 하는 다수의 모듈을 갖고 있는 암호 생성부(155), 운영체제 승인 여부를 확인하기 위해 운영체제 승인암호를 도출해내는 운영체제 승인 암호 생성부(105), 개발자 컴퓨터에서 유출된 프로그램인지 확인하기 위한 로컬 암호 생성부(150), 악성 프로그램 리스트에 등록되어 있는 것인지 확인하기 위한 악성 프로그램 리스트(110), 및 상기 각 암호 생성부를 제어하며 생성된 암호와 로드된 파일에 저장되어 있는 암호가 동일한지의 여부와 악성프로그램 리스트에 등록된 것인지의 여부를 판단하는 제어부(170)로 구성되어 있다.The operating system developer includes an approval password module 105 for approving the operating system to prevent the production of malicious programs, a database 115 for storing program developer information, and a database 110 for storing a list of malicious programs. . In addition, the operating system developer sells the operating system to the user, the password generation unit 155 having a plurality of modules for encrypting the loaded program to check whether the program has changed, and derives the operating system approval password to confirm whether the operating system approval Operating system approval password generation unit 105, local password generation unit 150 for checking whether the program leaked from the developer computer, malicious program list 110 for confirming whether registered in the malicious program list, and each of the password generation The controller 170 is configured to control the unit and determine whether the generated password and the password stored in the loaded file are the same and registered in the malicious program list.

상기 프로그램 개발자(140)는 프로그램 개발 완료후, 컴파일시에 인터넷망을 통해 운영체제 개발자(100)에게 운영체제 승인을 받고, 사용자(160)는 운영체제 개발자(100)로부터 악성 프로그램 리스트(110)를 받는다.The program developer 140 receives the operating system approval from the operating system developer 100 through the Internet network at the time of compilation after completion of program development, and the user 160 receives the malicious program list 110 from the operating system developer 100.

이하, 각 과정을 좀 더 상세히 설명한다.Hereinafter, each process will be described in more detail.

도 2는 본 발명에 의한 컴파일러상에서의 프로그램 암호와 과정을 나타낸 흐름도이다.2 is a flowchart illustrating a program cipher and a process in a compiler according to the present invention.

도시한 바와 같이 프로그램 코드 작성을 완료한 후에 실행파일이나 DLL(Dynamic Link Library)파일로 컴파일(S202)을 시켜 실행파일 또는 DLL파일을 생성(S203)한다. 이 때, 로컬(Local)로 컴파일 시킬 것인지 배포용으로 컴파일 시킬 것인지 선택(S200)한다. 이렇게 하는 이유는 프로그램 개발시 한 번에 프로그램이 완성되는 것이 아니라 많은 테스트와 버그(bug)를 수정하는 과정을 동반하기 때문에, 컴파일 할 때마다 운영체제 승인(차후 설명)과정을 거치면 프로그램 개발자의 번거로움을 초래할 수밖에 없기 때문이다.As shown in the drawing, the program code is completed and then compiled into an executable file or DLL (Dynamic Link Library) file (S202) to generate an executable file or DLL file (S203). At this time, whether to compile locally or compiled for distribution is selected (S200). The reason for this is that the program development is not completed at once, but involves many tests and bug fixes. Because it can only cause.

컴파일 유형의 선택(S200)이 완료되면, 프로그램의 암호화에 사용할 암호화 모듈을 선택(S201)한다. 이는 운영체제와 컴파일러 사이에 하나의 암호화 모듈만 사용할 때는 필요없는 단계이며, 좀 더 강력한 불법변경 방지를 실현시키기 위해서는 다수의 암호화 모듈을 사용하는 것이 바람직하다.When the selection of the compilation type (S200) is completed, the encryption module to be used for encryption of the program is selected (S201). This step is not necessary when only one encryption module is used between the operating system and the compiler. It is preferable to use multiple encryption modules in order to realize stronger anti-piracy prevention.

상기 단계(S200)에서 로컬용을 선택한 경우에는 프로그램 개발자의 하드웨어 정보를 이용한 설치암호(즉, 시스템을 구별하기 위한 유일한 암호)가 도출되고, 도출된 설치암호로부터 로컬 암호가 도출되며, 운영체제 승인정보가 초기화된다(S210). 그런다음 프로그램 정보(예를 들면, 프로그램 개발자명, 프로그램명 등)와 상기 선택된 암호화 모듈 정보로 암호화 모듈 암호를 도출한다(S211). 이는 앞에서도 설명하였지만, 하나의 암호화 모듈을 사용하였을 때는 필요없는 과정이며, 이렇게 암호화 모듈 암호를 도출하는 이유는 차후 운영체제 상에서 프로그램이 실행되었을 때, 사용된 암호화 모듈에 대한 정보가 없다면 갖고 있는 모든 암호화 모듈로 테스트를 하여야 하므로 수행성능이 떨어지기 때문이다. 그리고, 사용된 암호화 모듈에 대한 정보를 그대로 파일에 기록할 경우에는 불법변경이 쉬워지는 문제점도 발생할 수 있게 되므로, 안전장치의 의미로 암호화 모듈에 대한 정보를 암호화 하는 것이다.If local use is selected in step S200, an installation password (that is, a unique password for distinguishing a system) is derived using hardware information of a program developer, a local password is derived from the derived installation password, and operating system approval information. Is initialized (S210). Then, the encryption module cipher is derived from the program information (for example, program developer name, program name, etc.) and the selected encryption module information (S211). As described above, this process is not necessary when using a single encryption module, and the reason for deriving the encryption module password is that all the encryptions that the program has when the program is run on the operating system are not used. This is because the performance is reduced because the module must be tested. In addition, when the information on the used encryption module is recorded in a file as it is, a problem of easily changing illegally may occur. Therefore, the information on the encryption module is encrypted in the sense of a safety device.

이렇게 만들어진 로컬 암호, 운영체제 승인암호, 암호화 모듈 암호, 및 프로그램 정보가 컴파일된 파일에 저장(S212)된다. 그런다음 컴파일된 파일의 크기와 데이터를 상기 선택된 암호화 모듈로 암호화 시켜 파일크기 암호와 체크섬(checksum) 암호를 도출(S213)하고, 도출된 파일크기 암호 및 체크섬 암호가 컴파일된 파일에 저장(S214)된다. 상기 파일크기 암호는 파일의 크기가 변경되었는지 판단하기 위한 것이며, 상기 체크섬 암호는 파일크기는 변경시키지 않고 파일의 데이터 값만 변경시키는 것을 막기 위한 암호이다. 상기 암호화의 형태는 다양한 형태가 있을 수 있을 것이나, 이는 본 발명에서 추구하고자 하는 내용과 다르므로 이는 운영체제 개발자와 컴파일러 개발자 사이의 협의하에 결정되어야 할 것이다.The local password, the operating system approval password, the encryption module password, and the program information thus generated are stored in the compiled file (S212). Then, the size and data of the compiled file are encrypted with the selected encryption module to derive the file size password and the checksum password (S213), and the derived file size password and the checksum password are stored in the compiled file (S214). do. The file size password is used to determine whether the size of the file has been changed, and the checksum password is a password for preventing changing only the data value of the file without changing the file size. The type of encryption may be various, but this is different from what is intended in the present invention, which should be determined in consultation between the operating system developer and the compiler developer.

다음은 개발 단계가 아닌 배포용 프로그램의 컴파일 과정이다. 프로그램의 개발이 완료된 경우에는 컴파일을 할 때, 배포용 컴파일을 선택(S200)하며, 사용할 암호화 모듈을 선택(S201)한다. 프로그램 코드의 컴파일이 이루어진(S202, S203) 후, 인터넷망을 통해 운영체제 승인요청을 한다. 이 때, 운영체제 개발자에게 컴파일된 실행파일이나 DLL파일 및 프로그램 정보(예를 들면, 개발자명, 프로그램명 등)를 제공(S205)하고, 운영체제 개발자는 컴파일된 실행파일이나 DLL파일을 운영체제만의 암호화 모듈로 암호화하여 승인암호를 도출(S206)하고, 프로그램 개발자에게 운영체제 승인암호를 제공(S207)한다. 또한, 승인한 프로그램에 대해서는 받은 프로그램 정보, 승인일자를 운영체제 개발자의 데이터베이스에 저장하여 관리(S208)한다. 이렇게 하는 이유는 악의적 목적을 가진 사람이 자신의 정보를 노출하면서까지 운영체제의 승인을 받으려 하지 않을 것이므로, 이러한 프로그램 제작을 사전에 차단하기 위한 목적과, 향후 발견되는 악성 프로그램의 실행을 차단하기 위한 리스트 작성을 하기 위함이다. 상기 악성 프로그램이란 바이러스 프로그램(virus program)과 같이 사용자가 원치않는 결과를 초래하는 프로그램을 말하는 것이다.The following is the compilation process of the distribution program, not the development stage. When the development of the program is completed, when compiling, compilation for distribution is selected (S200), and an encryption module to be used is selected (S201). After the compilation of the program code (S202, S203), the operating system requests for approval through the Internet. At this time, the compiled executable file or DLL file and program information (for example, developer name, program name, etc.) are provided to the operating system developer (S205), and the operating system developer encrypts the compiled executable file or DLL file only for the operating system. Encrypt the module to derive the approval password (S206), and provides the operating system approval password to the program developer (S207). In addition, for the approved program, the received program information and the approval date are stored and managed in the database of the operating system developer (S208). The reason for this is that a malicious person will not be authorized by the operating system to expose his or her information. Therefore, the list is intended to prohibit the production of such programs in advance and to prevent the execution of malicious programs found in the future. This is for writing. The malicious program refers to a program such as a virus program that causes unwanted effects by the user.

운영체제 개발자로부터 운영체제 승인암호를 부여받게 되면 컴파일러는 로컬 암호를 초기화(S209)시킨후 상기 S211~S214의 과정을 거쳐 암호화된 프로그램을 제작한다.When the operating system developer receives an operating system approval password, the compiler initializes the local password (S209) and then generates an encrypted program through the processes of S211 to S214.

도 3은 본 발명에 의한 운영체제상의 프로그램 불법변경 확인과정을 나타낸 흐름도이며, 도 4는 본 발명에 의한 운영체제 승인여부 및 악성프로그램 진단과정을 나타낸 흐름도이다.3 is a flowchart illustrating a process of confirming illegal change of a program on an operating system according to the present invention, and FIG. 4 is a flowchart illustrating whether an operating system is approved and a malicious program diagnosis process according to the present invention.

상기 도 2의 과정을 통해 개발된 프로그램을 사용자가 자신의 컴퓨터에 설치완료한다. 해당 프로그램의 실행명령이 인가(S300)되면 운영체제의 프로그램 로더는 실행파일 또는 DLL파일을 호출(S301)하고 로드된 파일의 크기 및 체크섬을 도출(S302)한다. 또한, 파일에 포함되어 있는 프로그램 정보 및 암호화 모듈 암호를 독출한다(S303). 독출된 프로그램 정보와 운영체제에 포함되어 있는 암호화 모듈정보로 암호화 모듈 암호를 도출한다(S304). 그런다음 도출된 암호화 모듈 암호와 상기 독출된 암호화 모듈 암호가 동일한지 판단(S305)한다. 판단결과 동일 하지 않으면 운영체제 상의 모든 암호화 모듈로 테스트를 거쳤는지 확인(S306)을 하여 그렇다면 종료를 하고 그렇지 않다면 다시 다른 암호화 모듈로 상기 S304~305의 과정을 거친다. 상기 단계 S305에서 값이 동일하다면 그 모듈로 암호화가 이루어진 것이므로, 해당 모듈을 선택(S307)하고, 이를 이용해 상기 도출된 파일크기 정보와 체크섬 정보를 암호화하여 파일크기 암호와 체크섬 암호로 도출(S308)한다. 도출이 완료되면 해당 파일에 저장되어 있는 파일크기 암호와 체크섬 암호를 독출(S309)한다. 상기 도출된 파일크기 암호와 독출된 파일크기 암호가 동일한지 판단(S310)하여 동일하지 않으면 종료하고, 동일하면 도출된 체크섬 암호와 독출된 체크섬 암호도 동일한지 다시 판단(S311)한다. 판단결과 동일하지 않으면 종료하고, 동일하면 다음과정(A)으로 넘어간다. 이 과정을 통해 파일 변경이 이루어졌는지를 판단할 수가 있다.The user completes the installation of the program developed through the process of FIG. 2 on his computer. When the execution command of the corresponding program is authorized (S300), the program loader of the operating system calls the executable file or the DLL file (S301) and derives the size and checksum of the loaded file (S302). In addition, the program information and the encryption module password included in the file are read (S303). The encryption module password is derived from the read program information and the encryption module information included in the operating system (S304). Then, it is determined whether the derived encryption module cipher and the read encryption module cipher are the same (S305). If the result of the determination is not the same, it is checked whether all the encryption modules on the operating system have been tested (S306). If so, the procedure is terminated. If the values are the same in step S305, since the encryption is performed with the module, the corresponding module is selected (S307), and the derived file size information and the checksum information are encrypted using the derived module to derive the file size password and the checksum password (S308). do. When the derivation is completed, the file size password and the checksum password stored in the file are read (S309). If it is determined that the derived file size password and the read file size password are the same (S310), they are terminated if they are not the same. If the same, the derived checksum password and the read checksum password are the same again (S311). If the result is not the same, the process ends. If the result is the same, the process proceeds to the next step (A). This process can be used to determine if a file change has been made.

상기 과정을 통과하면, 이제는 운영체제의 승인을 받았는지 그리고, 악성프로그램의 리스트에 들어있는지 판단하는 과정을 거치게 된다.If you pass the above process, you are now in the process of determining whether you have been approved by the operating system and included in the list of malicious programs.

로드된 파일에서 로컬 암호를 독출(S400)한다. 독출된 로컬암호가 비어있는지 판단(S401)하여 비어있다면 운영체제의 승인을 받은 것이므로 로드된 파일의 정보를 운영체제에 포함되어 있는 - 상기 도 2 과정의 승인암호 도출에 사용된 암호화 모듈과 동일한 - 운영체제 승인 암호화 모듈로 암호화 하여 운영체제 승인암호를 도출하고 로드된 파일에 저장되어 있는 운영체제 승인암호를 독출(S402)한다. 도출된 운영체제 승인암호와 독출된 운영체제 승인암호를 비교(S403)하여 동일하지 않으면 종료하고 그렇지 않으면 다음단계로 넘어간다.The local password is read from the loaded file (S400). If the read local password is empty (S401), if it is empty, it is approved by the operating system, and thus the information of the loaded file is included in the operating system-the same as the encryption module used for deriving the approval password of FIG. By encrypting with the encryption module, the operating system approval password is derived, and the operating system approval password stored in the loaded file is read (S402). Comparing the derived operating system approval password and the read operating system approval password (S403) and ends if not the same, otherwise proceeds to the next step.

상기 S401단계에서 독출된 로컬암호가 비어있지 않다면 아직 개발중이라는 의미이므로, 개발자의 컴퓨터에 설치되어 있는지를 판단하여 운영체제의 승인을 받지 않고 비밀리에 유포시키려는 것인지 판단한다. 우선 설치된 컴퓨터의 설치암호를 도출하고 도출된 설치암호로 부터 로컬 암호를 도출(S404)한다. 도출된 로컬암호와 독출된 로컬암호가 동일한지 판단(S405)하여 동일하지 않으면, 개발자 컴퓨터에서 유출된 프로그램이므로, 프로그램을 종료시킨다. 상기 판단결과(S405)가 동일하면 아직도 개발중인 프로그램이므로 다음단계로 넘어간다.If the local password read in step S401 is not empty, it means that it is still under development. Therefore, it is determined whether it is installed in the developer's computer and whether it is secretly distributed without the approval of the operating system. First, the installation password of the installed computer is derived and a local password is derived from the obtained installation password (S404). If the derived local password and the read local password are the same (S405) and are not the same, the program is leaked from the developer computer, and thus the program is terminated. If the determination result (S405) is the same, the program is still under development and the process proceeds to the next step.

이제는 위 모든 과정을 거쳤음에도 불구하고 이러한 프로텍트를 모두 통과한 악성 프로그램을 진단하여 실행을 방지하기 위한 과정이다.Now, despite all the above steps, it is a process to diagnose and prevent the execution of malicious programs that have passed all these protections.

상기 로드된 파일에서 독출되어 있는 프로그램 정보가 운영체제 개발자로부터 다운받은 악성 프로그램 리스트에 존재하는 것인지 판단(S406)한다. 이 악성 프로그램 리스트는 운영체제 개발자가 입수한 악성프로그램에 대한 프로그램 정보를 새로이 업데이트 될 때마다 운영체제 사용자에게 제공하는 것이다. 상기 판단(S406)결과 존재하지 않으면 정상실행(S407)을 하고, 존재하면 종료를 하여 악성 프로그램의 실행을 방지한다.It is determined whether the program information read from the loaded file exists in the malicious program list downloaded from the operating system developer (S406). This list of malicious programs provides operating system users with updated program information about malicious programs obtained by operating system developers. If the determination (S406) does not exist, normal execution (S407) is performed. If present, the execution is terminated to prevent execution of the malicious program.

여기서 한 가지 문제가 되는 사항이 있는데, 만약 이 모든 과정을 테스트하고 제어하는 운영체제의 제어모듈이 불법변경의 대상이 되면 상기한 과정들이 의미가 없게 될 수도 있다. 따라서, 이러한 위험을 막기위해 운영체제 상의 타 모듈이 상기 제어모듈이 변화되었는가를 상기 도3의 과정과 동일하게 판단을 하도록 이중 안전장치를 강구하거나, 그보다 안전한 방법으로 롬 바이오스(ROM BIOS)에서 부팅 초기에 상기 제어모듈이 변경되었는지 테스트 하도록 하는 방법을 이용할 수 있다. 상기 롬 바이오스에는 하나의 운영체제에 국한되지 않기 위해 모든 운영체제의 제어모듈을 테스트 하는 루틴을 삽입하는 것이 바람직하다. 또한, 본 발명에 의한 불법변경 방지 방법은 앞에서도 언급하였지만, 암호화 루틴이 운영체제 개발자와 컴파일러 개발자 사이에 표준화되고 동일한 암호화 루틴을 사용하도록 협약이 이루어져야 하며, 종래의 프로그램들은 새로운 운영체제에서 실행되기 위해 변경절차를 거쳐야 한다. 따라서, 본 발명이 실현되기 위해서는 일련의 과도기적인 단계 - 종래의 프로그램과 암호화 모듈로 생성된 새로운 프로그램이 동시에 실행되는 - 가 수반되어야 한다. 또, 이러한 프로텍트 이외에 추가 변경방지 코드나 정품확인 코드를 넣는 것은 프로그램 개발자의 선택사항이므로, 이는 언급하지 않는다.There is one problem here. If the control module of the operating system that tests and controls all these processes is subject to illegal change, the above processes may become meaningless. Therefore, in order to prevent such a risk, a double safety device is devised so that other modules on the operating system can determine whether the control module has been changed in the same manner as in FIG. A method for testing whether the control module has been changed may be used. In the ROM BIOS, it is preferable to insert a routine for testing the control modules of all the operating systems so as not to be limited to one operating system. In addition, the illegal modification prevention method according to the present invention has been mentioned above, the agreement is to be made so that the encryption routines are standardized between the operating system developers and compiler developers and use the same encryption routines, and the conventional programs are modified to run on a new operating system. You have to go through the procedure. Therefore, the present invention must be accompanied by a series of transitional steps, in which a conventional program and a new program generated by an encryption module are executed simultaneously. Also, adding additional tamper-proof code or validation code in addition to these protections is optional for the program developer, so this is not mentioned.

이상 상술한 바와 같이, 본 발명에 의하면 소프트웨어 개발자는 소프트웨어의 불법변경을 막기위해 별도의 암호코드를 추가하려는 노력을 기울일 필요가 없게되며, 운영체제 차원에서 불법변경 여부를 판별하므로 불법변경을 원천적으로 막을 수 있게된다. 또한, 바이러스 프로그램에 의해 감염된 프로그램은 실행이 되지않아 바이러스의 확산을 막을 수 있으며, 그 이전에 운영체제로의 사전등록과정을 거쳐 승인을 받은 프로그램만 실행이 되므로, 바이러스 프로그램의 개발을 막을 수 있는 이점이 있다. 그리고, 이러한 보안을 뚫고 생성되는 바이러스라도 운영체제에서 악성 프로그램의 리스트를 작성해 배포하므로, 바이러스의 전파를 막을 수 있는 이점도 있다.As described above, according to the present invention, the software developer does not have to make an effort to add a separate encryption code to prevent illegal change of the software, and since it determines whether the illegal change is made at the operating system level, it prevents illegal change at the source. Will be. In addition, the program infected by the virus program can not prevent the spread of the virus, and only the program that has been approved through the pre-registration process to the operating system is executed before, it can prevent the development of the virus program There is this. In addition, even a virus generated through such security creates and distributes a list of malicious programs in the operating system, thereby preventing the virus from spreading.

Claims (14)

프로그램 불법변경 방지 시스템에 있어서,In the program illegal change prevention system, 프로그램 개발자가 작성한 코드를 컴파일 시키며 컴파일시 운영체제 승인을 받도록 하고, 컴파일된 파일의 정보를 암호화하여 불법변경 확인 암호를 생성하고 상기 컴파일된 파일에 저장하는 컴파일러; 및Compiler for compiling the code written by the program developer to receive the operating system approval at compile time, encrypts the information of the compiled file to generate an illegal change confirmation password and to store in the compiled file; And 상기 작성된 프로그램의 실행 기반이 되며, 상기 프로그램의 실행 전에 파일에 포함된 불법변경 확인 암호와 운영체제 승인 암호를 통해 불법변경 여부와 운영체제의 승인 여부를 확인하는 운영체제를 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템.An operating system and a compiler, which are based on the execution of the created program, and including an operating system for checking whether the illegal change and the operating system are approved through an illegal change confirmation password and an operating system approval password included in a file before executing the program. Program change prevention system. 제 1 항에 있어서, 상기 운영체제 승인은 프로그램 정보와 컴파일된 파일을 인터넷망을 통해 운영체제 개발자에게 제공하고, 운영체제 개발자로부터 컴파일된 파일의 운영체제 승인 암호를 수신받아 저장하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템.The operating system and compiler of claim 1, wherein the operating system approval provides program information and a compiled file to an operating system developer through an internet network, and receives and stores an operating system approval password of the compiled file from the operating system developer. Linked Program Change Prevention System. 제 1 항에 있어서, 상기 컴파일러는 운영체제 승인을 받기 위한 운영체제 승인부(145); 및The system of claim 1, wherein the compiler comprises: an operating system approval unit 145 for receiving operating system approval; And 컴파일된 파일의 정보를 이용해 불법변경 확인 암호를 생성하는 암호생성부(155)를 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템.And a password generation unit (155) for generating an illegal change confirmation password using information of the compiled file. 제 1 항에 있어서, 상기 운영체제는 프로그램이 변경되었는지 확인하기 위해 로드된 프로그램 정보를 암호화 하는 암호 생성부(155);The system of claim 1, wherein the operating system comprises: a password generation unit 155 for encrypting the loaded program information to confirm whether a program has been changed; 운영체제 승인 여부를 확인하기 위해 운영체제 승인암호를 도출해내는 운영체제 승인 암호 생성부(105);An operating system approval password generator 105 for deriving an operating system approval password to confirm whether the operating system is approved; 운영체제 개발자로부터 다운받은 악성 프로그램에 대한 정보를 저장하고 있는 악성 프로그램 리스트(110); 및A malicious program list 110 that stores information about malicious programs downloaded from an operating system developer; And 상기 각 암호 생성부(105, 155)를 제어하며 생성된 암호와 로드된 파일에 저장되어 있는 암호가 동일한지의 여부와 악성프로그램 리스트(110)에 등록된 것인지의 여부를 판단하는 제어부(165)를 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템.The controller 165 controls the password generators 105 and 155 and determines whether the generated password is identical to the password stored in the loaded file and whether the password is registered in the malicious program list 110. Program change prevention system linked to the operating system and the compiler, characterized in that it comprises a. 제 3 항 또는 제 4 항에 있어서, 프로그램의 개발이 완료되지 않았을 경우에 컴파일을 간소화 하며, 프로그램 개발자 시스템에서만 상기 프로그램이 실행되도록 하기위한 로컬 암호 생성부(150)를 더 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템.[5] The method of claim 3 or 4, further comprising a local password generation unit 150 for simplifying compilation when the development of the program is not completed and allowing the program to be executed only in a program developer system. Program change prevention system in which operating system and compiler are linked. 제 3 항 또는 제 4 항에 있어서, 상기 암호 생성부(155)는 다수개의 암호화 모듈을 갖고 있는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 시스템.The system of claim 3 or 4, wherein the password generator 155 includes a plurality of encryption modules. 소프트웨어의 불법변경을 방지하기 위한 방법에 있어서,In a method for preventing illegal change of software, 프로그램 개발자가 컴파일러 프로그램을 통해 프로그램 코드 작성을 완료한 후, 컴파일시 운영체제와 컴파일러사이에 표준화된 암호화 모듈로 프로그램에 암호화 정보를 삽입하는 제 1단계;A first step of the program developer inserting encryption information into the program by using a standardized encryption module between the operating system and the compiler after compiling the program code through the compiler program; 제 1 단계에서 생성 완료된 프로그램을 컴퓨터에 설치한 후, 프로그램 실행시 운영체제가 상기 암호화 정보를 이용해 불법변경되었는지 판단하는 제 2단계; 및A second step of determining whether an operating system is illegally changed using the encryption information when the program is executed after installing the program generated in the first step on a computer; And 상기 판단결과 변경되었으면 프로그램 실행을 중지하고, 변경되지 않았을 경우 정상실행을 하는 제 3단계를 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.Stopping the program execution if it is changed as a result of the determination, and performing a normal execution if it is not changed. 제 7 항에 있어서, 악성 프로그램의 실행을 방지하기 위하여 해당 프로그램에서 독출된 프로그램 정보가 악성 프로그램 리스트에 존재하는지를 판단하여 존재하면 실행을 중지하고 존재하지 않으면 정상실행하는 단계를 더 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.The method of claim 7, further comprising determining whether the program information read from the corresponding program exists in the malicious program list in order to prevent the execution of the malicious program, and stopping the execution if the program information exists. To prevent program changes associated with the operating system and compiler. 제 7 항에 있어서, 제 1단계는8. The method of claim 7, wherein the first step is 프로그램 개발자가 프로그램 코드 작성을 완료한 후에 컴파일을 시키는 제 1단계;A first step of compiling after the program developer completes writing the program code; 컴파일 옵션이 로컬용인지 배포용인지 판단하는 제 2단계;Determining whether the compilation option is for local use or for distribution; 제 2단계의 판단결과 로컬용일 경우, 프로그램 개발자 컴퓨터의 설치암호를 도출하고, 도출된 설치암호로부터 로컬 암호를 도출하며 운영체제 승인 정보를 초기화 하는 제 3단계;A third step of deriving an installation password of a program developer computer, deriving a local password from the derived installation password, and initializing operating system approval information when the determination result of the second step is for local use; 제 2단계의 판단결과 배포용일 경우, 컴파일된 파일과 프로그램 정보를 인터넷망을 통해 운영체제 개발자에게 전송하는 제 4단계;A fourth step of transmitting the compiled file and program information to an operating system developer through an internet network when the determination result of the second step is for distribution; 상기 전송이 완료되면 운영체제 개발자는 컴파일된 파일정보로 승인암호 생성모듈을 이용해 승인암호를 도출하여 프로그램 개발자에게 전송하는 제 5단계;A fifth step of, when the transmission is completed, the operating system developer derives the approval password using the approval password generation module with the compiled file information and transmits it to the program developer; 운영체제 승인된 프로그램에 대해서 프로그램 정보, 승인일자를 운영체제 개발자의 데이터베이스에 저장하는 제 6단계;A sixth step of storing program information and an approval date of the operating system approved program in a database of the operating system developer; 운영체제 개발자로부터 운영체제 승인암호를 부여받게 되면 로컬 암호를 초기화하는 제 7단계;A seventh step of initializing a local password when an operating system approval password is given from an operating system developer; 상기 로컬 암호, 운영체제 승인 암호와 프로그램 정보를 컴파일된 파일에 저장하는 제 8단계; 및An eighth step of storing the local password, an operating system approval password, and program information in a compiled file; And 컴파일된 파일의 크기와 데이터를 암호화 모듈로 암호화하여 파일크기 암호와 체크섬 암호를 도출하고 해당 파일에 저장하는 제 9단계를 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.And a ninth step of deriving the file size password and the checksum password by encrypting the compiled file size and data with an encryption module and storing the file size password and the checksum password in the corresponding file. 제 9 항에 있어서, 암호화 모듈이 다수개일 때 운영체제의 변경확인 수행을 향상시키기 위하여 프로그램 정보와 사용된 암호화 모듈을 이용해 암호화 모듈 암호를 도출하여 컴파일된 파일에 저장하는 단계를 더 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.10. The method of claim 9, further comprising: extracting the encryption module cipher using program information and the encryption module used to improve change performance of the operating system when there are a plurality of encryption modules, and storing them in a compiled file. To prevent program changes associated with the operating system and compiler. 제 7 항에 있어서, 제 2단계는8. The method of claim 7, wherein the second step is 사용자가 프로그램 설치를 완료하고 실행명령을 인가하는 제 1단계;A first step in which a user completes program installation and authorizes an execution command; 상기 실행명령이 인가되면 운영체제의 프로그램 로더에 의해 해당 파일을 메모리로 로드하는 제 2단계;A second step of loading a file into a memory by a program loader of an operating system when the execution command is authorized; 로드된 파일의 크기 및 체크섬을 도출하여, 도출된 파일크기 정보와 데이터 정보를 운영체제에 포함되어 있는 암호화 모듈로 암호화하여 파일크기 암호와 체크섬 암호를 도출하는 제 3단계;A third step of deriving a file size password and a checksum password by deriving a size and a checksum of the loaded file and encrypting the derived file size information and data information with an encryption module included in the operating system; 해당 파일에 저장되어 있는 파일크기 암호와 체크섬 암호를 독출하는 제 4단계;A fourth step of reading a file size password and a checksum password stored in the file; 상기 도출된 파일크기 암호와 독출된 파일크기 암호가 동일한지 판단하는 제 5단계;A fifth step of determining whether the derived file size password and the read file size password are the same; 상기 제 5단계의 판단결과 동일하면, 도출된 체크섬 암호와 독출된 체크섬 암호가 동일한지 판단하는 제 6단계;A sixth step of determining whether the derived checksum password and the read checksum password are the same if the determination result of the fifth step is the same; 상기 제 6단계의 판단결과 동일하면, 로드된 파일에서 로컬 암호를 독출하는 제 7단계;A seventh step of reading a local password from the loaded file if the determination result of the sixth step is the same; 상기 독출된 로컬암호가 비어있으면, 로드된 파일의 정보로 운영체제 승인암호 생성 모듈을 이용해 운영체제 승인암호를 도출하는 제 8단계;An eighth step of deriving an operating system approval password using an operating system approval password generation module with information of the loaded file if the read local password is empty; 상기 승인암호 도출이 완료되면 로드된 파일에 저장되어 있는 운영체제 승인암호를 독출하여 상기 도출된 운영체제 승인암호와 동일한지 판단하는 제 9단계;A ninth step of reading the operating system approval password stored in the loaded file when the derivation of the approval password is completed, and determining whether it is the same as the derived operating system approval password; 제 7단계에서 독출된 로컬암호가 비어있지 않으면, 설치된 컴퓨터의 설치암호를 도출하고 도출된 설치암호로 부터 로컬 암호를 도출하여 도출된 로컬암호와 독출된 로컬암호가 동일한지 판단하는 제 10단계를 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.If the local password read out in step 7 is not empty, the tenth step of deciding whether the derived local password and the read local password are the same by deriving the installation password of the installed computer and deriving the local password from the obtained installation password Program change prevention method associated with the operating system and the compiler comprising a. 제 11 항에 있어서, 암호화 모듈이 다수개일 경우, 사용된 암호화 모듈을 찾기위해 프로그램 실행시 독출된 프로그램 정보와 운영체제 상의 암호화 모듈을 이용해 암호화 모듈 암호를 도출하고, 상기 프로그램에서 독출된 암호화 모듈 암호와 동일한지 판단하여 사용된 암호화 모듈을 찾는 단계를 더 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.The encryption module cipher of claim 11, wherein when there are a plurality of encryption modules, the encryption module password is derived using the program information read when the program is executed and the encryption module on the operating system to find the encryption module used, and the encryption module password read by the program. The method of claim 2, further comprising the step of finding the encryption module used by determining whether it is the same. 제 11 항에 있어서, 운영체제의 부팅시 롬 바이오스에 의해 운영체제의 제어모듈이 변경되었는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.The method of claim 11, further comprising determining whether the control module of the operating system is changed by the ROM BIOS when the operating system is booted. 제 11 항에 있어서, 운영체제의 타 모듈이 운영체제의 제어모듈이 변경되었는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 운영체제와 컴파일러가 연계된 프로그램 변경방지 방법.12. The method of claim 11, further comprising the step of determining whether a control module of the operating system is changed by another module of the operating system.
KR1020000035930A 2000-06-28 2000-06-28 Modification prevention system of program cooperated with operating system and compiler and method thereof KR100348027B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020000035930A KR100348027B1 (en) 2000-06-28 2000-06-28 Modification prevention system of program cooperated with operating system and compiler and method thereof
PCT/KR2001/001093 WO2002001358A1 (en) 2000-06-28 2001-06-27 System for preventing illegal change of program with operation system and compiler cooperated, and method thereof
AU2001266397A AU2001266397A1 (en) 2000-06-28 2001-06-27 System for preventing illegal change of program with operation system and compiler cooperated, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000035930A KR100348027B1 (en) 2000-06-28 2000-06-28 Modification prevention system of program cooperated with operating system and compiler and method thereof

Publications (2)

Publication Number Publication Date
KR20000054834A true KR20000054834A (en) 2000-09-05
KR100348027B1 KR100348027B1 (en) 2002-08-07

Family

ID=19674398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000035930A KR100348027B1 (en) 2000-06-28 2000-06-28 Modification prevention system of program cooperated with operating system and compiler and method thereof

Country Status (3)

Country Link
KR (1) KR100348027B1 (en)
AU (1) AU2001266397A1 (en)
WO (1) WO2002001358A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879274B1 (en) * 2004-02-06 2009-01-19 엔이씨 일렉트로닉스 가부시키가이샤 Program tamper detecting apparatus, method for program tamper detection, and record medium readable by computer recorded program thereof
KR100929870B1 (en) * 2002-12-04 2009-12-04 삼성전자주식회사 How to keep BIOS security of computer system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2440199B (en) 2006-07-13 2008-11-12 British Telecomm Electronic programme guide for a mobile communications device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2143874C (en) * 1994-04-25 2000-06-20 Thomas Edward Cooper Method and apparatus for enabling trial period use of software products: method and apparatus for utilizing a decryption stub
KR970002625A (en) * 1995-06-15 1997-01-28 김광호 How to lock a program to prevent illegal copying of applications
JPH1031587A (en) * 1996-07-15 1998-02-03 Hitachi Ltd Data terminal equipment and computer program
JP3633747B2 (en) * 1997-04-11 2005-03-30 松下電器産業株式会社 Microprocessor program debugging device
JPH11243565A (en) * 1998-02-26 1999-09-07 Nec Telecom Syst Ltd System and method for changing service class in key telephone set
KR100332763B1 (en) * 1999-02-10 2002-04-17 구자홍 Copy protection apparatus and method for digital data player
KR100367094B1 (en) * 1999-10-22 2003-01-06 한국전자통신연구원 Online distribution method of computer programs

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929870B1 (en) * 2002-12-04 2009-12-04 삼성전자주식회사 How to keep BIOS security of computer system
KR100879274B1 (en) * 2004-02-06 2009-01-19 엔이씨 일렉트로닉스 가부시키가이샤 Program tamper detecting apparatus, method for program tamper detection, and record medium readable by computer recorded program thereof

Also Published As

Publication number Publication date
WO2002001358A1 (en) 2002-01-03
KR100348027B1 (en) 2002-08-07
AU2001266397A1 (en) 2002-01-08

Similar Documents

Publication Publication Date Title
US7958373B2 (en) Secure repository with layers of tamper resistance and system and method for providing same
US7188241B2 (en) Protecting software from unauthorized use by applying machine-dependent modifications to code modules
US7051200B1 (en) System and method for interfacing a software process to secure repositories
US7747877B2 (en) Tamper-resistant trusted Java virtual machine and method of using the same
US7254586B2 (en) Secure and opaque type library providing secure data protection of variables
JP5460699B2 (en) System and method for generating a white-box implementation of a software application
US7287166B1 (en) Guards for application in software tamperproofing
EP0556305B1 (en) A secure system for activating personal computer software at remote locations
US20030120938A1 (en) Method of securing software against reverse engineering
US8341751B2 (en) Software license management
EP0875814A2 (en) Information processing apparatus and method and recording medium
US8225290B2 (en) Systems and methods for regulating execution of computer software
US20110271350A1 (en) method for protecting software
WO2017114931A1 (en) A build system with plugins for encryption of application components
WO2002001333A2 (en) System and method for providing an individualized secure repository
KR100348027B1 (en) Modification prevention system of program cooperated with operating system and compiler and method thereof
WO1996018951A1 (en) Methods and apparatus for protection of executable programs, libraries and data
KR20030075018A (en) Device for generating tamper-resistant software and methods for self-integrity checking the software file and server-aided integrity checking in client-server environment
CN116964575A (en) Code deployment
CN108804880A (en) A kind of method for producing software and device
Jadhav Protecting the integrity of Android applications by employing automated self-introspection methods
AU695468B2 (en) Methods and apparatus for protection of executable programs, libraries and data
EP3398103A1 (en) A build system with plugins for encryption of application components
Muthana et al. A proof-producing machine-code analyzer for secure information flow
WO2004086200A1 (en) Multilevel software protection system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee