KR101604891B1 - Method for detection software piracy and theft using partial information of executable file and apparatus using the same - Google Patents

Method for detection software piracy and theft using partial information of executable file and apparatus using the same Download PDF

Info

Publication number
KR101604891B1
KR101604891B1 KR1020130133842A KR20130133842A KR101604891B1 KR 101604891 B1 KR101604891 B1 KR 101604891B1 KR 1020130133842 A KR1020130133842 A KR 1020130133842A KR 20130133842 A KR20130133842 A KR 20130133842A KR 101604891 B1 KR101604891 B1 KR 101604891B1
Authority
KR
South Korea
Prior art keywords
software
target software
bus mark
bus
target
Prior art date
Application number
KR1020130133842A
Other languages
Korean (ko)
Other versions
KR20150051833A (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 KR1020130133842A priority Critical patent/KR101604891B1/en
Publication of KR20150051833A publication Critical patent/KR20150051833A/en
Application granted granted Critical
Publication of KR101604891B1 publication Critical patent/KR101604891B1/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/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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/16Program or content traceability, e.g. by watermarking

Landscapes

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

Abstract

실행 파일의 부분 정보를 이용한 소프트웨어 불법 복제 및 표절 탐지 방법 및 장치가 개시된다. 소프트웨어 불법성 탐지 방법은, 대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성하는 단계와, 소프트웨어 버스마크를 기준으로 하여 대상 소프트웨어의 카테고리를 결정하는 단계와, 버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 소프트웨어 버스마크를 대상 소프트웨어의 카테고리를 기준으로 비교하여 대상 소프트웨어를 식별하는 단계를 포함한다. 따라서, 대상 소프트웨어의 카테고리를 분류하고, 분류된 카테고리 상에서 대상 소프트웨어를 식별함으로써, 소프트웨어 식별을 위한 연산량을 획기적으로 줄일 수 있다.A software piracy and plagiarism detection method and apparatus using partial information of an executable file are disclosed. The software illegal detection method includes the steps of generating a software bus mark based on a part of an executable file constituting the target software, determining a category of the target software based on the software bus mark, And comparing the bus marks of the genuine software and the software bus mark based on the category of the target software to identify the target software. Therefore, by classifying the category of the target software and identifying the target software on the classified category, the amount of calculation for software identification can be drastically reduced.

Description

실행 파일의 부분 정보를 이용한 소프트웨어 불법 복제 및 표절 탐지 방법 및 이를 이용한 장치{METHOD FOR DETECTION SOFTWARE PIRACY AND THEFT USING PARTIAL INFORMATION OF EXECUTABLE FILE AND APPARATUS USING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software piracy and a plagiarism detecting method using partial information of an executable file and an apparatus using the same.

본 발명은 소프트웨어의 불법 복제 또는 표절을 탐지하는 기술에 관한 것으로, 더욱 상세하게는 실행 파일의 부분 정보를 이용한 소프트웨어 불법 복제 및 표절 탐지 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technology for detecting illegal copying or plagiarism of software, and more particularly, to a software piracy and plagiarism detection method and apparatus using partial information of an executable file.

오늘날 인터넷과 통신망의 발전으로 소프트웨어의 배포와 유통은 크게 증가하였고, 최근에는 스마트폰의 열풍으로 많은 사용자들이 어플리케이션 마켓을 통해 손쉽게 소프트웨어를 다운받아 사용할 수 있는 환경이 만들어졌다. 이러한 환경의 변화는 제품 선택의 기준이 하드웨어에서 소프트웨어로 넘어가는 결정적인 계기를 낳았다. Today, with the development of the Internet and communication network, the distribution and distribution of software has greatly increased. Recently, with the hot air of smartphone, many users have created an environment where they can easily download and use the software through the application market. This change in circumstances has led to a decisive momentum for product selection to move from hardware to software.

그러나, 인터넷과 같은 통신의 발달로 소프트웨어 불법 복제 및 표절이 급증하여, 소프트웨어 산업 발전에 걸림돌이 되고 있다. However, due to the development of communication such as the Internet, software piracy and plagiarism have soared, which has hampered the development of the software industry.

소프트웨어의 불법 복제(piracy)란 특정 소프트웨어를 그대로 복제(copy)하여 유통하거나 사용하는 것을 의미하며, 소프트웨어의 표절/도용(plagiarism/theft)이란 소프트웨어의 전체 코드 또는 일부 코드를 역공학(reverse engineering) 등의 방법으로 도용하여 사용하는 것을 의미한다.Piracy of software means copying and distributing certain software as it is, and plagiarism / theft of software means reverse engineering of whole or partial code of software. And the like.

하지만 종래의 소프트웨어 저작권 보호 기술 중의 하나는 개발사에서 특징 정보(워터마크, 라이선스 정보 등)를 삽입하여 배포하는 방식으로서, 개발사마다 저작권보호 적용 방식이 다르고 특정정보를 추출하는 것에 어려움이 있고 또 공격에 손상될 수 있다.However, one of the conventional software copyright protection technologies is a method of inserting and distributing feature information (watermark, license information, etc.) from a developer, and it is difficult to extract specific information because of different copyright protection applying method for each developer. It can be damaged.

다른 저작권 보호 기술로는, 실행파일에 대한 크기/해쉬 값을 비교하는 방식이 있으나, 실행파일에 임의 데이터나 명령을 추가하는 것이 가능하여 실행파일의 크기나 해쉬 값 비교 방식은 정확하지 않아 신뢰도가 낮은 문제점이 있다.Another copyright protection technique is to compare the size / hash value of an executable file, but it is possible to add arbitrary data or commands to the executable file, so that the method of comparing the size or hash value of the executable file is not accurate, There is a low problem.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 실행 파일의 부분 정보를 이용한 소프트웨어 버스마크에 기반하여 소프트웨어의 불법 복제 또는 표절을 탐지하는 장치를 제공하는데 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide an apparatus for detecting illegal copying or plagiarism of software based on software bus marks using partial information of an executable file.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 실행 파일의 부분 정보를 이용한 소프트웨어 버스마크에 기반하여 소프트웨어의 불법 복제 또는 표절을 탐지하는 방법을 제공하는데 있다.It is another object of the present invention to provide a method for detecting illegal copying or plagiarism of software based on software bus marks using partial information of an executable file.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치는, 대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성하는 버스마크 생성부와, 소프트웨어 버스마크를 기준으로 하여 대상 소프트웨어의 카테고리를 결정하는 카테고리 결정부와, 버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 소프트웨어 버스마크를 대상 소프트웨어의 카테고리를 기준으로 비교하여 대상 소프트웨어를 식별하는 식별부를 포함한다. According to an aspect of the present invention, there is provided an apparatus for detecting illegal software, comprising: a bus mark generating unit for generating a software bus mark based on a part of an executable file constituting a target software; And an identification unit for identifying the target software by comparing the bus marks of the genuine software stored in the bus mark DB with the software bus mark based on the category of the target software.

여기에서, 상기 소프트웨어 불법성 탐지 장치는, 소프트웨어 버스마크를 이용한 대상 소프트웨어의 식별을 통하여 대상 소프트웨어에 대한 불법 복제 또는 표절 여부를 판단하는 불법성 탐지부를 더 포함할 수 있다. Here, the software illegalness detecting device may further include an illegal detection unit for determining illegal copying or plagiarism of the target software through identification of the target software using the software bus mark.

여기에서, 상기 소프트웨어 불법성 탐지 장치는, 웹 하드(web hard) 상에 업로드되는 대상 소프트웨어의 불법성 여부를 상기 웹 하드와 연동하여 판단할 수 있다. Here, the software illegality detecting device may determine whether illegal property of the software to be uploaded on the web hard is interlocked with the web hard.

여기에서, 상기 실행 파일은, 마이크로소프트 윈도우 EXE 파일, Java 바이트 파일 및 리눅스 a.out 파일 중 적어도 하나일 수 있다. Here, the executable file may be at least one of a Microsoft Windows EXE file, a Java byte file, and a Linux a.out file.

여기에서, 상기 버스마크 생성부는, DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)을 실행 파일의 일부분으로 하여 소프트웨어 버스마크를 생성할 수 있다. Here, the bus mark generator may include an IAT (Import Address Table) including at least one of information on a DDL (Dynamic Link Library) and information on an API (Application Program Interface) as a part of an executable file Software bus marks can be created.

여기에서, 상기 버스마크 생성부는, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 해쉬 값(hash value)을 산출하고, 해쉬 값을 소프트웨어 버스마크로 생성할 수 있다. Here, the bus mark generator may calculate a hash value using an application program interface (API) reference sequence for an executable file, and generate a hash value as a software bus mark.

여기에서, 상기 식별부는, DDL 네임 및 API 개수를 이용하여 대상 소프트웨어를 식별할 수 있다. Here, the identification unit may identify the target software using the DDL name and the API number.

여기에서, 상기 식별부는, DDL 네임 및 상기 API 개수를 이용한 대상 소프트웨어에 대한 식별이 실패한 경우, 해쉬 값을 이용하여 대상 소프트웨어를 식별할 수 있다. Here, if the identification of the target software using the DDL name and the number of APIs fails, the identification unit may identify the target software using the hash value.

여기에서, 상기 식별부는, 대상 소프트웨어의 카테고리를 기준으로 한 대상 소프트웨어에 대한 식별이 실패한 경우, 모든 카테고리 상에서 버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 소프트웨어 버스마크를 비교하여 대상 소프트웨어를 식별할 수 있다. Here, when the identification of the target software based on the category of the target software fails, the identification unit compares the bus marks of the genuine software stored in the bus mark DB on all categories with the software bus mark to identify the target software .

상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 방법은, 대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성하는 단계와, 소프트웨어 버스마크를 기준으로 하여 대상 소프트웨어의 카테고리를 결정하는 단계와, 버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 소프트웨어 버스마크를 대상 소프트웨어의 카테고리를 기준으로 비교하여 대상 소프트웨어를 식별하는 단계를 포함한다.According to another aspect of the present invention, there is provided a software illegalness detecting method comprising the steps of: generating a software bus mark based on a part of an executable file constituting a target software; Determining a category of the software; and comparing the bus marks and the software bus marks of the genuine software stored in the bus mark DB with the category of the target software to identify the target software.

상기와 같은 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치 및 방법은, 소프트웨어의 기능을 나타내는 특징 정보를 활용하여 소프트웨어 버스마크를 생성하고, 이렇게 생성된 소프트웨어 버스마크를 이용하여 대상 소프트웨어를 식별함으로써 식별의 정확도를 높일 수 있다. The apparatus and method for detecting software illegalness according to an embodiment of the present invention as described above are configured to generate software bus marks by using characteristic information indicating functions of software and to identify target software using the software bus marks thus generated The accuracy of the identification can be increased.

또한, 대상 소프트웨어의 카테고리를 분류하고, 분류된 카테고리 상에서 대상 소프트웨어를 식별함으로써, 소프트웨어 식별을 위한 연산량을 획기적으로 줄일 수 있는 장점이 있다. Further, there is an advantage that the amount of calculation for software identification can be drastically reduced by classifying categories of target software and identifying the target software on the classified category.

또한, 분류된 카테고리 상에서 대상 소프트웨어를 식별하지 못한 경우, 모든 카테고리 상에서 대상 소프트웨어를 재식별하는 과정을 추가적으로 수행하여 식별의 정확성을 담보할 수 있다.In addition, if the target software is not identified on the classified category, the process of re-identifying the target software on all categories can be additionally performed to ensure the accuracy of the identification.

도 1은 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치가 적용되는 환경을 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치가 적용되는 환경을 보다 자세히 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치의 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치에서 이용되는 소프트웨어 버스마크 생성의 기초가 되는 IAT를 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시예에 따른 소프트웨어 식별을 설명하기 위한 흐름도이다.
1 is a conceptual diagram for explaining an environment to which a software illegality detecting apparatus according to an embodiment of the present invention is applied.
FIG. 2 is a conceptual diagram for explaining an environment in which a software illegality detecting apparatus according to an embodiment of the present invention is applied.
3 is a block diagram illustrating a configuration of a software illegality detecting apparatus according to an embodiment of the present invention.
4 is an exemplary diagram illustrating an IAT that is the basis for software bus mark generation used in a software illegality detection apparatus according to an embodiment of the present invention.
5 is a flowchart illustrating a software illegality detection method according to an embodiment of the present invention.
6 is a flow chart for explaining software identification according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치가 적용되는 환경을 설명하기 위한 개념도이고, 도 2는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치가 적용되는 환경을 보다 자세히 설명하기 위한 개념도이다.FIG. 1 is a conceptual diagram for explaining an environment to which a software illegality detecting apparatus according to an embodiment of the present invention is applied, FIG. 2 is a view for explaining an environment in which a software illegality detecting apparatus according to an embodiment of the present invention is applied, Fig.

도 1을 참조하면, 웹 하드(web hard; 10) 상에는 다수 사용자에 의해서 다종의 소프트웨어들(20, 30, 40, …)이 업로드될 수 있다. 여기에서, 웹 하드(10)는 다수의 사용자가 소프트웨어 또는 컨텐츠를 업로드할 수 있는 클라우드(cloud) 저장 공간의 일종을 의미하며, 웹 하드라는 명칭에 구애받지 않고, 다양한 온라인 저장 공간들을 포괄하는 개념이다.Referring to FIG. 1, a plurality of types of software 20, 30, 40,... Can be uploaded by a plurality of users on a web hard 10. Here, the web hard 10 is a kind of cloud storage space in which a plurality of users can upload software or contents. The web hard 10 is a concept that includes various online storage spaces to be.

본 발명의 소프트웨어 불법성 탐지 장치(100)는 웹 하드(10)에 업로드 되는 다종의 대상 소프트웨어들(20, 30, 40, …)에 대해서 업로드 단계에서 해당 소프트웨어의 불법 복제 또는 표절 여부를 탐지하기 위해서 적용될 수 있다. The software illegality detecting apparatus 100 of the present invention detects the illegal copying or plagiarism of the corresponding software in the uploading step for a variety of target software 20, 30, 40, ... uploaded to the web hard 10 .

또한, 본 발명의 소프트웨어 불법성 탐지 장치(100)는 대상 소프트웨어들의 소스 코드 등의 민감한 정보를 요구하지 않고 대상 소프트웨어를 구성하는 실행 파일들(예컨대, 대상 소프트웨어 20의 실행 파일들 21)을 이용한 불법 복제 또는 표절의 탐지를 수행하는 것을 특징으로 한다.In addition, the software illegality detecting apparatus 100 of the present invention can detect illegal use of execution files (e.g., execution files 21 of the target software 20) constituting the target software without requiring sensitive information such as source codes of the target software Thereby performing duplication or detection of plagiarism.

도 2를 참조하면, 사용자의 컴퓨터(210)에서는 특정 웹 하드 업체의 서버(220)를 통하여 실행 파일(211)을 업로드하게 된다(231). 이때, 웹 하드 업체의 서버(220)에서는 업로드된 실행 파일(211)을 본 발명에 따른 소프트웨어 불법성 탐지 장치(100)에 전송하게 되고(232), 소프트웨어 불법성 탐지 장치(100)는 실행 파일(211)의 특징 정보를 버스마크로서 생성하여 버스마크 데이터베이스(DB)(200)에 동일 또는 유사한 버스마크가 이미 등록되어 있는지를 조회하게 된다(234).Referring to FIG. 2, the user computer 210 uploads the executable file 211 through a specific web hard server 220 (231). At this time, the server 220 of the web hard company transmits the uploaded executable file 211 to the software illegality detecting apparatus 100 according to the present invention (232), and the software illegality detecting apparatus 100 detects the execution file (234) whether or not the same or similar bus mark is already registered in the bus mark database (DB) 200 by generating characteristic information of the bus mark (211) as a bus mark.

버스마크 데이터베이스(200)의 조회 결과(235)에 따라 소프트웨어 불법성 탐지 장치(100)는 실행 파일이 불법 복제 또는 표절된 소프트웨어의 실행 파일인지를 판단하여 판단 결과를 웹 하드 업체의 서버(220)으로 전송하게 된다(236). 웹 하드 업체의 서버(220)는 수신한 판단 결과에 기초하여 업로드된 실행 파일이 불법 복제 또는 표절된 파일임을 사용자에게 통지(237)하여 해당 실행 파일의 업로드를 차단하거나 이미 업로드된 해당 파일을 삭제하는 등의 처리 과정을 취할 수 있다.In accordance with the inquiry result 235 of the bus mark database 200, the software illegality detecting apparatus 100 determines whether the executable file is an illegal copy or an executable file of the plagued software, (Step 236). The web hard server 220 notifies the user that the uploaded executable file is a pirated or plagiarized file based on the received determination result 237 and blocks the upload of the executable file or deletes the already uploaded file And the like.

여기에서, 버스마크 데이터베이스(200)는 소프트웨어 불법성 탐지 장치(100)와 별개로 존재하는 구성요소로서 도시되고 있으나 버스마크 데이터베이스(200)는 소프트웨어 불법성 탐지 장치(100) 내에 포함된 구성요소로서 존재할 수도 있다. 소프트웨어 불법성 탐지 장치(100)과 버스마크 데이터베이스(200)의 자세한 구성은 후술된다.Here, although the bus mark database 200 is shown as a component that exists separately from the software illegal detection device 100, the bus mark database 200 is a component included in the software illegalness detection device 100 It may exist. The detailed configuration of the software illegality detecting apparatus 100 and the bus mark database 200 will be described later.

한편, 웹 하드 업체의 서버(220)는 업로드된 실행 파일에 대해서 불법 복제 또는 표절 여부를 소프트웨어 불법성 탐지 장치(100)에 조회하는 것이 아니라, 업로드 중인 실행 파일에 대해서 불법 복제 또는 표절 여부를 소프트웨어 불법성 탐지 장치(100)에 조회하도록 구성될 수도 있다. On the other hand, the server 220 of the web hard company does not inquire the illegal copy or plagiarism of the uploaded executable file to the software illegality detection device 100, And may be configured to query the illegal intrusion detection device 100.

본 발명의 특징은 실행 파일의 부분 정보에 기초하여 생성되는 버스마크 정보를 이용하여 불법 복제 또는 표절 여부를 검출하는 것이므로, 버스마크 정보 생성의 기초가 되는 파일의 부분 정보가 실행 파일의 앞부분에 존재하는 것일 경우, 업로드 초기에 실행 파일이 일부만 업로드된 상황에서도 버스마크의 추출이 가능할 수 있기 때문이다. The feature of the present invention is to detect illegal copying or plagiarism using bus mark information generated based on partial information of an executable file, so that partial information of a file serving as a basis for generating bus mark information exists in the beginning of an executable file It is possible to extract the bus mark even in the case where only a part of the executable file is uploaded at the initial stage of uploading.

한편, 상술된 적용 예에서는 업로드 과정에 대해서 본 발명의 불법성 탐지 시스템이 적용되는 과정을 설명하고 있으나, 다운로드 과정에 대해서도 본 발명의 소프트웨어 불법성 탐지 장치(100)는 적용될 수 있다. 이 경우, 웹 하드 업체의 서버(220)는 사용자로부터 다운로드 요청이 있는 실행 파일에 대해서 소프트웨어 불법성 탐지 장치(100)에 불법 복제 또는 표절 여부를 확인 요청하도록 구성될 수 있다.Meanwhile, although the above-described application example describes a process in which the illegal detection system of the present invention is applied to the upload process, the software illegality detection apparatus 100 of the present invention can also be applied to the download process. In this case, the server 220 of the web hard company may be configured to request the software illegality detection device 100 to confirm illegal copying or plagiarism of an executable file having a download request from the user.

또한, 본 발명의 소프트웨어 불법성 탐지 장치(100)는 웹 하드에 업로드/다운로드되는 소프트웨어의 불법 복제 또는 표절 여부를 탐지하는 용도뿐만 아니라, 오프라인 상태에서 소프트웨어의 불법 복제 또는 표절 여부를 탐지하는 용도로도 적용될 수 있다. 예컨대, 대상 컴퓨터에 탑재된 하드 디스크와 같은 저장 장치를 검색하여 불법 복제 또는 표절 소프트웨어의 존재 여부를 탐지하는 용도로도 본 발명의 소프트웨어 불법성 탐지 장치(100)는 이용될 수 있을 것이다.
Further, the software illegality detecting apparatus 100 of the present invention is used not only for detecting illegal copying or plagiarism of software to be uploaded / downloaded to a web hard, but also for detecting illegal copying or plagiarism of the software in an offline state Can also be applied. For example, the software illegal detection apparatus 100 of the present invention may be used for searching for a storage device such as a hard disk mounted on a target computer to detect the presence of pirated or pirated software.

도 3은 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치의 구성을 설명하기 위한 블록도이다. 3 is a block diagram illustrating a configuration of a software illegality detecting apparatus according to an embodiment of the present invention.

도 3을 참조하면, 본 발명에 실시예에 따른 소프트웨어 불법성 탐지 장치(100)는 버스마크 생성부(110), 카테고리 결정부(120), 식별부(130) 및 불법성 탐지부(140)를 포함하여 구성될 수 있다.3, the software illegality detecting apparatus 100 according to an embodiment of the present invention includes a bus mark generating unit 110, a category determining unit 120, an identifying unit 130, and an illegal detecting unit 140, As shown in FIG.

버스마크 생성부(110)는 대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성할 수 있다. The bus mark generating unit 110 can generate a software bus mark based on a part of an executable file constituting the target software.

대상 소프트웨어(20)는 앞서 도 1 및 도 2를 통하여 설명된 바와 같이 본 발명에 따른 소프트웨어 불법성 탐지 장치(100)에 의하여 정품 소프트웨어에 대한 불법 복제 또는 표절 여부를 검사 받는 대상이 되는 소프트웨어를 의미한다.1 and 2, the target software 20 means software to be subjected to illegal copying or plagiarism checking on the genuine software by the software illegal detecting apparatus 100 according to the present invention do.

여기에서, 대상 소프트웨어(20)는 웹 하드(10)에 업로드되거나 웹 하드(10)로부터 다운로드되는 소프트웨어일 수 있으며, 이 경우에, 버스마크 생성부(110)는 웹 하드(10)에 현재 업로드(다운로드)되고 있거나 업로드된 소프트웨어를 대상 소프트웨어로 선정하거나, 웹 하드에 이미 업로드된 소프트웨어들을 주기적 또는 비주기적으로 대상 소프트웨어로 선정하여 소프트웨어 버스마크를 생성할 수 있다. Here, the target software 20 may be software that is uploaded to the web hard 10 or downloaded from the web hard 10. In this case, the bus mark generating unit 110 may upload (Downloaded) or uploaded software can be selected as the target software, or the software bus mark can be generated by periodically or non-periodically selecting the software that has already been uploaded to the web hard as the target software.

즉, 버스마크 생성부(110)는 대상 소프트웨어(20)를 구성하는 실행 파일들 중 적어도 하나를 선정하여, 선정된 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성할 수 있다. That is, the bus mark generation unit 110 can select at least one of the executable files constituting the target software 20, and generate a software bus mark based on a part of the selected executable file.

실행 파일(executable file)은 해당 대상 소프트웨어의 운영 플랫폼에 따라서 다양한 형태를 취할 수가 있다. 예컨대, 실행 파일은 운영 플랫폼을 구성하는 운영체제(OS: Operating System)가 마이크로소프트 윈도우(Microsoft Windows)인 경우는 EXE 파일, 운영체제가 자바(Java)인 경우는 바이트(byte) 파일, 운영체제가 리눅스(Linux)인 경우는 a.out 파일 등이 될 수 있다. An executable file can take various forms depending on the operating platform of the target software. For example, the executable file may be an EXE file if the operating system (OS) constituting the operating platform is Microsoft Windows, a byte file if the operating system is Java, Linux), it can be an a.out file or the like.

실행 파일은 운영 체제뿐만 아니라 해당 소프트웨어가 동작하는 하드웨어 플랫폼에 따라서도 다르게 구성될 수 있다. 예컨대, 리눅스 운영체제의 경우, 실행 파일은 프로세서 코어(processor core)에 따라서도 다르게 컴파일될 수 있으므로, 실행 파일은 해당 소프트웨어의 소프트웨어 운영 환경 및 하드웨어 운영 환경을 모두 감안하여 결정될 수 있다. The executable file can be configured differently depending on the operating system as well as the hardware platform on which the software is running. For example, in the case of a Linux operating system, an executable file may be compiled differently depending on a processor core, and therefore an executable file may be determined in consideration of both a software operating environment and a hardware operating environment of the software.

버스마크 생성부(110)는 해당 실행 파일의 핵심 특징(feature) 정보를 포함하고 있는 부분 정보를 추출하게 된다. 여기에서, 실행 파일의 핵심 특징 정보는, 실행 파일에 담겨 있는 문자열, API(Application Programming Interface) 이름, API 참조 내용 등의 정보가 될 수 있다.The bus mark generating unit 110 extracts partial information including key feature information of the executable file. Here, the core feature information of the executable file may be information such as a string contained in the executable file, an API (application programming interface) name, an API reference content, and the like.

예컨대, 실행 파일이 윈도우 EXE 파일인 경우에, 버스마크 생성부(110)가 추출하는 실행 파일의 적어도 일부분의 일 예는 윈도우 EXE 파일에 포함된 IAT(Import Address Table)일 수 있다. For example, when the executable file is a Windows EXE file, an example of at least a part of the executable file extracted by the bus mark generation unit 110 may be an IAT (Import Address Table) included in the Windows EXE file.

마이크로소프트 윈도우 운영체제는 실행 가능 파일, 오브젝트 코드(object code) 및 동적 링킹 라이브러리(DLL: Dynamic Linking Library) 등을 위한 파일 포맷으로 PE(Portable Executable) 파일 포맷을 이용하고 있다.The Microsoft Windows operating system uses the Portable Executable (PE) file format as a file format for executable files, object code, and dynamic linking libraries (DLLs).

PE 파일 포맷은 링크를 위한 동적 라이브러리의 참조(reference)들, API의 엑스포트(export)와 임포트(import)를 위한 테이블, 자원 관리 데이터(resource management data)와 쓰레드 로컬 스토리지(TLS: Thread Local Storage) 데이터 등을 포함하고 있다. PE 파일은 동적 링커(linker)가 파일을 메모리 상에 매핑할 수 있도록 하기 위해서 많은 수의 헤더와 섹션들을 포함하고 있게 된다.The PE file format includes dynamic library references for links, tables for exporting and importing APIs, resource management data and thread local storage (TLS) Data and so on. The PE file contains a large number of headers and sections to enable the dynamic linker to map the file into memory.

실행 파일이 로드될 때, 윈도우 로더(loader)는 어플리케이션이 사용하는 모든 DLL들을 로드하고, 프로세스 어드레스 스페이스(process address space) 상에 매핑하게 되는데, 이러한 동작이 윈도우 로더가 참조하는 실행 파일의 IAT에 의해서 이루어지게 된다. 즉, IAT는 어플리케이션이 함수들을 호출할 때에 이용되는 룩업 테이블(lookup table)로서 이용될 수 있다.When the executable file is loaded, the Windows loader loads all the DLLs used by the application and maps them onto the process address space. This behavior occurs in the IAT of the executable file referenced by the Windows loader . That is, the IAT can be used as a lookup table used when an application calls functions.

따라서, 버스마크 생성부(110)는 DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)을 실행 파일의 일부분으로 하여 소프트웨어 버스마크를 생성할 수 있다. Accordingly, the bus mark generation unit 110 generates an IAT (Import Address Table) including at least one of information on DDL (Dynamic Link Library) and information on API (Application Program Interface) To generate a software bus mark.

또한, 버스마크 생성부(110)는 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 해쉬 값(hash value)을 산출하고, 해쉬 값을 소프트웨어 버스마크로 생성할 수도 소프트웨어 불법성 탐지 장치(100) 있다. The bus mark generating unit 110 may also calculate a hash value using an application program interface (API) reference sequence for an executable file, generate a hash value as a software bus mark, 100).

카테고리 결정부(120)는 소프트웨어 버스마크를 기준으로 하여 대상 소프트웨어의 카테고리를 결정할 수 있다. 여기서, 소프트웨어의 카테고리는 FTP client, Media player 및 Image viewer 등과 같이 소프트웨어의 기능 또는 종류에 따라 분류될 수 있다. The category determination unit 120 can determine the category of the target software based on the software bus mark. Here, categories of software can be classified according to functions or kinds of software such as an FTP client, a media player, and an image viewer.

식별부(130)는 버스마크 DB(200)에 저장된 정품 소프트웨어들의 버스마크들과 대상 소프트웨어(20)의 소프트웨어 버스마크를 대상 소프트웨어의 카테고리를 기준으로 비교하여 대상 소프트웨어(20)를 식별할 수 있다. 예를 들어, 식별부(130)는 DDL 네임 및 API 개수를 이용하여 대상 소프트웨어(20)를 식별할 수 있다. The identification unit 130 can identify the target software 20 by comparing the bus marks of the genuine software stored in the bus mark DB 200 with the software bus mark of the target software 20 on the basis of the category of the target software . For example, the identification unit 130 can identify the target software 20 using the DDL name and the API number.

또한, 식별부(130)는 DDL 네임 및 API 개수를 이용한 대상 소프트웨어(20)에 대한 식별이 실패한 경우, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 생성된 해쉬 값을 기초하여 대상 소프트웨어(20)를 식별할 수 있다. In addition, when the identification of the target software 20 using the DDL name and the number of APIs is failed, the identifying unit 130 determines whether or not the target software 20 is a target object based on a hash value generated using an application program interface (API) The software 20 can be identified.

더 나아가, 식별부(130)는 대상 소프트웨어(20)의 카테고리를 기준으로 한 대상 소프트웨어(20)에 대한 식별이 실패한 경우, 모든 카테고리 상에서 버스마크 DB(200)에 저장된 정품 소프트웨어들의 버스마크들과 대상 소프트웨어(20)의 소프트웨어 버스마크를 비교하여 대상 소프트웨어(20)를 식별할 수 있다. 예를 들어, 식별부(130)는 정품 소프트웨어들의 해쉬 값과 대상 소프트웨어(20)의 해쉬 값을 모든 카테고리 상에서 비교하여 대상 소프트웨어(20)를 식별할 수 있다. Furthermore, when the identification of the target software 20 based on the category of the target software 20 fails, the identification unit 130 identifies bus marks of genuine software stored in the bus mark DB 200 on all categories It is possible to identify the target software 20 by comparing the software bus marks of the target software 20. [ For example, the identification unit 130 may identify the target software 20 by comparing the hash value of the genuine software with the hash value of the target software 20 in all categories.

불법성 탐지부(140)는 소프트웨어 버스마크를 이용한 대상 소프트웨어(20)의 식별을 통하여 대상 소프트웨어(20)에 대한 불법 복제 또는 표절 여부를 판단할 수 있다. The illegality detection unit 140 can determine illegal copying or plagiarism of the target software 20 through identification of the target software 20 using the software bus mark.

예를 들어, 대상 소프트웨어(20)가 식별되지 않는 경우, 대상 소프트웨어(20)가 불법 복제된 것으로 판단할 수 있다. 또한, 대상 소프트웨어(20)가 식별된 경우, 대상 소프트웨어(20)에 상응하는 정품 소프트웨어에 대한 라이센싱 정보에 기반하여 대상 소프트웨어(20)의 불법성 여부를 판단할 수 있다. 여기서, 라이센싱 정보는 해당 소프트웨어의 권리자에 대한 정보, 사용 권한에 대한 정보, 버전 정보 및 사용 만료일에 대한 정보 등을 포함할 수 있으며, 버전 정보는 해당 실행 파일의 최종 버전에 대한 정보를 포함할 수 있다.For example, if the target software 20 is not identified, it can be determined that the target software 20 has been pirated. In addition, when the target software 20 is identified, it is possible to determine whether the target software 20 is illegal based on the licensing information for the genuine software corresponding to the target software 20. [ Herein, the licensing information may include information on the owner of the software, information on usage rights, version information, and information on expiration date of use, and the version information may include information on the final version of the executable file have.

버스마크 DB(200)는 버스마크 데이터베이스 생성부(400)에 의해 생성될 수 있다. 버스마크 데이터베이스 생성부(400)는, 정품 소프트웨어를 구성하는 실행 파일의 적어도 일부분을 추출하고, 추출한 실행 파일의 일부분에 기초하여 정품 소프트웨어를 위한 버스마크(birthmark)를 생성할 수 있으며, 이를 버스마크 DB(200)에 저장할 수 있다. 즉, 버스마크 DB(200)는 대상 소프트웨어를 위한 소프트웨어 버스마크를 생성하는 과정과 동일한 과정을 통하여 정품 소프트웨어를 위한 버스마크를 생성할 수 있으므로, 자세한 설명한 생략한다. The bus mark DB 200 can be generated by the bus mark database generation unit 400. [ The bus mark database generation unit 400 may extract at least a part of the executable files constituting the genuine software and generate a busmark for genuine software based on a part of the extracted executable file, Can be stored in the DB 200. That is, since the bus mark DB 200 can generate the bus mark for the genuine software through the same process as the process of generating the software bus mark for the target software, the detailed description will be omitted.

또한, 버스마크 DB(200) 또는 버스마크 데이터베이스 생성부(400)는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치(100)와 독립적으로 구성되거나, 소프트웨어 불법성 탐지 장치(100)에 포함되어 구성될 수 있다.
The bus mark DB 200 or the bus mark database generation unit 400 may be configured independently of the software illegality detection apparatus 100 according to the embodiment of the present invention or included in the software illegality detection apparatus 100 Lt; / RTI >

도 4는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치에서 이용되는 소프트웨어 버스마크 생성의 기초가 되는 IAT를 설명하기 위한 예시도이다.4 is an exemplary diagram illustrating an IAT that is the basis for software bus mark generation used in a software illegality detection apparatus according to an embodiment of the present invention.

도 4를 참조하면, PE 파일 포맷을 따른 실행 파일(300)은 IAT 테이블(310, 320)을 구비하고 있고, IAT 테이블 중 임포트 테이블(310)은 해당 실행 파일이 이용하는 DLL들의 개수(311)와 DLL들의 명칭(312), 해당 실행 파일이 이용하는 API들의 개수(313), API들의 명칭(314) 및 API 호출 횟수(321) 등의 정보를 관리하고 있으며, 이러한 정보들이 해당 대상 소프트웨어의 고유한 특징(feature) 정보로서 이용될 수 있다.4, the executable file 300 according to the PE file format includes IAT tables 310 and 320. The import table 310 of the IAT table stores the number 311 of DLLs used by the executable file, The name of the DLLs 312, the number of APIs 313 used by the executable file, the names of the APIs 314, and the number of API calls 321, can be used as feature information.

다만, 본 발명은 MS Windows의 실행 파일(PE 파일 포맷)을 활용하는 것에 한정되는 것은 아니다. 즉, 고유한 특징 정보는 Linux ELF 포맷, Java, Windows PE 포맷, 안드로이드 DEX 포맷 등에서 추출될 수 있다. However, the present invention is not limited to utilizing an executable file (PE file format) of MS Windows. In other words, unique feature information can be extracted from Linux ELF format, Java, Windows PE format, and Android DEX format.

버스마크 생성부(110)는 실행 파일의 적어도 일부분에 기초하여 소프트웨어 버스마크(birthmark)를 생성할 수 있다. The bus mark generating unit 110 may generate a software bus mark based on at least a part of the executable file.

실행 파일이 MS Windows에 기반하는 경우를 예로 들어 설명한다. An example is given where the executable is based on MS Windows.

실행 파일이 윈도우 실행 파일이며, 윈도우 실행 파일에서 버스마크를 생성하기 위해서 추출된 일부분이 IAT 테이블이라면, 버스마크 생성부(110)는 IAT 테이블이 포함하고 있는 DLL들의 개수(311), DLL들의 명칭(312), API들의 개수(313), API들의 명칭(314) 및 API 호출 횟수(321) 중 적어도 하나를 이용하여 소프트웨어 버스마크를 생성할 수 있다. If the executable file is a Windows executable file and the portion extracted to generate the bus mark in the Windows executable file is an IAT table, the bus mark generation unit 110 stores the number 311 of DLLs included in the IAT table, It is possible to generate the software bus mark using at least one of the number of APIs 312, the number of APIs 313, the names of APIs 314, and the number of API calls 321.

버스마크 생성부(110)는 예로써 실행 파일의 적어도 일부분을 바이트 열로서 입력 받아 이를 토대로 소정의 해쉬 함수(hash function)에 입력하여 해쉬 값을 생성하고, 생성된 해쉬 값을 해당 소프트웨어의 버스마크로서 출력할 수 있다. The bus mark generation unit 110 generates a hash value by inputting at least a part of the executable file as a byte string and inputting it into a predetermined hash function based on the received hash value, As shown in Fig.

이때, 버스마크 생성부(110)는 IAT 테이블 전체에 대해서 해쉬 값을 생성하여 소프트웨어 버스마크로서 출력할 수도 있으며, 상술된 DLL들의 개수(311), DLL들의 명칭(312), API들의 개수(313) 및 API들의 명칭(314) 중 적어도 하나를 조합하여 해쉬 값을 생성하여 소프트웨어 버스마크로서 출력할 수도 있을 것이다. 또한, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 해쉬 값(hash value)을 산출하고, 이를 소프트웨어 버스마크로 생성할 수 있다. At this time, the bus mark generating unit 110 may generate a hash value for the entire IAT table and output it as a software bus mark. The number of DLLs 311, the names of DLLs 312, the number of APIs 313 ) And the names 314 of the APIs may be combined to output a hash value as a software bus mark. Also, a hash value (hash value) can be calculated using an application program interface (API) reference sequence for an executable file, and can be generated as a software bus mark.

상술한 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치(10)의 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.Although each component of the software illegality detecting apparatus 10 according to the above-described embodiment of the present invention has been described as being arranged in each component section for convenience of explanation, at least two of the component sections may be combined to form one component section, The constituent parts can be divided into a plurality of constituent parts to carry out the function and the case of the integrated and separate embodiments of each constituent part is also included in the scope of the present invention unless the essence of the present invention is satisfied.

또한, 소프트웨어 불법성 탐지 장치(10)는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
In addition, the software illegality detecting apparatus 10 can be embodied as a computer-readable program or code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. The computer-readable recording medium may also be distributed and distributed in a networked computer system so that a computer-readable program or code can be stored and executed in a distributed manner.

도 5는 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 방법을 설명하기 위한 흐름도이고, 도 6은 본 발명의 실시예에 따른 소프트웨어 식별을 설명하기 위한 흐름도이다.FIG. 5 is a flowchart for explaining a software illegality detection method according to an embodiment of the present invention, and FIG. 6 is a flowchart for explaining software identification according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 방법은, 소프트웨어 버스마크를 생성하는 단계와, 대상 소프트웨어의 카테고리를 결정하는 단계와, 대상 소프트웨어의 카테고리를 기준으로 비교하여 대상 소프트웨어를 식별하는 단계를 포함한다. Referring to FIG. 5, a software illegalness detecting method according to an embodiment of the present invention includes a step of generating a software bus mark, a step of determining a category of a target software, Lt; / RTI >

대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성할 수 있다(S510). 즉, 대상 소프트웨어(20)를 구성하는 실행 파일들 중 적어도 하나를 선정하여, 선정된 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성할 수 있다. 여기서, 실행 파일(executable file)은 해당 대상 소프트웨어의 운영 플랫폼에 따라서 다양한 형태를 취할 수가 있다. 예컨대, 실행 파일은 운영 플랫폼을 구성하는 운영체제(OS: Operating System)가 마이크로소프트 윈도우(Microsoft Windows)인 경우는 EXE 파일, 운영체제가 자바(Java)인 경우는 바이트(byte) 파일, 운영체제가 리눅스(Linux)인 경우는 a.out 파일 등이 될 수 있다.A software bus mark can be generated based on a part of the executable file that constitutes the target software (S510). That is, at least one of the executable files constituting the target software 20 can be selected, and a software bus mark can be generated based on a part of the selected executable file. Here, the executable file can take various forms according to the operating platform of the target software. For example, the executable file may be an EXE file if the operating system (OS) constituting the operating platform is Microsoft Windows, a byte file if the operating system is Java, Linux), it can be an a.out file or the like.

실행 파일이 MS Windows에 기반하는 경우를 예로 들어 설명하면, DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)을 실행 파일의 일부분으로 하여 소프트웨어 버스마크를 생성할 수 있다. For example, if an executable file is based on MS Windows, an IAT (Import Address Table) including information about at least one of information about DDL (Dynamic Link Library) and API (application program interface) A software bus mark can be generated as part of the executable file.

또한, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 해쉬 값(hash value)을 산출하고, 산출된 해쉬 값을 소프트웨어 버스마크로 생성할 수도 있다. In addition, a hash value (hash value) may be calculated using an application program interface (API) reference sequence for an executable file, and the calculated hash value may be generated as a software bus mark.

소프트웨어 버스마크를 기준으로 하여 대상 소프트웨어의 카테고리를 결정할 수 있다(S520). 여기서, 소프트웨어의 카테고리는 FTP client, Media player 및 Image viewer 등과 같이 소프트웨어의 기능 또는 종류에 따라 분류될 수 있다. The category of the target software can be determined based on the software bus mark (S520). Here, categories of software can be classified according to functions or kinds of software such as an FTP client, a media player, and an image viewer.

버스마크 DB(200)에 저장된 정품 소프트웨어들의 버스마크들과 대상 소프트웨어의 소프트웨어 버스마크를 대상 소프트웨어의 카테고리를 기준으로 비교하여 대상 소프트웨어를 식별할 수 있다(S530).The target software may be identified by comparing the bus marks of the genuine software stored in the bus mark DB 200 with the software bus mark of the target software on the basis of the category of the target software (S530).

도 6을 참조하여 대상 소프트웨어를 식별하는 방법을 더욱 상세하게 설명한다. The method of identifying the target software will be described in more detail with reference to FIG.

먼저, 대상 소프트웨어의 카테고리 상에 DDL 네임 및 API 개수를 이용하여 대상 소프트웨어(20)를 식별할 수 있다(S531). DDL 네임 및 API 개수를 이용한 식별의 성공 여부를 판단할 수 있고(S533), DDL 네임 및 API 개수를 이용한 대상 소프트웨어(20)에 대한 식별이 실패한 경우, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 생성된 해쉬 값을 기초하여 대상 소프트웨어(20)를 식별할 수 있다(S535).First, the target software 20 can be identified using the DDL name and the number of APIs on the category of the target software (S531). It is possible to determine whether the identification using the DDL name and the number of APIs has succeeded (S533). If the identification of the target software 20 using the DDL name and the number of APIs fails, the application program interface (API) The target software 20 can be identified based on the hash value generated using the sequence (S535).

또한, 대상 소프트웨어(20)의 카테고리를 기준으로 한 대상 소프트웨어(20)에 대한 식별의 성공 여부를 판단할 수 있고(S537), 대상 소프트웨어(20)의 카테고리를 기준으로 한 대상 소프트웨어(20)에 대한 식별이 실패한 경우, 모든 카테고리 상에서 버스마크 DB(200)에 저장된 정품 소프트웨어들의 버스마크들과 대상 소프트웨어(20)의 소프트웨어 버스마크를 비교하여 대상 소프트웨어(20)를 식별할 수 있다(S539). 예를 들어, 정품 소프트웨어들의 해쉬 값과 대상 소프트웨어(20)의 해쉬 값을 모든 카테고리 상에서 비교하여 대상 소프트웨어(20)를 식별할 수 있다.It is also possible to judge whether or not the identification of the target software 20 based on the category of the target software 20 has succeeded (S537) and determine whether the target software 20 has been successfully identified The target software 20 can be identified by comparing the bus marks of the genuine software stored in the bus mark DB 200 with the software bus marks of the target software 20 in all categories (S539). For example, the hash value of the genuine software and the hash value of the target software 20 may be compared across all categories to identify the target software 20.

소프트웨어 버스마크를 이용한 대상 소프트웨어의 식별을 통하여 대상 소프트웨어에 대한 불법 복제 또는 표절 여부를 판단할 수 있다(S540). The illegal copying or plagiarism of the target software can be determined through identification of the target software using the software bus mark (S540).

대상 소프트웨어(20)가 식별되지 않는 경우, 대상 소프트웨어(20)가 불법 복제된 것으로 판단할 수 있다. 또한, 대상 소프트웨어의 버스마크와 정품 소프트웨어의 차이값이 미리 설정된 임계값을 넘는 경우, 대상 소프트웨어(20)가 불법 복제 또는 표절된 것으로 판단할 수 있다.If the target software 20 is not identified, it can be determined that the target software 20 has been pirated. In addition, when the difference value between the bus mark of the target software and the genuine software exceeds a predetermined threshold value, it can be determined that the target software 20 is illegally copied or plagiarized.

상술한 본 발명의 실시예에 따른 소프트웨어 불법성 탐지 장치 및 방법은, 소프트웨어의 기능을 나타내는 특징 정보를 활용하여 소프트웨어 버스마크를 생성하고, 이렇게 생성된 소프트웨어 버스마크를 이용하여 대상 소프트웨어를 식별함으로써 식별의 정확도를 높일 수 있다. The apparatus and method for detecting software illegality according to an embodiment of the present invention include generating software bus marks by using characteristic information indicating functions of software and identifying target software by using the generated software bus marks Can be increased.

특히, 대상 소프트웨어의 카테고리를 분류하고, 분류된 카테고리 상에서 대상 소프트웨어를 식별함으로써, 소프트웨어 식별을 위한 연산량을 획기적으로 줄일 수 있다. In particular, by classifying categories of target software and identifying the target software on the classified category, the amount of computation for software identification can be drastically reduced.

또한, 분류된 카테고리 상에서 대상 소프트웨어를 식별하지 못한 경우, 모든 카테고리 상에서 대상 소프트웨어를 재식별하는 과정을 추가적으로 수행하여 식별의 정확성을 담보할 수 있다. In addition, if the target software is not identified on the classified category, the process of re-identifying the target software on all categories can be additionally performed to ensure the accuracy of the identification.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

20: 대상 소프트웨어
100: 소프트웨어 불법성 탐지 장치
110: 버스 마크 생성부 120: 카테고리 결정부
130: 식별부 140: 불법성 탐지부
200: 버스마크 데이터베이스 400: 버스마크 데이터베이스 생성부
500: 정품 소프트웨어
20: Target Software
100: Software illegal detection device
110: bus mark generating unit 120:
130: Identification part 140: illegal property detection part
200: bus mark database 400: bus mark database generation unit
500: Genuine Software

Claims (18)

대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성하는 단계;
상기 소프트웨어 버스마크를 기준으로 하여 상기 대상 소프트웨어의 카테고리를 결정하는 단계; 및
버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 상기 소프트웨어 버스마크를 상기 대상 소프트웨어의 카테고리를 기준으로 비교하여 상기 대상 소프트웨어를 식별하는 단계를 포함하되,
상기 대상 소프트웨어를 식별하는 단계는,
상기 대상 소프트웨어의 카테고리 상에서 DLL(Dynamic Link Library) 네임 및 API(Application Program Interface) 개수를 기반으로 상기 대상 소프트웨어를 식별하고,
상기 DLL 네임 및 상기 API 개수를 이용하는 상기 대상 소프트웨어의 식별에 실패한 경우, 상기 대상 소프트웨어의 카테고리 상에서 상기 소프트웨어 버스마크의 생성에 이용된 해쉬 값(hash value)을 이용하여 상기 대상 소프트웨어를 재차 식별하며,
상기 해쉬 값을 이용하는 상기 대상 소프트웨어의 식별에 실패한 경우, 모든 카테고리 상에서 상기 버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 상기 소프트웨어 버스마크를 비교하여 상기 대상 소프트웨어를 식별하는 것을 특징으로 하는, 소프트웨어 불법성 탐지 방법.
Generating a software bus mark based on a part of the executable file constituting the target software;
Determining a category of the target software based on the software bus mark; And
Identifying the target software by comparing the bus marks of genuine software stored in the bus mark DB with the software bus mark based on the category of the target software,
Wherein identifying the target software comprises:
Identifies the target software based on a dynamic link library (DLL) name and an application program interface (API) number on the category of the target software,
Identifies the target software by using a hash value used for generating the software bus mark on the category of the target software when the identification of the target software using the DLL name and the number of APIs fails,
And comparing the bus marks of the genuine software stored in the bus mark DB on all categories with the software bus mark when the identification of the target software using the hash value fails. Sex detection method.
청구항 1에 있어서,
상기 소프트웨어 버스마크를 이용한 상기 대상 소프트웨어의 식별을 통하여 상기 대상 소프트웨어에 대한 불법 복제 또는 표절 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 불법성 탐지 방법.
The method according to claim 1,
Further comprising the step of determining whether the target software is pirated or plagiarized through identification of the target software using the software bus mark.
청구항 1에 있어서,
상기 대상 소프트웨어는 웹 하드(web hard) 상에 업로드되는 소프트웨어인 것을 특징으로 하는 소프트웨어 불법성 탐지 방법.
The method according to claim 1,
Wherein the target software is software uploaded on a web hard.
청구항 1에 있어서,
상기 실행 파일은,
마이크로소프트 윈도우 EXE 파일, Java 바이트 파일 및 리눅스 a.out 파일 중 적어도 하나인 것을 특징으로 하는 소프트웨어 불법성 탐지 방법.
The method according to claim 1,
The executable file includes:
A Microsoft Windows EXE file, a Java byte file, and a Linux a.out file.
청구항 1에 있어서,
상기 소프트웨어 버스마크를 생성하는 단계는,
DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)을 상기 실행 파일의 일부분으로 하여 상기 소프트웨어 버스마크를 생성하는 것을 특징으로 하는 소프트웨어 불법성 탐지 방법.
The method according to claim 1,
Wherein generating the software bus mark comprises:
Generating an IAT (Import Address Table) including information on at least one of information on a DDL (Dynamic Link Library) and information on an API (Application Program Interface) as a part of the executable file Characterized by software illegality detection method.
청구항 5에 있어서,
상기 소프트웨어 버스마크를 생성하는 단계는,
상기 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 해쉬 값(hash value)을 산출하고, 상기 해쉬 값을 상기 소프트웨어 버스마크로 생성하는 것을 특징으로 하는 소프트웨어 불법성 탐지 방법.
The method of claim 5,
Wherein generating the software bus mark comprises:
A hash value is calculated using an application program interface (API) reference sequence for the executable file, and the hash value is generated as the software bus mark.
삭제delete 삭제delete 삭제delete 대상 소프트웨어를 구성하는 실행 파일의 일부분에 기초하여 소프트웨어 버스마크를 생성하는 버스마크 생성부;
상기 소프트웨어 버스마크를 기준으로 하여 상기 대상 소프트웨어의 카테고리를 결정하는 카테고리 결정부; 및
버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 상기 소프트웨어 버스마크를 상기 대상 소프트웨어의 카테고리를 기준으로 비교하여 상기 대상 소프트웨어를 식별하는 식별부를 포함하되,
상기 식별부는,
상기 대상 소프트웨어의 카테고리 상에서 DLL(Dynamic Link Library) 네임 및 API(Application Program Interface) 개수를 기반으로 상기 대상 소프트웨어를 식별하고,
상기 DLL 네임 및 상기 API 개수를 이용하는 상기 대상 소프트웨어의 식별에 실패한 경우, 상기 대상 소프트웨어의 카테고리 상에서 상기 소프트웨어 버스마크의 생성에 이용된 해쉬 값(hash value)을 이용하여 상기 대상 소프트웨어를 재차 식별하며,
상기 해쉬 값을 이용하는 상기 대상 소프트웨어의 식별에 실패한 경우, 모든 카테고리 상에서 상기 버스마크 DB에 저장된 정품 소프트웨어들의 버스마크들과 상기 소프트웨어 버스마크를 비교하여 상기 대상 소프트웨어를 식별하는 것을 특징으로 하는, 소프트웨어 불법성 탐지 장치.
A bus mark generation unit for generating a software bus mark based on a part of an executable file constituting the target software;
A category determination unit for determining a category of the target software based on the software bus mark; And
And an identification unit for identifying the target software by comparing bus marks of genuine software stored in the bus mark DB with the software bus mark based on categories of the target software,
Wherein,
Identifies the target software based on a dynamic link library (DLL) name and an application program interface (API) number on the category of the target software,
Identifies the target software by using a hash value used for generating the software bus mark on the category of the target software when the identification of the target software using the DLL name and the number of APIs fails,
And comparing the bus marks of the genuine software stored in the bus mark DB on all categories with the software bus mark when the identification of the target software using the hash value fails. Gender detection device.
청구항 10에 있어서,
상기 소프트웨어 버스마크를 이용한 상기 대상 소프트웨어의 식별을 통하여 상기 대상 소프트웨어에 대한 불법 복제 또는 표절 여부를 판단하는 불법성 탐지부를 더 포함하는 것을 특징으로 하는 소프트웨어 불법성 탐지 장치.
The method of claim 10,
Further comprising an illegal detection unit for determining whether the target software is illegal copy or plagiarism through identification of the target software using the software bus mark.
청구항 10에 있어서,
웹 하드(web hard) 상에 업로드되는 상기 대상 소프트웨어의 불법성 여부를 상기 웹 하드와 연동하여 판단하는 것을 특징으로 하는 소프트웨어 불법성 탐지 장치.
The method of claim 10,
Wherein the software illegalness detecting unit determines whether illegal property of the target software to be uploaded on the web hard is interlocked with the web hard.
청구항 10에 있어서,
상기 실행 파일은,
마이크로소프트 윈도우 EXE 파일, Java 바이트 파일 및 리눅스 a.out 파일 중 적어도 하나인 것을 특징으로 하는 소프트웨어 불법성 탐지 장치.
The method of claim 10,
The executable file includes:
A Microsoft Windows EXE file, a Java byte file, and a Linux a.out file.
청구항 10에 있어서,
상기 버스마크 생성부는,
DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)을 상기 실행 파일의 일부분으로 하여 상기 소프트웨어 버스마크를 생성하는 것을 특징으로 하는 소프트웨어 불법성 탐지 장치.
The method of claim 10,
Wherein the bus mark generating unit comprises:
Generating an IAT (Import Address Table) including information on at least one of information on a DDL (Dynamic Link Library) and information on an API (Application Program Interface) as a part of the executable file Characterized by software illegalness detection device.
청구항 14에 있어서,
상기 버스마크 생성부는,
상기 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스를 이용하여 해쉬 값(hash value)을 산출하고, 상기 해쉬 값을 상기 소프트웨어 버스마크로 생성하는 것을 특징으로 하는 소프트웨어 불법성 탐지 장치.
15. The method of claim 14,
Wherein the bus mark generating unit comprises:
A hash value is calculated using an application program interface (API) reference sequence for the executable file, and the hash value is generated as the software bus mark.
삭제delete 삭제delete 삭제delete
KR1020130133842A 2013-11-05 2013-11-05 Method for detection software piracy and theft using partial information of executable file and apparatus using the same KR101604891B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130133842A KR101604891B1 (en) 2013-11-05 2013-11-05 Method for detection software piracy and theft using partial information of executable file and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130133842A KR101604891B1 (en) 2013-11-05 2013-11-05 Method for detection software piracy and theft using partial information of executable file and apparatus using the same

Publications (2)

Publication Number Publication Date
KR20150051833A KR20150051833A (en) 2015-05-13
KR101604891B1 true KR101604891B1 (en) 2016-03-18

Family

ID=53389203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130133842A KR101604891B1 (en) 2013-11-05 2013-11-05 Method for detection software piracy and theft using partial information of executable file and apparatus using the same

Country Status (1)

Country Link
KR (1) KR101604891B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101869026B1 (en) * 2016-08-16 2018-06-20 단국대학교 산학협력단 Method and apparatus for clustering software
CN107967152B (en) * 2017-12-12 2020-06-19 西安交通大学 Software local plagiarism evidence generation method based on minimum branch path function birthmarks
KR102346722B1 (en) * 2019-10-31 2022-01-03 단국대학교 산학협력단 Apparatus and method for obfuscation-resilient application features and similarity analysis

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
조우영, Windows 프로그램의 동적 API 호출 트레이스를 이용한 기능 단위 버스마크, 한국과학기술원 석사학위논문, 2009.2.*

Also Published As

Publication number Publication date
KR20150051833A (en) 2015-05-13

Similar Documents

Publication Publication Date Title
US9092598B2 (en) Version-based software product activation
US9038057B2 (en) Method for replacing an illegitimate copy of a software program with a legitimate copy and corresponding system
US8875303B2 (en) Detecting pirated applications
US20140033315A1 (en) Method and system for enforcing a license dependency rule for a software application
KR102006245B1 (en) Method and system for identifying an open source software package based on binary files
Ombredanne Free and open source software license compliance: Tools for software composition analysis
KR102011725B1 (en) Whitelist construction method for analyzing malicious code, computer readable medium and device for performing the method
KR102006242B1 (en) Method and system for identifying an open source software package based on binary files
KR101604891B1 (en) Method for detection software piracy and theft using partial information of executable file and apparatus using the same
KR101624387B1 (en) Method for software asset management based on software birthmark and apparatus thereof
US7814334B2 (en) Method and apparatus for changing and adding activation keys for functions of digital content without having to change and recompile the digital content
KR101594643B1 (en) Method for detecting software piracy and theft based on partial information of executable file, and apparatus therefor
KR101600178B1 (en) Method and apparatus for detecting illegally copied application
KR101643454B1 (en) Method and apparatus for evaluating performance of software filtering
Kim et al. Detecting illegally-copied apps on android devices
KR101515707B1 (en) Method for detecting smart-phone app piracy and theft based on characteristic of software, and apparatus therefor
KR101990998B1 (en) System and method for protecting font copyrights
KR101845155B1 (en) Method and system for providing application package and method and system for executing application
CN115022096B (en) Method and device for downloading software
KR101842267B1 (en) Apparatus for categorizing unknown softwares using mld and method thereof
KR101654973B1 (en) Apparatus and method for software filtering
KR20160037415A (en) Method for preventing illegal copying software
KR102149466B1 (en) Apparatus and method for feature information extraction and similarity comparison of android app considering obfuscation
KR101616793B1 (en) Method for checking integrity of application
KR101494431B1 (en) System, device, method and computer readable recording medium for detecting manipulation of a mobile application file

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
FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5