KR100318993B1 - An apparatus and method for preventing the pirated copy of software program - Google Patents

An apparatus and method for preventing the pirated copy of software program Download PDF

Info

Publication number
KR100318993B1
KR100318993B1 KR1019990005199A KR19990005199A KR100318993B1 KR 100318993 B1 KR100318993 B1 KR 100318993B1 KR 1019990005199 A KR1019990005199 A KR 1019990005199A KR 19990005199 A KR19990005199 A KR 19990005199A KR 100318993 B1 KR100318993 B1 KR 100318993B1
Authority
KR
South Korea
Prior art keywords
code
data
signal
unit
software
Prior art date
Application number
KR1019990005199A
Other languages
Korean (ko)
Other versions
KR20000056140A (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 KR1019990005199A priority Critical patent/KR100318993B1/en
Publication of KR20000056140A publication Critical patent/KR20000056140A/en
Application granted granted Critical
Publication of KR100318993B1 publication Critical patent/KR100318993B1/en

Links

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/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

Landscapes

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

Abstract

본 발명은 소프트웨어의 불법복사 방지를 위한 것으로, 한 소프트웨어에 구비되는 주요기능이 극히 다수의 문자코드에 의해서만 선택되도록 함에 따라, 소프트웨어의 불법복사시에는 프로그램의 주요기능이 수행되지 못하도록 함과 더불어, 해당 문자에 상응한 비밀코드의 해독에 어려움을 극대화시킬 수 있는 프로그램의 불법사용 방지 장치 및 방법에 관한 것이다.The present invention is to prevent illegal copying of the software, and the main functions provided in one software are selected only by a very large number of character codes, thereby preventing the main functions of the program from performing illegal copying of the software. The present invention relates to an apparatus and a method for preventing illegal use of a program that can maximize the difficulty in decrypting a secret code corresponding to a corresponding character.

이를 위한 본 발명은, 특정 메뉴의 기능선택이 다수의 연속된 코드를 통해 이루어질 수 있도록 하는 소프트웨어를 구비한 후, 상기 소프트웨어의 특정 기능을 선택하기 위한 연속된 코드를 키보드내지 별도의 버튼을 이용하여 생성되도록 하기 위한 스위칭부 및 상기 스위칭부에 의거 다수의 연속된 코드를 생성시켜 상기 소프트웨어의 특정 기능을 인에이블시키기 위한 코드발생부로 이루어져, 일개의 소프트웨어에 사용되는 주요기능을 다수의 문자 데이터에 의해 선택되도록 프로그램화되고, 다수의 문자 데이터가 사용자로부터 쉽게 선택되도록 코드 발생부를 구비하므로서, 프로그램의 무단 복제시 주요기능을 사용하지 못하도록 함에 따라, 소프트웨어의 무단 복제를 방지할 수 있는 효과를 얻는다.To this end, the present invention has a software for allowing a function selection of a particular menu to be made through a plurality of consecutive codes, and then using a keyboard or a separate button for successive codes for selecting a specific function of the software. And a code generator for generating a plurality of consecutive codes based on the switch and enabling a specific function of the software. The main function used for one software is generated by a plurality of character data. Since it is programmed to be selected and provided with a code generator so that a large number of character data can be easily selected by the user, the main function is prevented from being used for unauthorized duplication of the program, thereby obtaining an effect of preventing unauthorized duplication of the software.

Description

프로그램의 불법사용 방지 장치 및 방법{An apparatus and method for preventing the pirated copy of software program}An apparatus and method for preventing the pirated copy of software program}

본 발명은 소프트웨어의 불법복사 방지를 위한 것으로, 보다 상세히는 한 소프트웨어에 구비되는 주요기능이 극히 다수의 문자코드에 의해서만 선택되도록 함에 따라, 소프트웨어의 불법복사시에는 프로그램의 주요기능이 수행되지 못하도록 함과 더불어, 해당 문자에 상응한 비밀코드의 해독에 어려움을 극대화시킬 수 있는 프로그램의 불법사용 방지 장치 및 방법에 관한 것이다.The present invention is to prevent illegal copying of software, and more specifically, the main function provided in one software is selected only by a very large number of character codes, so that the main function of the program cannot be performed during illegal copying of software. In addition, the present invention relates to an apparatus and a method for preventing illegal use of a program that can maximize the difficulty in decrypting a secret code corresponding to a corresponding character.

일반적으로 소프트웨어의 무단복사는 해커들에 의해 이루어져, 기하급수적인 소프트웨어의 배포가 이루어진다. 따라서 프로그래머들은 보다 심화된 록(Lock) 프로그램을 개발하여 지적재산권을 보호토록 하고 있다. 이와 같은 록 프로그램은 크게 소프트웨어적인 방식과 하드웨어적인 방식으로 나뉘는데, 먼저 소프트웨어적인 록 프로그램을 살펴보면 다음과 같다.In general, unauthorized copying of software is made by hackers, and exponential distribution of software is achieved. Therefore, programmers are developing more advanced lock programs to protect their intellectual property. Such a lock program is divided into a software method and a hardware method. First, a software lock program is as follows.

첫 째, 오버 포맷(Over Format)기법이 있는데, 이는 디스크를 포맷(Format)할 때 표준 트랙 수보다 더 많은 수의 트랙을 포맷하여 임의의 정보를 그곳에 저장한 후, 프로그램 실행시 상기 정보의 유무로부터 복사본과 원본을 확인하는 것이다. 두 번째로는 언 포맷(Unformat) 기법이다. 이는 상기 오버 포맷 기법과는 달리 디스크의 일정 트랙을 포맷하지 않는 것으로, 프로그램 카피에 있어서 반드시 디스크의 포맷을 해야함을 이용한 기법이다.First, there is an Over Format technique, which formats a larger number of tracks than standard tracks when formatting a disk, stores arbitrary information there, and then executes the program when the program is run. Check the copy and original from The second is the unformat technique. Unlike the over-format technique, this does not format a certain track of the disc, and is a technique using a disc that must be formatted when copying a program.

그리고 세 번째로는 오버 섹터(Over Sector) 기법 및 언섹터(Unsector) 기법이 있는데, 상기 오버 포맷(Over Format)과 언포맷(Unformat) 기법에서 사용되는 트랙을 섹터에 이용한 것이다. 이는 디스크의 한 트랙당 8개의 섹터를 10개나 11개 정도로 증가시키거나, 원본 디스크의 특정 섹터를 생성시키지 않음으로서 사본 디스크와의 식별이 용이하도록 한 것이다.Third, there is an over sector technique and an unsector technique, in which a track used in the over format and unformat technique is used for a sector. This increases the number of eight sectors per track of the disk to ten or eleven, or does not create a specific sector of the original disk to facilitate identification with the copy disk.

이와 같은 소프트웨어적인 록 프로그램은 계속적인 발전을 거듭해 상기한 기법이외에도 수많은 프로그램이 사용되고 있다. 한편, 소프트웨어적인 록 프로그램과는 달리 복사하기가 상당히 까다로운 하드웨어적인 기법이 있는데, 이는 소프트웨어와 특정의 하드웨어 장치를 통해 프로그램의 실행이 이루어질 수 있도록 한 것이다.Such a software lock program has continually developed, and many programs are used in addition to the above-described techniques. On the other hand, unlike software lock programs, there are hardware techniques that are quite difficult to copy, allowing the execution of programs through software and certain hardware devices.

상기 하드웨어를 이용한 록 장치는 하드웨어 장치의 존재 여부로부터 록 기능을 수행하는 기법과 더불어, 하드웨어 장치에 정보를 기억해 놓고 프로그램 실행시 이를 체크하는 기법 및 프로그램의 일부 데이터를 수록하는 방법등이 사용되고 있다.As the lock device using the hardware, a method of performing a lock function from the presence or absence of a hardware device, a method of storing information in the hardware device and checking the program when the program is executed, and a method of storing some data of the program are used.

그러나 상기한 하드웨어를 이용한 록 프로그램은, 고가의 비용이 요구됨에 따라 사용빈도가 낮으며, 또한 이와 같은 하드웨어 장치를 체크하는 루틴을 제거하므로서 록 해제가 이루어질 수 있는 문제점이 야기되고 있다. 뿐만 아니라, 소프트웨어적인 록 프로그램 또한 카피 전용 프로그램을 사용한다든지, 별도의 장비를 통해 해커들로부터 쉽게 록 해제가 이루어지고 있는 실정에 있다. 따라서 소프트웨어의 불법 복사가 지속적으로 이루어지는 가운데, 지적재산의 보호가 나날이 시급해지는 것이다.However, the lock program using the above-described hardware has a low frequency of use as a high cost is required, and also causes a problem that unlocking can be performed by eliminating a routine for checking such a hardware device. In addition, the software lock program also uses a copy-only program or a separate device is easily unlocked from hackers. Therefore, the protection of intellectual property becomes more urgent as the illegal copying of software continues.

본 발명은 상기와 같은 문제점을 해결하기 위해 창출된 것으로, 본 발명의 목적은 소프트웨어의 불법 복사를 방지할 수 있는 프로그램의 불법사용 방지 장치및 방법을 제공함에 있다.The present invention was created to solve the above problems, and an object of the present invention is to provide an apparatus and method for preventing illegal use of a program that can prevent illegal copying of software.

이와 같은 목적을 달성하기 위한 본 발명의 제 1관점에 따른 프로그램의 불법사용 방지 장치는, 특정 메뉴의 기능선택이 다수의 연속된 코드를 통해 이루어질 수 있도록 하는 소프트웨어를 구비한 후, 상기 소프트웨어의 특정 기능을 선택하기 위한 연속된 코드를 입력수단을 이용하여 생성되도록 하기 위한 스위칭부; 및 상기 스위칭부에 의거 다수의 연속된 코드를 생성시켜 상기 소프트웨어의 특정 기능을 인에이블시키기 위한 코드발생부로 이루어진 것을 특징으로 한다.An apparatus for preventing illegal use of a program according to the first aspect of the present invention for achieving the above object includes a software for allowing a function selection of a specific menu to be made through a plurality of consecutive codes, and then specifying the software. A switching unit for generating a continuous code for selecting a function by using input means; And a code generator for generating a plurality of consecutive codes based on the switching unit to enable a specific function of the software.

또한, 상기 목적을 달성하기 위한 본 발명의 제 2관점에 따른 프로그램의 불법사용 방지 장치는, 상기 코드발생부는 스위칭부에 구비되는 별도의 입력수단을 통해 스위칭 신호를 입력받아 해당 코드신호를 출력할 수 있도록 시스템을 총괄 제어하기 위한 제어부; 상기 제어부의 제어신호로부터 코드신호를 출력할 수 있도록 해당 코드가 저장된 코드저장부; 및 상기 코드저장부에 저장된 코드가 직렬 신호로 출력될 수 있도록 하기 위한 시리얼 출력부로 구성된 것을 특징으로 한다.In addition, the illegal use prevention device of the program according to the second aspect of the present invention for achieving the above object, the code generation unit receives a switching signal through a separate input means provided in the switching unit to output the corresponding code signal A control unit for overall control of the system so that it can be controlled; A code storage unit for storing a code to output a code signal from a control signal of the controller; And a serial output unit for outputting the code stored in the code storage unit as a serial signal.

또한 상기 목적을 달성하기 위한 본 발명의 제 3관점에 따른 프로그램의 불법사용 방지 장치는, 상기 코드발생부는 스위칭부로부터 유입되는 스위칭 신호를 판별하여 특정의 스위칭 신호가 아닐 경우 스위칭부와 컴퓨터의 입출력포트간의 정상적인 신호가 유출입되도록 하고, 상기 특정의 스위칭 신호가 유입될 경우 코드 발생에 따른 인에이블 신호를 출력함과 더불어, 해당 코드를 상기 컴퓨터의 입출력포트로 전송하기 위한 제어부; 상기 제어부로 유입된 스위칭 신호가 해당 코드신호를 출력시키기 위한 특정의 스위칭 신호인가를 판단하기 위해 소정의 데이터가 저장된 데이터 저장부; 상기 데이터 저장부에 저장된 데이터와 상기 스위칭 신호에 의해 입력된 데이터와 상호 비교하기 위한 비교부; 상기 비교부의 결과치에 의한 제어부의 판단에 의거 다수개의 해당 코드신호를 직렬로 전송할 수 있도록 구비된 시리얼 출력부; 및 상기 시리얼 출력부를 통해 전송된 다수의 코드가 저장된 코드 저장부로 이루어진 것을 특징으로 한다.In addition, the apparatus for preventing illegal use of a program according to the third aspect of the present invention for achieving the above object, the code generation unit determines the switching signal flowing from the switching unit, if it is not a specific switching signal input and output of the switching unit and the computer A control unit for allowing a normal signal between ports to flow in and out, and outputting an enable signal according to code generation when the specific switching signal flows in, and transmitting a corresponding code to an input / output port of the computer; A data storage unit for storing predetermined data to determine whether the switching signal introduced into the controller is a specific switching signal for outputting a corresponding code signal; A comparator for comparing the data stored in the data storage with data input by the switching signal; A serial output unit provided to serially transmit a plurality of corresponding code signals based on a determination of a control unit based on a result of the comparison unit; And a code storage unit storing a plurality of codes transmitted through the serial output unit.

또한, 상기 목적을 달성하기 위한 본 발명의 제 4관점에 따른 프로그램 불법사용 방지 방법은, 입력수단을 통해 스위칭 신호가 입력될 경우 현재 입력되는 스위칭 신호가 특정 신호인가를 판단하기 위해 이미 저장되어 있는 데이터를 리드하는 데이터 리드과정; 상기 데이터 리드과정에서 읽어 들인 데이터가 상기 스위칭 신호에 상응한 데이터와 동일한가를 판단하는 입력데이터 판단과정; 및 상기 입력데이터 판단과정에서 판단된 결과 상기 저장되어 있는 데이터와 스위칭 신호에 상응한 데이터가 상호 동일함으로 판단될 경우 다수개의 문자코드를 직렬로 출력토록 하여 프로그램의 해당 기능을 선택하는 해당코드 출력과정으로 이루어진 것을 특징으로 한다.In addition, the program illegal use prevention method according to the fourth aspect of the present invention for achieving the above object, when the switching signal is input through the input means is already stored to determine whether the current switching signal is a specific signal A data reading process of reading data; An input data determination step of determining whether the data read in the data read process is the same as the data corresponding to the switching signal; And a corresponding code output process of selecting a corresponding function of a program by outputting a plurality of character codes serially when it is determined that the stored data and the data corresponding to the switching signal are the same as the result determined in the input data determination process. Characterized in that consisting of.

도 1은 본 발명의 장치를 제 1실시예로 나타낸 블록도.1 is a block diagram showing a device of the present invention as a first embodiment;

도 2는 도 1의 코드발생부를 나타낸 블록도.FIG. 2 is a block diagram illustrating a code generator of FIG. 1. FIG.

도 3은 본 발명의 장치를 제 2실시예로 나타낸 블록도.3 is a block diagram showing a device of the present invention in a second embodiment;

도 4는 도 3의 코드발생부를 나타낸 블록도.4 is a block diagram illustrating a code generator of FIG. 3.

도 5는 도 4에 나타낸 제어부의 동작상태를 설명하기 위한 플로우챠트이다.FIG. 5 is a flowchart for explaining an operation state of the control unit shown in FIG. 4.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

110,310 : 스위칭부 112,312 : 코드발생부110,310: switching unit 112,312: code generation unit

114,314 : 입출력 포트 116 : 중앙처리장치114,314: I / O port 116: central processing unit

118 : 메모리 110,416 : 제어부118: memory 110,416: control unit

214,422 : 코드저장부 210,414 : 펄스공급부214,422 code storage 210,414 pulse supply

216,424 : 시리얼 출력부 420 : 데이터 저장부216,424: serial output unit 420: data storage unit

418 : 비교부 412 : 3S-버퍼(쓰리스테이트 버퍼)418: comparison unit 412: 3S-buffer (three-state buffer)

이하, 본 발명을 첨부된 예시도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 제 1실시예로 나타낸 것으로, 별도의 버튼을 구비한 블록도이다. 도 2는 도 1의 코드발생부를 구체적으로 설명하기 위한 블록도이다. 먼저 도 1을 참조한 본 발명은, 특정 메뉴의 기능선택이 다수의 연속된 코드를 통해 이루어질 수 있도록 하는 소프트웨어를 구비한 후, 상기 소프트웨어의 특정 기능을 선택하기 위한 연속된 코드를 키보드 이외의 별도 버튼을 이용하여 출력되도록 하기 위한 스위칭부(110)와, 상기 스위칭부(110)에 의거 다수의 연속된 코드를 생성시켜 상기 소프트웨어의 특정 기능을 인에이블시키기 위한 코드발생부(112)와, 상기 코드발생부(112)에서 생성된 다수의 코드신호가 컴퓨터로 인가되도록 하기 위한 컴퓨터 하드웨어 즉, 입출력 포트(114), 중앙처리장치(116) 및 복제 방지용 프로그램이 저장된 메모리(118)로 구성된다.1 shows a first embodiment of the present invention, which is a block diagram having a separate button. FIG. 2 is a block diagram illustrating in detail the code generation unit of FIG. 1. First, the present invention with reference to FIG. 1 includes a software for allowing a function selection of a specific menu to be made through a plurality of consecutive codes, and then a separate button for selecting a specific function of the software. Switching unit 110 for outputting using the code, Code generation unit 112 for enabling a specific function of the software by generating a plurality of consecutive codes based on the switching unit 110, and the code Computer hardware, i.e., an input / output port 114, a central processing unit 116, and a memory for storing copy protection programs for allowing a plurality of code signals generated by the generation unit 112 to be applied to a computer, are stored.

그리고, 상기 입출력 포트(114)의 출력단에는 씨알티(CRT)로 영상신호를 출력하기 위한 비디오 포트(120)가 구비되며, 상기 코드발생부(112)는 다수의 코드가 저장된 코드저장부(214)와, 상기 코드저장부(214)의 저장 데이터를 입력조건에 따라 리드할 수 있도록 시스템을 총괄 제어하는 제어부(212)와, 상기 코드저장부 (214)의 저장 데이터를 직렬로 전송하기 위한 시리얼 출력부(216) 및 시스템의 동기 제어를 위한 펄스 공급부(210)로 이루어진다.In addition, the output terminal of the input / output port 114 is provided with a video port 120 for outputting a video signal to the CRT (CRT), the code generator 112 is a code storage unit 214 is stored a plurality of codes ), A controller 212 for overall control of the system so that the stored data of the code storage unit 214 can be read according to an input condition, and a serial for serially transmitting the stored data of the code storage unit 214. The output unit 216 and the pulse supply unit 210 for synchronous control of the system.

이하, 상기 구성에 따른 본 발명의 작용을 설명하면 다음과 같다.Hereinafter, the operation of the present invention according to the above configuration will be described.

예컨대, 사용자가 복제 방지용 프로그램인 '한글 윈도우'를 구입하여 자신의 컴퓨터에 인스톨하였을 경우, 그리고 상기 한글 윈도우에는 복제 방지를 위해 소정 기능 일예로, '파일 열기' 또는 '파일 저장하기'내지 '끝내기' 등의 기능을 특정의 신호에 의해 그 기능을 발휘할 수 있도록 프로그램화 되어있음을 전제로 한다. 또한 상기 특정의 신호라 함은, 다수개의 키입력 신호로써 'Alt-C,T,G,B,3,4,W,R, B,N,T,X,X,X,'내지 '엔터키, 쉬프트키, %, $, @....'와 같은 다수의 연속된 키신호를 일예로 할 수 있다. 즉, 사용자가 상기 '한글 윈도우'를 사용하기 위해 '파일열기'를 수행하기 위해서는 반드시 상기한 다수개의 키신호를 연속적으로 입력해야 하는 것이다.For example, when a user purchases a copy protection program 'Hangul Windows' and installs it on his computer, and the Hangul window has a predetermined function for copy protection. For example, 'open file' or 'save file' to 'end' It is assumed that a function such as' is programmed to display the function by a specific signal. In addition, the specific signal means a plurality of key input signals such as' Alt-C, T, G, B, 3, 4, W, R, B, N, T, X, X, X, 'to' enter. Multiple consecutive key signals such as keys, shift keys,%, $, @ .... 'may be taken as an example. That is, in order for the user to perform 'open file' to use the 'Hangul window', the plurality of key signals must be continuously input.

물론, 이와 같은 키신호의 입력에 있어서, 소정의 극히 짧은 동작시간을 가미하여, 사용자가 직접 키신호를 입력하지 못하도록 하여도 본 발명의 요지를 벗어나지는 않을 것이다.Of course, in the input of such a key signal, even if the user does not input the key signal directly by adding a predetermined extremely short operation time, the present invention will not depart from the gist of the present invention.

사용자는 이와 같은 복제 방지가 가능한 프로그램을 상기 메모리(118)에 인스톨하며, 중앙처리장치(116)는 프로그램의 초기기능을 수행한다. 프로그램을 인스톨함에 있어서는, 상기 스위칭부(110)에 구비된 키보드(Key board)를 통해 컴퓨터내에 장착된 입출력포트(I/O Port : 114)의 제2포트(P2)로 제어 명령(a)을 입력한다. 중앙처리장치(116)는 스위칭부(110)의 키보드로부터 명령어를 입력받기 위해 계속적으로 입출력포트(114)의 제2포트(P2)를 사용하도록 제어한다.The user installs such a copy-protection program in the memory 118, and the central processing unit 116 performs an initial function of the program. In installing the program, the control command a is sent to the second port P2 of the I / O port 114 mounted in the computer through a keyboard provided in the switching unit 110. Enter it. The CPU 116 continuously controls to use the second port P2 of the input / output port 114 to receive a command from the keyboard of the switching unit 110.

즉, 프로그램을 인스톨함에 있어서는 통상적인 과정에 의해 복제가 가능하게 되는 것이다. 그러나, 사용자가 인스톨 되어진 프로그램을 사용하고자 '파일 열기'를 수행할 경우, 스위칭부(110)에 별도로 구비된 버튼을 동작시킨다. 이때, 버튼에 의해 생성된 스위칭 신호(b)는 제어부(212)로 입력되어, 다수의 코드가 저장된 코드저장부(214)로 제어신호(g)를 전송한다. 그리고 제어부(212)는 현재 버튼신호가 입력되었음을 컴퓨터의 중앙처리장치(116)로 알리도록 소정의 출력신호(j)를 생성한다.In other words, in installing the program, the duplication is possible by the usual procedure. However, when the user performs 'open file' to use the installed program, the user operates a button provided separately in the switching unit 110. In this case, the switching signal b generated by the button is input to the controller 212 and transmits the control signal g to the code storage unit 214 in which a plurality of codes are stored. The control unit 212 generates a predetermined output signal j to inform the central processing unit 116 of the computer that the current button signal is input.

이로인해, 중앙처리장치(116)는 입출력 포트(114)로 입력포트의 게이트를 제어하기 위해 제어신호(e)를 출력한다. 제어신호(e)는 제2포트(P2)를 통해 유입되는신호를 차단토록 하며, 제1포트(P1)를 통해 신호의 유입이 이루어지도록 한다.As a result, the central processing unit 116 outputs a control signal e to the input / output port 114 to control the gate of the input port. The control signal e blocks the signal flowing through the second port P2 and allows the signal to flow through the first port P1.

이때, 코드저장부(214)에 저장된 다수의 데이터는 펄스 공급부(210)의 동기신호(f)에 의거 데이터를 출력한다(h). 이러한 데이터는 시리얼 출력부(216)로 인가되며, 제어부(212)는 시리얼 출력부(216)로 유입되는 데이터가 직렬로 전송되도록 제어신호(i)를 인가한다. 따라서, 시리얼출력부(216)는 코드 저장부(214)에 저장된 다수의 데이터를 입출력 포트(114)의 제1포트(P1)로 전송시킨다.In this case, the plurality of data stored in the code storage unit 214 outputs data based on the synchronization signal f of the pulse supply unit 210 (h). The data is applied to the serial output unit 216, and the control unit 212 applies a control signal i to transmit the data flowing in the serial output unit 216 in series. Accordingly, the serial output unit 216 transmits a plurality of data stored in the code storage unit 214 to the first port P1 of the input / output port 114.

중앙처리장치(116)는 입출력포트(114)를 통해 유입되는 다수의 시리얼 코드데이터를 입력받는데, 이러한 연속된 코드는 '한글 윈도우'의 '파일 열기'기능을 선택하는 것이다.The central processing unit 116 receives a plurality of serial code data flowing through the input and output port 114, this continuous code is to select the 'open file' function of the 'Korean window'.

한편, 본 발명의 제 2실시예로서, 앞서 설명된 별도의 버튼이 없이 기존의 키보드를 통해 본 기능을 수행하고자 할 경우를 설명하면 다음과 같다.On the other hand, as a second embodiment of the present invention, a case where you want to perform this function through the existing keyboard without a separate button described above are as follows.

도 3은 본 발명의 제 2실시예에 따른 블록도이다. 도 4는 도 3의 코드발생부를 보다 구체적으로 설명하기 위한 블록도이다. 도 5는 도 4의 제어부의 동작상태를 설명하기 위한 플로우챠트이다. 먼저, 도 3 및 도 4를 참조한 본 발명은, 별도의 버튼이 구비되지 않고 키보드에 의해 다수의 명령을 생성하기 위한 스위칭부(310)와, 상기 스위칭부(310)와 직렬 접속되어 프로그램의 특정 기능을 수행하기 위한 해당 코드를 생성하기 위한 코드 발생부(312)와, 상기 코드 발생부(312)에서 발생된 코드가 컴퓨터로 유입될 수 있도록 구비되는 입출력포트 (314) 및 중앙처리장치(116), 메모리(118), 비디오 포트(120)로 이루어진다.3 is a block diagram according to a second embodiment of the present invention. 4 is a block diagram for describing the code generator of FIG. 3 in more detail. 5 is a flowchart for describing an operation state of the controller of FIG. 4. First, the present invention with reference to FIGS. 3 and 4 is not provided with a separate button, and is provided with a switching unit 310 for generating a plurality of commands by a keyboard, and connected in series with the switching unit 310 to specify a program. A code generator 312 for generating a corresponding code for performing a function, an input / output port 314 and a central processing unit 116 provided to allow a code generated by the code generator 312 to flow into a computer. ), Memory 118, and video port 120.

그리고, 상기한 코드 발생부(312)는 동기제어를 수행하기 위한 펄스공급부(414)와, 시스템을 총괄 제어하기 위한 제어부(416)와, 스위칭부(310)로부터 유입되는 특정의 스위칭 신호를 검출하기 위해 검출용 데이터를 저장하는 데이터 저장부(420)와, 상기 데이터 저장부(420)의 저장 데이터와 현재 입력되는 스위칭 신호를 상호 비교하기 위한 비교부(418)와, 다수의 코드가 저장된 코드 저장부(422) 및 상기 코드 저장부(422)의 데이터를 직렬로 전송하기 위한 시리얼 출력부(424)로 이루어진다.The code generator 312 detects a pulse supply unit 414 for performing synchronous control, a controller 416 for overall control of the system, and a specific switching signal flowing from the switching unit 310. In order to compare the data storage unit 420 for storing the data for detection, the comparison unit 418 for mutually comparing the stored data of the data storage unit 420 and the currently input switching signal, a code stored a plurality of codes A storage unit 422 and a serial output unit 424 for serially transmitting the data of the code storage unit 422.

한편, 상기 스위칭부(110)에서 발생되는 키신호와 코드 저장부(422)에서 생성되는 코드 데이터가 컴퓨터의 입출력포트(314)로 원활하게 전송되기 위해 3S-버퍼(3-State buffer : 412)가 구비된다.On the other hand, the key signal generated in the switching unit 110 and the code data generated in the code storage unit 422 is 3S-buffer (3-State buffer: 412) to be smoothly transmitted to the input and output port 314 of the computer Is provided.

이하, 상기 구성에 따른 본 발명의 작용을 도 5와 더불어 설명하면 다음과 같다.Hereinafter, the operation of the present invention according to the above configuration will be described with reference to FIG. 5.

사용자는 스위칭부(310)를 통해 상기한 '한글 윈도우'를 인스톨한다. 인스톨하기 위한 다수의 명령어는 코드발생부(312)로 유입되는데, 코드발생부(312)에 구비되는 제어부(416)는 현재 명령어가 입력될 경우 특정 명령어 즉, 키보드의 특정 키신호인가를 검출한다.The user installs the 'Korean window' through the switching unit 310. A plurality of commands for installation are introduced to the code generator 312, the control unit 416 provided in the code generator 312 detects whether a specific command, that is, a specific key signal of the keyboard when the current command is input. .

상기한 특정의 명령어는 이미 데이터 저장부(420)에 저장되어 있으며, 제어부(416)는 현재 유입되는 명령어와 데이터 저장부(420)에 저장된 명령어를 비교한다. 이는 제어부(416)가 비교부(418)로 데이터 비교에 따른 제어신호를 출력함과 동시에, 데이터 저장부(420)의 데이터를 비교부(418)로 전송되도록 제어한다.The specific command is already stored in the data storage unit 420, and the controller 416 compares the currently introduced command with the command stored in the data storage unit 420. The controller 416 outputs a control signal according to the data comparison to the comparator 418 and simultaneously controls the data of the data storage 420 to be transmitted to the comparator 418.

만약, 사용자가 특정의 키신호를 입력하지 않고, 프로그램을 인스톨하기 위한 명령어를 입력할 경우, 제어부(416)는 데이터 저장부(420) 및 비교부(418)를 통해 특정의 키신호가 아님을 인식한다. 따라서 제어부(416)는 상기 3S-버퍼(412)로 로우레벨의 신호를 출력한다. 이는 스위칭부(310)에서 생성되는 스위칭 신호(a) 즉, 다수의 명령어를 컴퓨터의 입출력포트(314)로 전송(c)토록 하는 것이다.If the user inputs a command for installing a program without inputting a specific key signal, the controller 416 determines that the key signal is not a specific key signal through the data storage unit 420 and the comparison unit 418. Recognize. Therefore, the controller 416 outputs a low level signal to the 3S-buffer 412. This is to transmit a switching signal (a) generated by the switching unit 310, that is, a plurality of commands (c) to the input / output port 314 of the computer.

따라서, 입출력포트(314)로 유입되는 명령어는 중앙처리장치(116)로 해당 명령어(d)를 전송함에 따라 '한글 윈도우'를 인스톨한다(단계 S101). 이와 같이 인스톨된 프로그램은 사용자가 시작메뉴를 선택하는데, 일예로 '파일 열기'를 하고자 할 경우, 키보드에 구비된 특정의 키를 동작시킨다(단계 S103).Accordingly, the command flowing into the input / output port 314 installs a 'Korean window' as the command d is transmitted to the CPU 116 (step S101). The program installed as described above allows the user to select a start menu. For example, when a user wants to open a file, a specific key provided in the keyboard is operated (step S103).

상기한 키신호는 제어부(416)로 입력되며, 제어부(416)는 현재 입력된 키신호가 이미 세팅되어 있는 키신호인가를 판단하기 위해, 데이터 저장부(420)의 저장 데이터를 리드하여 비교부(418)를 통해 상호 데이터의 동일여부를 판단한다(S105, S107). 이때, 제어부(416)의 판단결과가 스위칭부(310)에서 생성된 데이터와 데이터 저장부(420)에 저장된 데이터가 상호 동일함으로 판단할 경우, 3S-버퍼(412)로 하이레벨의 신호를 출력한다.The key signal is input to the controller 416, and the controller 416 reads the stored data of the data storage unit 420 to determine whether the currently input key signal is a key signal that is already set. In step 418, it is determined whether mutual data are the same (S105 and S107). At this time, when the determination result of the controller 416 determines that the data generated by the switching unit 310 and the data stored in the data storage unit 420 are the same, the high level signal is output to the 3S-buffer 412. do.

3S-버퍼(412)는 스위칭부(310)에서 출력되는 스위칭신호를 차단토록 하며, 시리얼 출력부(424)에서 출력되는 신호를 컴퓨터의 입출력 포트로 전송토록 제어된다. 이때, 제어부(416)는 코드 저장부(422)에 저장된 다수의 코드 즉, 상기 제1실시예에서 일예로 나타낸 다수의 문자데이터를 시리얼 출력부(424)로 전송토록 제어한다.The 3S-buffer 412 blocks the switching signal output from the switching unit 310 and is controlled to transmit the signal output from the serial output unit 424 to the input / output port of the computer. At this time, the control unit 416 controls to transmit a plurality of codes stored in the code storage unit 422, that is, a plurality of character data shown as an example in the first embodiment, to the serial output unit 424.

코드 저장부(422)에서 출력되는 데이터는 병렬로 전송되며, 시리얼 출력부(424)는 펄스공급부(414)로부터 얻어지는 펄스신호에 따라 직렬로 출력된다. 이와 같은 시리얼 출력부(424)의 출력신호는 3S-버퍼(412)로 인가되며, 제어부(416)는 3S-버퍼(412)를 하이레벨로서 인에이블 시키고 있기 때문에, 코드저장부(422)에 저장된 다수의 코드 데이터는 입출력포트(314)로 전송된다(단계 S109).Data output from the code storage unit 422 is transmitted in parallel, and the serial output unit 424 is serially output according to the pulse signal obtained from the pulse supply unit 414. The output signal of the serial output unit 424 is applied to the 3S-buffer 412, and since the control unit 416 enables the 3S-buffer 412 as a high level, the code storage unit 422 The stored plurality of code data is transmitted to the input / output port 314 (step S109).

중앙처리장치(116)는 상기 코드 데이터를 입력받아, '한글 윈도우'의 '파일 열기'기능을 수행토록 한다. 이는 'Alt-O'를 통해 '파일 열기'기능을 수행하던 것을 일예로 제시된 'Alt-C,T,G,B,3,4,W,R,B,N,T,X,X,X,'와 같은 다수의 문자 데이터를 통해 '파일 열기'기능을 수행토록 하는 것이다(단계 S111).The CPU 116 receives the code data and performs the 'open file' function of the 'Korean window'. 'Alt-C, T, G, B, 3,4, W, R, B, N, T, X, X, X' is an example of performing 'open file' function through 'Alt-O'. 'Open file' function through a plurality of character data, such as ',' (step S111).

즉, 프로그램의 주요 기능을 선택함에 있어, 극히 복잡 다양한 문자입력을 통해 이루어질 수 있도록 하고, 사용자가 특정 키를 선택할 경우 상기 코드 발생부(312)에서 다수의 코드가 출력되도록 하는 것이다.That is, in selecting the main function of the program, it is possible to be made through a very complex character input, and when the user selects a specific key, the code generator 312 is to output a plurality of codes.

따라서, 개발된 프로그램은 자유로이 배포가능하며, 원본 프로그램은 상기한 코드 발생부(312)를 구비한 소정의 보드를 사용토록 하므로서, 프로그램의 무단복제를 방지하는 것이다.Therefore, the developed program can be freely distributed, and the original program can use a predetermined board including the code generator 312 to prevent unauthorized copying of the program.

이상 설명된 본 발명은, 일개의 소프트웨어에 사용되는 주요기능을 다수의 문자 데이터에 의해 선택되도록 프로그램화되고, 다수의 문자 데이터가 사용자로부터 쉽게 선택되도록 코드 발생부를 구비하므로서, 프로그램의 무단 복제시 주요기능을 사용하지 못하도록 함에 따라, 지적재산의 무단 복제를 방지할 수 있는 효과를 얻는다.The present invention described above is programmed to select main functions used in one piece of software by a plurality of character data, and includes a code generator so that a plurality of character data can be easily selected by a user. By disabling the function, it is possible to prevent unauthorized copying of intellectual property.

이상, 본 발명을 상기한 실시예를 들어 구체적으로 설명하였지만, 본 발명인 프로그램의 불법사용 방지 장치 및 방법은 이에 제한되는 것이 아니고, 일련의 문자코드 대신에 2진수화된 일련의 디지털 코드를 사용하여 당업자의 통상의 지식범위내에서 그 변형이나 개량이 가능하다.In the above, the present invention has been described in detail with reference to the above-described embodiments, but the apparatus and method for preventing illegal use of the present inventors are not limited thereto, and instead of a series of character codes, a series of digital codes that are binarized are used. Modifications or improvements are possible within the ordinary knowledge of those skilled in the art.

Claims (4)

특정 메뉴의 기능선택이 다수의 연속된 코드를 통해 이루어질 수 있도록 하는 소프트웨어를 구비한 후, 상기 소프트웨어의 특정 기능을 선택하기 위한 다수의 연속된 코드를 키보드 내지 별도의 버튼을 이용하여 출력되도록 하기 위한 스위칭부(110)(310);After the software has a function for selecting a function of a specific menu through a plurality of consecutive codes, the plurality of consecutive codes for selecting a specific function of the software can be output using a keyboard or a separate button. Switching unit 110 and 310; 상기 스위칭부(110)(310)에 응답하여 다수의 연속된 코드를 생성시켜 상기 소프트웨어의 특정 기능을 인에이블시키기 위한 코드발생부(112)(312); 및A code generator (112) (312) for generating a plurality of consecutive codes in response to the switching (110) (310) to enable a specific function of the software; And 상기 코드발생부(112)(312)에서 출력되는 다수의 코드에 의해 상기 소프트웨어의 특정 기능을 선택하기 위한 컴퓨터의 중앙처리장치(116)로 이루어진 것을 특징으로 하는 프로그램 불법사용 방지 장치.And a central processing unit (116) of a computer for selecting a specific function of the software by a plurality of codes output from the code generator (112) (312). 제 1 항에 있어서, 상기 코드발생부(112)(312)는 스위칭부(110)에 구비되는 별도의 버튼을 통해 스위칭 신호를 입력받아 다수의 해당 코드신호를 출력하기 위한 제어 신호를 생성하는 제어부(212);The control unit of claim 1, wherein the code generators 112 and 312 receive a switching signal through a separate button provided in the switching unit 110 and generate a control signal for outputting a plurality of corresponding code signals. 212; 상기 제어부(212)의 제어 신호로부터 상기 코드신호를 출력할 수 있도록 해당 코드가 저장된 코드저장부(214); 및A code storage unit (214) in which a corresponding code is stored to output the code signal from the control signal of the control unit (212); And 상기 코드저장부(214)에 저장된 코드가 직렬 신호로 출력될 수 있도록 하기 위한 시리얼 출력부(216)으로 이루어진 것을 특징으로 하는 프로그램의 불법사용 방지 장치.Device for preventing illegal use of the program, characterized in that consisting of a serial output unit 216 for outputting the code stored in the code storage unit 214 as a serial signal. 제 1 항에 있어서, 상기 코드발생부(112)(312)는 스위칭부(110)(310)로부터 유입되는 스위칭 신호를 판별하여 특정의 스위칭 신호가 아닐 경우 상기 스위칭부(110)(310)와 컴퓨터의 입출력포트(114)(314)간의 정상적인 신호가 유출입되도록 하고, 상기 특정의 스위칭 신호가 유입될 경우 코드 발생에 따른 인에이블 신호를 출력함과 더불어, 해당 코드를 상기 컴퓨터의 입출력포트(114)(314)로 전송하기 위한 제어부(416);The method of claim 1, wherein the code generators 112 and 312 determine a switching signal flowing from the switching units 110 and 310 and the switching unit 110 and 310 when it is not a specific switching signal. The normal signal between the input and output ports 114 and 314 of the computer flows in and out, and when the specific switching signal flows in, the enable signal according to the code generation is output, and the corresponding code is input and output port 114 of the computer. A control unit 416 for transmitting to 314; 상기 제어부(416)로 유입된 스위칭 신호가 해당 코드신호를 출력시키기 위한 특정의 스위칭 신호인가를 판단하기 위해 소정의 데이터가 저장된 데이터 저장부(420);A data storage unit 420 in which predetermined data is stored to determine whether the switching signal introduced into the control unit 416 is a specific switching signal for outputting a corresponding code signal; 상기 데이터 저장부(420)에 저장된 데이터와 상기 스위칭 신호에 의해 입력된 데이터를 상호 비교하기 위한 비교부(418);A comparator 418 for comparing data stored in the data storage 420 with data input by the switching signal; 상기 비교부(418)의 결과치에 의한 제어부의 판단에 기초하여 다수개의 해당 코드신호를 직렬로 전송할 수 있도록 구비된 시리얼 출력부(424); 및A serial output unit 424 provided to serially transmit a plurality of corresponding code signals based on the determination of the control unit based on the result of the comparison unit 418; And 상기 시리얼 출력부(424)를 통해 전송될 상기 다수개의 해당 코드 신호에 대응한 코드 정보가 저장된 코드 저장부(422)로 이루어진 것을 특징으로 하는 프로그램 불법사용 방지 장치.And a code storage unit (422) storing code information corresponding to the plurality of corresponding code signals to be transmitted through the serial output unit (424). 입력수단을 통해 스위칭 신호가 입력될 경우 현재 입력되는 스위칭 신호가 특정 신호인가를 판단하기 위해 이미 저장되어 있는 데이터를 리드하는 데이터 리드과정;A data reading process of reading already stored data to determine whether the switching signal currently input is a specific signal when the switching signal is input through the input means; 상기 데이터 리드과정에서 읽어 들인 데이터가 상기 스위칭 신호에 상응한데이터와 동일한가를 판단하는 입력데이터 판단과정; 및An input data determination step of determining whether the data read in the data reading process is the same as the data corresponding to the switching signal; And 상기 입력데이터 판단과정에서 판단된 결과 상기 저장되어 있는 데이터와 스위칭 신호에 상응한 데이터가 상호 동일함으로 판단될 경우 다수개의 문자코드를 직렬로 출력토록 하여 프로그램의 해당 기능을 선택하는 해당코드 출력과정으로 이루어진 것을 특징으로 하는 프로그램 불법사용 방지 방법.If it is determined in the input data determination process that the stored data and the data corresponding to the switching signal are equal to each other, a plurality of character codes are outputted in series to select corresponding functions of the program. Program illegal use prevention method, characterized in that made.
KR1019990005199A 1999-02-13 1999-02-13 An apparatus and method for preventing the pirated copy of software program KR100318993B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990005199A KR100318993B1 (en) 1999-02-13 1999-02-13 An apparatus and method for preventing the pirated copy of software program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990005199A KR100318993B1 (en) 1999-02-13 1999-02-13 An apparatus and method for preventing the pirated copy of software program

Publications (2)

Publication Number Publication Date
KR20000056140A KR20000056140A (en) 2000-09-15
KR100318993B1 true KR100318993B1 (en) 2001-12-29

Family

ID=19574375

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990005199A KR100318993B1 (en) 1999-02-13 1999-02-13 An apparatus and method for preventing the pirated copy of software program

Country Status (1)

Country Link
KR (1) KR100318993B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940234B1 (en) * 2003-06-26 2010-02-04 삼성테크윈 주식회사 Wireless electronic label of ring type and and method of manufacturing the same

Also Published As

Publication number Publication date
KR20000056140A (en) 2000-09-15

Similar Documents

Publication Publication Date Title
US4525599A (en) Software protection methods and apparatus
EP2781986B1 (en) Deciphering device using a cryptographic key changed at a predetermined timing
US6347846B1 (en) Method and an apparatus to control copying from a data providing device to a data receiving device
WO2007125911A1 (en) Data processing device, method, program, integrated circuit, and program generating device
CN101968834A (en) Encryption method and device for anti-copy plate of electronic product
KR100607016B1 (en) Memory device
EP0093769A1 (en) Memory security system.
WO2006001365A1 (en) Program creation device, program test device, program execution device, information processing system
US6742122B1 (en) Data encipherment apparatus and illegal alteration prevention system
JP2007304847A (en) Memory device
CN100414473C (en) Method, system, device and computer program for mutual authentication and content protection
US7272856B2 (en) Decryption device
KR100318993B1 (en) An apparatus and method for preventing the pirated copy of software program
US7458100B2 (en) Adding copy protection to a computer program
CN101615160A (en) The security system and the safety method that are used for code dump protection
EP2055069B1 (en) A method and device for providing a security breach indicative audio alert
CN101414910B (en) Method and apparatus for improving information input safety
JP2007299247A (en) System control device, server device provided with system control circuit
JP2002341956A (en) Information processing semiconductor device, debug permission key device and information processing semiconductor system
US8365006B2 (en) Preventing circumvention of function disablement in an information handling system
US20060070057A1 (en) Method and a device for allowing only a specific kind of hardware to correctly execute software
JPH10187545A (en) Id code processor
RU2359317C2 (en) Device for limiting access to hard disk sectors
JP3049029B1 (en) Method of detecting the number of front and rear protection steps, device thereof, and recording medium recording method of detecting number of front and rear protection steps
CA1194609A (en) Software protection methods and apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051215

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee