KR101624387B1 - Method for software asset management based on software birthmark and apparatus thereof - Google Patents

Method for software asset management based on software birthmark and apparatus thereof Download PDF

Info

Publication number
KR101624387B1
KR101624387B1 KR1020130133048A KR20130133048A KR101624387B1 KR 101624387 B1 KR101624387 B1 KR 101624387B1 KR 1020130133048 A KR1020130133048 A KR 1020130133048A KR 20130133048 A KR20130133048 A KR 20130133048A KR 101624387 B1 KR101624387 B1 KR 101624387B1
Authority
KR
South Korea
Prior art keywords
software
executable file
information
iat
computer system
Prior art date
Application number
KR1020130133048A
Other languages
Korean (ko)
Other versions
KR20150051508A (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 KR1020130133048A priority Critical patent/KR101624387B1/en
Publication of KR20150051508A publication Critical patent/KR20150051508A/en
Application granted granted Critical
Publication of KR101624387B1 publication Critical patent/KR101624387B1/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]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • 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

Abstract

소프트웨어 버스마크를 이용하여 소프트웨어 자산을 관리하는 방법 및 장치가 개시된다. 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법은, 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집하는 단계와, 실행 파일의 기능을 반영하는 정보에 기반하여 소프트웨어 버스마크를 생성하는 단계와, 소프트웨어 버스마크를 이용하여 실행 파일을 식별하는 단계를 포함한다. 따라서, 컴퓨터 시스템에서 실행되는 모든 실행 파일을 소프트웨어 버스마크에 기반하여 식별함으로써, 소프트웨어 자산을 효과적으로 관리할 수 있도록 하고, 소프트웨어 버스마크는 실행 파일의 기능과 관련된 IAT 정보 및 API 참조 시퀀스에 대한 정보를 활용하기 때문에 위조 또는 변조에 강인한 장점이 있다.A method and apparatus for managing software assets using software bus marks is disclosed. A software asset management method based on a software bus mark comprises the steps of: collecting an executable file to be executed on a target computer system; generating a software bus mark based on information reflecting the function of the executable file; And identifying an executable file. Thus, all executables running on the computer system are identified based on the software bus marks, so that the software assets can be managed effectively, and the software bus marks can include IAT information related to the function of the executable file and information on the API reference sequence There is a strong advantage in forgery or modulation because it utilizes.

Description

소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법 및 그 장치{METHOD FOR SOFTWARE ASSET MANAGEMENT BASED ON SOFTWARE BIRTHMARK AND APPARATUS THEREOF}[0001] METHOD FOR SOFTWARE ASSET MANAGEMENT BASED ON SOFTWARE BIRTHMARK AND APPARATUS THEREOF [0002]

본 발명은 소프트웨어 자산 관리에 관한 것으로, 더욱 상세하게는 소프트웨어 버스마크를 이용하여 소프트웨어 자산을 관리하는 방법 및 장치에 관한 것이다.The present invention relates to software asset management, and more particularly, to a method and apparatus for managing software assets using software bus marks.

오늘날 인터넷과 통신망의 발전으로 소프트웨어의 배포와 유통은 크게 증가하였고, 최근에는 스마트폰의 열풍으로 많은 사용자들이 어플리케이션 마켓을 통해 손쉽게 소프트웨어를 다운받아 사용할 수 있는 환경이 만들어졌다. 이러한 환경의 변화는 제품 선택의 기준이 하드웨어에서 소프트웨어로 넘어가는 결정적인 계기를 낳았다. 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 It is an object of the present invention to provide a method for managing software assets executed in a computer system using a software bus mark.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 소프트웨어 버스마크를 이용하여 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 장치를 제공하는데 있다.Another object of the present invention is to provide an apparatus for managing software assets executed in a computer system using a software bus mark.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 자산 관리 방법은, 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집하는 단계와, 실행 파일의 기능을 반영하는 정보에 기반하여 소프트웨어 버스마크를 생성하는 단계와, 소프트웨어 버스마크를 이용하여 실행 파일을 식별하는 단계를 포함한다.According to another aspect of the present invention, there is provided a software asset management method comprising: collecting an executable file to be executed in a target computer system; generating a software bus mark based on information reflecting the function of the executable file; And identifying an executable file using the software bus mark.

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

여기에서, 상기 실행 파일을 수집하는 단계는, 대상 컴퓨터 시스템에서 실행되는 오픈 소스 소프트웨어 및 프리웨어를 포함하는 실행 파일을 수집할 수 있다. Here, collecting the executable file may collect executable files including open source software and freeware that are executed in the target computer system.

여기에서, 상기 소프트웨어 버스마크를 생성하는 단계는, DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)에 기반하여 소프트웨어 버스마크를 생성할 수 있다. Here, the step of generating the software bus mark may be based on an IAT (Import Address Table) including information on at least one of information on DDL (Dynamic Link Library) and information on API (Application Program Interface) Software bus marks can be created.

여기에서, 상기 소프트웨어 버스마크를 생성하는 단계는, IAT에 대한 해쉬 값(hash value)을 산출하고 해쉬 값을 소프트웨어 버스마크로 생성할 수 있다. Here, generating the software bus mark may produce a hash value for the IAT and a hash value as a software bus mark.

여기에서, 상기 실행 파일을 식별하는 단계는, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스에 대한 정보를 소프트웨어 버스마크로 하여 실행 파일을 식별할 수 있다. Here, the step of identifying the executable file may identify an executable file by using software bus mark information on an application program interface (API) reference sequence for the executable file.

여기에서, 상기 실행 파일을 식별하는 단계는, 소프트웨어 버스마크를 기 구축된 소프트웨어 자산 관리 DB와 비교하여 실행 파일을 식별할 수 있다. Here, the step of identifying the executable file may identify the executable file by comparing the software bus mark with the pre-established software asset management DB.

여기에서, 상기 기 구축된 소프트웨어 자산 관리 DB는, IAT(Import Address Table)에 기반한 소프트웨어 버스마크, API(Application Program Interface) 참조 시퀀스에 대한 정보에 기반한 소프트웨어 버스마크, 소프트웨어 네임, 라이센싱 정보 및 버전 정보 중 적어도 하나를 포함할 수 있다. Here, the pre-established software asset management DB includes a software bus mark based on an IAT (Import Address Table), a software bus mark based on information on an API (Application Program Interface) reference sequence, a software name, Or the like.

여기에서, 상기 소프트웨어 자산 관리 방법은, 소프트웨어 버스마크를 이용한 실행 파일의 식별을 통하여 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 단계를 더 포함할 수 있다. Here, the software asset management method may further include managing software assets executed in a target computer system through identification of an executable file using a software bus mark.

여기에서, 상기 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 단계는, 식별된 실행 파일에 대한 라이센싱 정보 및 버전 정보를 대상 컴퓨터 시스템에 제공할 수 있다. Herein, the step of managing software assets executed in the target computer system may provide the target computer system with licensing information and version information for the identified executable file.

여기에서, 상기 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 단계는, 식별된 실행 파일에 대한 사용을 제어할 수 있다. Wherein managing software assets running on the target computer system may control usage of the identified executable file.

상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 자산 관리 장치는, 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집하는 수집부와, 실행 파일의 기능을 반영하는 정보에 기반하여 소프트웨어 버스마크를 생성하는 버스마크 생성부와, 소프트웨어 버스마크를 이용하여 실행 파일을 식별하는 식별부를 포함한다.According to another aspect of the present invention, there is provided a software asset management system including a collection unit for collecting execution files to be executed in a target computer system, And an identification unit for identifying an executable file using the software bus mark.

상기와 본 발명의 실시예에 따른 소프트웨어 자산 관리 방법 및 장치는 컴퓨터 시스템에서 실행되는 모든 실행 파일을 소프트웨어 버스마크에 기반하여 식별함으로써, 소프트웨어 자산을 효과적으로 관리할 수 있도록 한다. The above and the software asset management method and apparatus according to the embodiment of the present invention identify all the executable files executed in the computer system based on software bus marks, thereby effectively managing software assets.

특히, 본 발명의 실시예에 따른 소프트웨어 버스마크는 실행 파일의 기능과 관련된 IAT 정보 및 API 참조 시퀀스에 대한 정보를 활용하기 때문에 위조 또는 변조에 강인한 장점이 있다. In particular, since the software bus mark according to the embodiment of the present invention utilizes the IAT information and the API reference sequence information related to the function of the executable file, it is advantageous against forgery or modulation.

또한, 버전이 다르나 동일한 기능을 수행하는 실행 파일도 효과적으로 식별하도록 하여 소프트웨어 자산 및 버전 관리를 동시에 수행할 수 있는 장점이 있다. In addition, there is an advantage in that the software asset and the version management can be simultaneously performed by effectively identifying the executable file that performs the same function even though the version is different.

도 1은 본 발명의 실시예에 따른 소프트웨어 자산 관리 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 실시예에 따른 IAT를 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따라 소프트웨어 버스머크를 생성하는 방법을 설명하기 위한 예시도이다.
도 4는 본 발명의 실시예에 따른 API 참조 시퀀스를 생성하는 방법을 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따른 소프트웨어 자산 관리 장치의 구성을 설명하기 위한 블록도이다.
1 is a flowchart illustrating a software asset management method according to an embodiment of the present invention.
2 is a conceptual diagram for explaining an IAT according to an embodiment of the present invention.
3 is an exemplary diagram illustrating a method for generating a software bus Merck in accordance with an embodiment of the present invention.
4 is an exemplary diagram illustrating a method for generating an API reference sequence according to an embodiment of the present invention.
5 is a block diagram illustrating a configuration of a software asset management apparatus 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는 본 발명의 실시예에 따른 IAT를 설명하기 위한 개념도이다. FIG. 1 is a flowchart illustrating a software asset management method according to an embodiment of the present invention. FIG. 2 is a conceptual diagram illustrating an IAT according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 소프트웨어 자산 관리 방법은, 실행 파일을 수집하는 단계(S110)와, 소프트웨어 버스마크를 생성하는 단계(S120)와, 실행 파일을 식별하는 단계(S130) 및 소프트웨어 자산을 관리하는 단계(S140)를 포함한다. Referring to FIG. 1, a software asset management method according to an exemplary embodiment of the present invention includes collecting an execution file (S110), creating a software bus mark (S120), identifying an execution file (S130 And managing software assets (S140).

먼저, 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집할 수 있다(S110). 여기서, 컴퓨터 시스템이란, 프로그램을 읽어 실행할 수 있는 모든 시스템, 장치 및 단말을 포함하는 개념일 수 있다. First, an executable file to be executed in the target computer system may be collected (S110). Here, the computer system may be a concept including all systems, devices, and terminals capable of reading and executing a program.

또한, 실행 파일은 컴퓨터 시스템에서 실행되는 소프트웨어, 프로그램 등을 의미할 수 있다. 예컨대, 실행 파일은, 마이크로소프트 윈도우(MS Windows)의 실행 파일, java의 실행 파일, 리눅스의 실행 파일 등일 수 있다. 즉, 실행 파일은, MS Windows의 EXE 파일, Java의 바이트 파일, 리눅스(Linux)의 a.out 파일 및 안드로이드(Android)의 DEX 파일 중 어느 하나일 수 있다. The executable file may also refer to software, programs, and the like that are executed in a computer system. For example, the executable file may be an executable file of Microsoft Windows (MS Windows), an executable file of java, an executable file of Linux, and the like. That is, the executable file can be any one of MS Windows EXE file, Java byte file, Linux a.out file, and Android DEX file.

컴퓨터 시스템은 다양한 실행 파일을 실행시킬 수 있다. 컴퓨터 시스템에서 실행되는 실행 파일은 컴퓨터 시스템에서 설치된 상태에서 실행되거나, 설치되지 않은 상태에서 실행될 수 있다. The computer system can execute various executable files. An executable file to be executed in the computer system can be executed while installed in the computer system or can be executed without being installed.

본 발명의 실시예에 따른 컴퓨터 시스템에서 실행되는 모든 실행 파일을 수집할 수 있다. 즉, 컴퓨터 시스템에서 실행되는 오픈 소스 소프트웨어(Open Source Software) 및 프리웨어(freeware)를 포함하는 실행 파일을 수집할 수 있다. All executable files executed in the computer system according to the embodiment of the present invention can be collected. That is, it can collect executable files including open source software and freeware that run on a computer system.

예를 들어, Window OS(Operation System)에서는 “Program Files” 폴더에 설치된 실행 파일이 실행된다. 그러나, 본 발명의 실시예에 따르면 다른 폴더에 설치된 실행 파일뿐만 아니라 설치되지 않고 실행되는 실행 파일을 수집할 수 있다.For example, in Windows OS (Operating System), executable files installed in the "Program Files" folder are executed. However, according to the embodiment of the present invention, not only an executable file installed in another folder but also an executable file which is executed without being installed can be collected.

실행 파일의 기능을 반영하는 정보에 기반하여 소프트웨어 버스마크를 생성할 수 있다(S120). A software bus mark may be generated based on information reflecting the function of the executable file (S120).

소프트웨어 버스마크(software birthmark)는 실행 파일의 고유한 특징(feature) 정보를 포함하는 것으로 실행 파일을 식별하는 정보로 활용될 수 있다. 소프트웨어 버스마크는 다양한 특징 정보를 활용하여 생성될 수 있으나, 실행 파일의 기능을 반영하는 정보를 활용하여 생성할 경우 위변조가 어려운 장점이 있다. The software birthmark includes unique feature information of the executable file and can be used as information for identifying the executable file. The software bus mark can be created by using various feature information, but there is an advantage that it is difficult for forgery and falsification to be generated by utilizing the information reflecting the function of the executable file.

이에 본 발명의 실시예에 따른 소프트웨어 버스마크는 DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)에 기반하여 생성될 수 있다. 즉, 실행 파일의 기능을 반영하는 정보는 IAT일 수 있다.
Accordingly, the software bus mark according to the embodiment of the present invention is generated based on an IAT (Import Address Table) including at least one of information about DDL (Dynamic Link Library) and information about API (Application Program Interface) . That is, the information reflecting the function of the executable file may be IAT.

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

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.

PE 파일 포맷을 따른 실행 파일은 IAT을 구비하고 있고, IAT 중 임포트 테이블은 해당 실행 파일이 이용하는 DLL들의 주소와 DLL들의 명칭, 해당 실행 파일이 이용하는 API들의 주소, API들의 명칭 및 API 호출 횟수 등의 정보를 포함할 수 있으며, 이러한 정보들이 해당 실행 파일의 특징 정보로서 이용될 수 있다.The executable file according to the PE file format has an IAT. The import table of the IAT includes the addresses of the DLLs used by the executable file, the names of the DLLs, the addresses of the APIs used by the executable file, the names of the APIs, Information, and such information can be used as feature information of the executable file.

다만, 본 발명은 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. That is, the information (characteristic information) reflecting the function of the executable file can be extracted from the Linux ELF format, Java, Windows PE format, and Android DEX format.

소프트웨어 버스마크를 이용하여 실행 파일을 식별할 수 있다(S130). The executable file can be identified using the software bus mark (S130).

먼저, 본 발명의 실시예에 따르면, DDL에 대한 정보 및 API에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT에 기반하여 생성된 소프트웨어 버스마크(IAT 기반 소프트웨어 버스마크)를 통하여 실행 파일을 식별할 수 있다. First, according to an embodiment of the present invention, an executable file is identified through a software bus mark (IAT-based software bus mark) generated based on an IAT including information on at least one of information on a DDL and information on an API can do.

또한, IAT에 기반하여 생성된 소프트웨어 버스마크를 이용하여 실행 파일을 식별하지 못하는 경우가 발생할 수 있다. 즉, 실행 파일의 기능은 동일하나 버전이 다를 경우 같은 실행 파일로 인식될 수 있다. In addition, it may happen that the executable file can not be identified using the software bus mark generated based on the IAT. That is, if the function of the executable file is the same but the version is different, it can be recognized as the same executable file.

따라서, IAT에 기반하여 생성된 소프트웨어 버스마크를 이용하여 실행 파일을 정확하게 식별하지 못하는 경우에는, 실행 파일을 위한 API(Application Program Interface) 참조 시퀀스(reference sequence)에 대한 정보를 소프트웨어 버스마크(API 참조 시퀀스 기반 소프트웨어 버스마크)로 하여 실행 파일을 식별할 수 있다. 즉, API 참조 시퀀스는 실행 파일의 버전에 대한 정보를 포함할 수 있다. API 참조 시퀀스에 대한 정보는 실행 파일로부터 추출할 수 있는 정보로, 실행 파일이 실행될 시 참조하는 API에 대한 시퀀스 정보를 의미할 수 있다. Therefore, if the executable file can not be correctly identified using the software bus mark generated based on the IAT, information on an API (Application Program Interface) reference sequence for the executable file is referred to as a software bus mark Sequence-based software bus marks) to identify the executable file. That is, the API reference sequence may include information about the version of the executable file. The information on the API reference sequence may be information that can be extracted from the executable file, and may refer to sequence information on the API to be referred to when the executable file is executed.

상세하게는, 소프트웨어 버스마크를 기 구축된 소프트웨어 자산 관리 DB(200)와 비교하여 실행 파일을 식별할 수 있다. Specifically, the software bus mark can be compared with the pre-built software asset management DB 200 to identify the executable file.

여기서, 소프트웨어 자산 관리 DB(200)는 컴퓨터 시스템에서 실행될 수 있는 실행 파일들에 대한 정보를 이용하여 미리 구축될 수 있다. Here, the software asset management DB 200 can be constructed in advance using information on executable files that can be executed in the computer system.

또한, 소프트웨어 자산 관리 DB(200)는 IAT에 기반한 소프트웨어 버스마크, API 참조 시퀀스에 대한 정보에 기반한 소프트웨어 버스마크, 소프트웨어 네임, 라이센싱 정보 및 버전 정보를 포함할 수 있다. The software asset management DB 200 may also include software bus marks based on IAT, software bus marks based on information on API reference sequences, software names, licensing information, and version information.

따라서, 기 구축된 소프트웨어 자산 관리 DB(200)에 저장된 정보를 이용하여 컴퓨터 시스템에서 실행되는 실행 파일을 식별할 수 있고, 소프트웨어 자산 관리 DB(200)에 저장된 정보(예를 들어, 라이센싱 정보, 버전 정보)를 이용하여 실행 파일을 관리할 수 있다. Therefore, it is possible to identify an executable file to be executed in the computer system using the information stored in the pre-built software asset management DB 200, and to store information (for example, licensing information, version Information) can be used to manage the executable file.

소프트웨어 버스마크를 이용한 실행 파일의 식별을 통하여 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 단계를 더 포함할 수 있다(S140).And managing the software asset executed in the target computer system through identification of the executable file using the software bus mark (S140).

즉, 식별된 실행 파일에 대한 라이센싱 정보 및 버전 정보를 대상 컴퓨터 시스템에 제공할 수 있다. 또한, 식별된 실행 파일에 대한 사용을 제어할 수 있다. That is, licensing information and version information for the identified executable file can be provided to the target computer system. You can also control usage for the identified executable file.

예를 들어, 대상 컴퓨터 시스템의 실행 파일을 식별하여 해당 실행 파일에 대한 라이센싱 정보 및 버전 정보를 대상 컴퓨터 시스템의 사용자에게 제공할 수 있다. 여기서, 라이센싱 정보는 해당 실행 파일의 권리자에 대한 정보, 사용 권한에 대한 정보 및 사용 만료일에 대한 정보 등을 포함할 수 있으며, 버전 정보는 해당 실행 파일의 최종 버전에 대한 정보를 포함할 수 있다. For example, an executable file of the target computer system can be identified, and licensing information and version information for the executable file can be provided to the user of the target computer system. Here, the licensing information may include information on the right holder of the executable file, information on usage rights, information on the expiration date of use, and the version information may include information on the final version of the executable file.

또한, 해당 실행 파일이 사용 권한이 없는 파일이거나, 사용 만료일이 지난 파일일 경우, 해당 실행 파일에 대한 사용을 제한할 수 있다. In addition, if the executable file is a file that does not have usage rights, or the file has an expiration date, the use of the executable file can be restricted.

따라서, 본 발명의 실시예에 따르면, 컴퓨터 시스템에서 실행되는 실행 파일을 IAT 기반 소프트웨어 버스마크 또는 API 참조 시퀀스 기반 소프트웨어 버스마크를 이용하여 식별할 수 있다. 이를 통하여 해당 실행 파일을 정확하게 식별함으로써, 소프트웨어 자산을 효과적으로 관리할 수 있다.
Thus, according to an embodiment of the present invention, an executable file running on a computer system may be identified using an IAT-based software bus mark or API reference sequence-based software bus mark. Through this, it is possible to effectively manage the software asset by accurately identifying the executable file.

도 3은 본 발명의 실시예에 따라 소프트웨어 버스머크를 생성하는 방법을 설명하기 위한 예시도이다. 3 is an exemplary diagram illustrating a method for generating a software bus Merck in accordance with an embodiment of the present invention.

도 3을 참조하여, IAT를 이용하여 소프트웨어 버스마크를 생성하는 방법을 설명한다. Referring to FIG. 3, a method of generating a software bus mark using the IAT will be described.

상술한 바와 같이, PE 파일 포맷을 따른 실행 파일은 IAT을 구비하고 있고, IAT는 DLL들의 주소와 DLL들의 명칭, 해당 실행 파일이 이용하는 API들의 주소, API들의 명칭 및 API 호출 횟수 등의 정보를 포함할 수 있다. As described above, the executable file according to the PE file format includes the IAT, and the IAT includes information such as the addresses of the DLLs and the names of the DLLs, the addresses of the APIs used by the executable file, the names of the APIs, can do.

먼저, PE 파일 포맷에서 추출된 IAT로부터 API들의 주소 정보를 제거할 수 있다(S310). 즉, API 주소는 변경될 수 있으므로, 실행 파일의 특징 정보로 사용하지 않을 수 있다. First, the address information of the APIs may be removed from the IAT extracted from the PE file format (S310). That is, since the API address can be changed, it is not used as the feature information of the executable file.

다음으로, API 주소가 제거된 IAT에 대한 해쉬 값(hash value)을 산출하고 산출된 해쉬 값을 소프트웨어 버스마크(IAT 기반 소프트웨어 버스마크)로 활용할 수 있다(S320). Next, a hash value for the IAT from which the API address has been removed may be calculated, and the calculated hash value may be utilized as a software bus mark (IAT-based software bus mark) (S320).

상세하게는, IAT에 포함된 정보를 바이트 열로서 입력받아 이를 토대로 소정의 해쉬 함수(hash function)에 입력하여 해쉬 값을 생성하고, 생성된 해쉬 값을 해당 실행 파일의 소프트웨어 버스마크(IAT 기반 소프트웨어 버스마크)로서 출력할 수 있다. 예컨대, DLL들의 개수, DLL들의 명칭, API들의 개수 및 API들의 명칭 중 적어도 하나를 조합하여 해쉬 값을 생성할 수 있고, 생성된 해쉬 값을 IAT 기반 소프트웨어 버스마크로 활용할 수 있다. In detail, the information included in the IAT is input as a byte string, and a hash value is generated by inputting it into a predetermined hash function based on the byte string. The generated hash value is converted into a software bus mark (IAT-based software Bus mark). For example, a hash value can be generated by combining at least one of the number of DLLs, the names of DLLs, the number of APIs, and the names of APIs, and the generated hash value can be utilized as an IAT-based software bus mark.

즉, IAT 기반 소프트웨어 버스마크는 해당 실행 파일의 기능을 반영하는 특징 정보로 해당 실행 파일을 효과적으로 식별할 수 있도록 한다. IAT 기반 소프트웨어 버스마크를 위조 또는 변조하기 위해서는 IAT를 위조 또는 변조해야 하기 때문에 실행 파일의 기능을 영향을 주지 않고 IAT 기반 소프트웨어 버스마크를 위조 또는 변조하기 어렵다. 따라서, IAT 기반 소프트웨어 버스마크는 실행 파일을 식별하는데 효과적으로 활용될 수 있다.That is, the IAT-based software bus mark can effectively identify the executable file as feature information reflecting the function of the executable file. Falsifying or modulating IAT-based software bus marks requires forging or tampering with IATs, making it difficult to forge or tamper with IAT-based software bus marks without affecting executable functionality. Thus, an IAT-based software bus mark can be effectively utilized to identify an executable file.

따라서, IAT 기반 소프트웨어 버스마크를 이용하여 권한 없이 변경된 실행 파일을 식별할 수 있다.
Therefore, IAT-based software bus marks can be used to identify unauthorized executable files.

도 4는 본 발명의 실시예에 따른 API 참조 시퀀스를 생성하는 방법을 설명하기 위한 예시도이다. 4 is an exemplary diagram illustrating a method for generating an API reference sequence according to an embodiment of the present invention.

도 4를 참조하여, API 참조 시퀀스 기반 소프트웨어 버스마크를 설명한다. Referring to FIG. 4, an API reference sequence based software bus mark is described.

IAT 기반 소프트웨어 버스마크를 이용할 경우, 버전을 달리하는 실행 파일을 효과적으로 식별하지 못할 수 있다. 즉, 동일한 실행 파일이나 버전을 달리할 경우, IAT 기반 소프트웨어 버스마크를 이용하여 이를 구분하지 못할 수 있다. Using an IAT-based software bus mark may not effectively identify executable versions that have different versions. That is, if the same executable file or version is different, IAT-based software bus marks may not be used to distinguish between them.

이러한 경우에는, API 참조 시퀀스에 대한 정보를 이용하여 실행 파일을 식별할 수 있다. API 참조 시퀀스 기반 소프트웨어 버스마크는 API 참조 시퀀스에 대한 정보일 수 있다. In this case, the executable file can be identified using the information on the API reference sequence. The API reference sequence-based software bus mark may be information about the API reference sequence.

API 참조 시퀀스는 실행 파일에 대한 추가적인 분석을 통하여 획득될 수 있으므로, 컴퓨터 시스템에 추가적인 오버헤드를 발생시킬 수 있다. 따라서, IAT 기반 소프트웨어 버스마크를 이용하여 실행 파일이 식별된 경우에는 API 참조 시퀀스 기반 소프트웨어 버스마크를 활용하지 않을 수 있다.The API reference sequence can be obtained through additional analysis on the executable file, thereby causing additional overhead to the computer system. Thus, an API reference sequence based software bus mark may not be utilized if an executable file is identified using an IAT-based software bus mark.

API 참조 시퀀스는 역어셈블된(disassembled) 실행 코드(code) 또는 명령(instruction)로부터 추출될 수 있다. The API reference sequence may be extracted from disassembled executable code or instructions.

상세하게는, 역어셈블된 실행 코드 또는 명령으로부터 콜(call)되는 API의 주소를 추출할 수 있다(S410). 또한, 추출된 API 주소의 순서를 나타내는 시퀀스로 API 참조 시퀀스를 생성할 수 있다. In detail, the address of the API to be called from the disassembled executable code or command may be extracted (S410). In addition, an API reference sequence can be generated by a sequence indicating the order of the extracted API addresses.

따라서, 본 발명의 실시예에 따르면, 실행 파일을 위한 API 참조 시퀀스에 대한 정보를 소프트웨어 버스마크로 하여 실행 파일을 식별할 수 있다(S420).
Therefore, according to the embodiment of the present invention, the executable file can be identified by software bus mark information on the API reference sequence for the executable file (S420).

도 5는 본 발명의 실시예에 따른 소프트웨어 자산 관리 장치의 구성을 설명하기 위한 블록도이다. 5 is a block diagram illustrating a configuration of a software asset management apparatus according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 실시예에 따른 소프트웨어 자산 관리 장치(100)는, 수집부(110), 버스마크 생성부(120), 식별부(130) 및 관리부(140)를 포함할 수 있다. 5, the software asset management apparatus 100 according to the embodiment of the present invention may include a collection unit 110, a bus mark generation unit 120, an identification unit 130, and a management unit 140 have.

수집부(110)는 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집할 수 있다. 여기서, 소프트웨어 자산 관리 장치(100)는 대상 컴퓨터 시스템에 포함되어 설치되거나, 대상 컴퓨터 시스템과 연동할 수 있는 외부 기기일 수 있다. The collecting unit 110 may collect an executable file to be executed in the target computer system. Here, the software asset management apparatus 100 may be included in the target computer system or may be an external device capable of interworking with the target computer system.

컴퓨터 시스템에서 실행되는 모든 실행 파일을 수집할 수 있다. 즉, 컴퓨터 시스템에서 실행되는 오픈 소스 소프트웨어(Open Source Software) 및 프리웨어(freeware)를 포함하는 실행 파일을 수집할 수 있다. You can collect all executable files that run on a computer system. That is, it can collect executable files including open source software and freeware that run on a computer system.

버스마크 생성부(120)는 실행 파일의 기능을 반영하는 정보에 기반하여 소프트웨어 버스마크를 생성할 수 있다. The bus mark generating unit 120 may generate a software bus mark based on information reflecting the function of the executable file.

소프트웨어 버스마크는 실행 파일의 고유한 특징(feature) 정보를 포함하는 것으로 실행 파일을 식별하는 정보로 활용될 수 있다. 소프트웨어 버스마크는 다양한 특징 정보를 활용하여 생성될 수 있으나, 실행 파일의 기능을 반영하는 정보를 활용하여 생성할 경우 위변조가 어려운 장점이 있다. The software bus mark includes unique feature information of the executable file and can be utilized as information for identifying the executable file. The software bus mark can be created by using various feature information, but there is an advantage that it is difficult for forgery and falsification to be generated by utilizing the information reflecting the function of the executable file.

버스마크 생성부(120)는 DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)에 기반하여 소프트웨어 버스마크(IAT 기반 소프트웨어 버스마크)를 생성할 수 있다. The bus mark generating unit 120 generates a bus mark (IAT) based on an IAT (Import Address Table) including information on at least one of information on DDL (Dynamic Link Library) and information on API (application program interface) Based software bus mark).

식별부(130)는 소프트웨어 버스마크를 이용하여 실행 파일을 식별할 수 있다. 즉, 식별부(130)는 IAT 기반 소프트웨어 버스마크를 이용하여 실행 파일을 식별할 수 있다. The identification unit 130 can identify the executable file using the software bus mark. That is, the identification unit 130 can identify the executable file using the IAT-based software bus mark.

또한, IAT에 기반하여 생성된 소프트웨어 버스마크를 이용하여 실행 파일을 정확하게 식별하지 못하는 경우에는, 식별부(130)는 실행 파일을 위한 API 참조 시퀀스에 대한 정보를 소프트웨어 버스마크(API 참조 시퀀스 기반 소프트웨어 버스마크)로 하여 실행 파일을 식별할 수 있다.In addition, when the executable file can not be correctly identified using the software bus mark generated based on the IAT, the identification unit 130 stores information about the API reference sequence for the executable file in a software bus mark (API reference sequence-based software Bus mark) to identify an executable file.

상세하게는, 식별부(130)는 소프트웨어 버스마크를 기 구축된 소프트웨어 자산 관리 DB(200)와 비교하여 실행 파일을 식별할 수 있다. More specifically, the identification unit 130 can identify the executable file by comparing the software bus mark with the pre-built software asset management DB 200. [

여기서, 소프트웨어 자산 관리 DB(200)는 컴퓨터 시스템에서 실행될 수 있는 실행 파일들에 대한 정보를 이용하여 미리 구축될 수 있으며, 소프트웨어 자산 관리 장치(100)에 포함되어 운영되거나 별개로 운영될 수 있다.Here, the software asset management DB 200 can be constructed in advance using information on executable files that can be executed in the computer system, and can be included in the software asset management apparatus 100 or operated separately.

또한, 소프트웨어 자산 관리 DB(200)는 IAT에 기반한 소프트웨어 버스마크, API 참조 시퀀스에 대한 정보에 기반한 소프트웨어 버스마크, 소프트웨어 네임, 라이센싱 정보 및 버전 정보를 포함할 수 있다.The software asset management DB 200 may also include software bus marks based on IAT, software bus marks based on information on API reference sequences, software names, licensing information, and version information.

관리부(140)는 소프트웨어 버스마크를 이용한 실행 파일의 식별을 통하여 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리할 수 있다. 즉, 관리부(140)는 소프트웨어 자산 관리 DB(200)에 저장된 정보(예를 들어, 라이센싱 정보, 버전 정보)를 이용하여 실행 파일을 관리할 수 있다. The management unit 140 can manage the software assets executed in the target computer system through identification of the executable file using the software bus mark. That is, the management unit 140 can manage the executable file using the information stored in the software asset management DB 200 (for example, licensing information and version information).

상세하게는, 관리부(140)는 식별된 실행 파일에 대한 라이센싱 정보 및 버전 정보를 정보를 대상 컴퓨터 시스템에 제공할 수 있다. 또한, 관리부(140)는 식별된 실행 파일에 대한 사용을 제어할 수 있다. In particular, the management unit 140 may provide the target computer system with the licensing information and version information for the identified executable file. In addition, the management unit 140 can control the use of the identified executable file.

예를 들어, 관리부(140)는 대상 컴퓨터 시스템의 실행 파일을 식별하여 해당 실행 파일에 대한 라이센싱 정보 및 버전 정보를 대상 컴퓨터 시스템의 사용자에게 제공할 수 있다. 여기서, 라이센싱 정보는 해당 실행 파일의 권리자에 대한 정보, 사용 권한에 대한 정보 및 사용 만료일에 대한 정보 등을 포함할 수 있으며, 버전 정보는 해당 실행 파일의 최종 버전에 대한 정보를 포함할 수 있다. For example, the management unit 140 may identify the executable file of the target computer system and provide licensing information and version information for the executable file to the user of the target computer system. Here, the licensing information may include information on the right holder of the executable file, information on usage rights, information on the expiration date of use, and the version information may include information on the final version of the executable file.

또한, 관리부(140)는 해당 실행 파일이 사용 권한이 없는 파일이거나, 사용 만료일이 지난 파일일 경우, 해당 실행 파일에 대한 사용을 제한할 수 있다. In addition, the management unit 140 can restrict the use of the executable file when the executable file is a file having no use right or a file whose expiration date has passed.

상술한 소프트웨어 자산 관리 방법은 소프트웨어 자산 관리 장치(100)에 의해 구현할 수 있다. 따라서, 소프트웨어 자산 관리 장치는 상술한 소프트웨어 자산 관리 방법에 대한 설명을 참조하여 더욱 명확히 이해될 수 있다. The software asset management method described above can be implemented by the software asset management apparatus 100. [ Accordingly, the software asset management apparatus can be more clearly understood with reference to the description of the software asset management method described above.

상술한 소프트웨어 자산 관리 장치(100)의 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.Although each component of the above-described software asset management apparatus 100 has been described as being arranged in each component section for convenience of explanation, at least two of the components may be combined to form one component, or one component may be divided into a plurality of components, And the case of the integrated and separate embodiments of each of these components is also included in the scope of the present invention unless departing from the essence of the present invention.

또한, 본 발명의 실시예에 따른 소프트웨어 자산 관리 장치(100)는, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다. Also, the software asset management apparatus 100 according to the embodiment of the present invention can be implemented 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.

상술한 본 발명의 실시예에 따른 소프트웨어 자산 관리 방법 및 장치는 컴퓨터 시스템에서 실행되는 모든 실행 파일을 소프트웨어 버스마크에 기반하여 식별함으로써, 소프트웨어 자산을 효과적으로 관리할 수 있도록 한다. The software asset management method and apparatus according to the embodiment of the present invention can effectively manage software assets by identifying all executable files executed in the computer system based on software bus marks.

특히, 본 발명의 실시예에 따른 소프트웨어 버스마크는 실행 파일의 기능과 관련된 IAT 정보 및 API 참조 시퀀스에 대한 정보를 활용하기 때문에 위조 또는 변조에 강인한 장점이 있다. In particular, since the software bus mark according to the embodiment of the present invention utilizes the IAT information and the API reference sequence information related to the function of the executable file, it is advantageous against forgery or modulation.

또한, 버전이 다르나 동일한 기능을 수행하는 실행 파일도 효과적으로 식별하도록 하여 소프트웨어 자산 및 버전 관리를 동시에 수행할 수 있는 장점이 있다. In addition, there is an advantage in that the software asset and the version management can be simultaneously performed by effectively identifying the executable file that performs the same function even though the version is different.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 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

100: 소프트웨어 자산 관리 장치
110: 수집부 120: 버스마크 생성부
130: 식별부 140: 관리부
200: 소프트웨어 자산 관리 DB
100: software asset management device
110: collecting unit 120: bus mark generating unit
130: Identification unit 140:
200: Software Asset Management DB

Claims (21)

대상 컴퓨터 시스템이 수행하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법에 있어서,
상기 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집하는 단계;
상기 실행 파일로부터 DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)에 기반하여 IAT 기반 소프트웨어 버스마크를 생성하는 단계;
상기 IAT 기반 소프트웨어 버스마크를 기 구축된 소프트웨어 자산 관리 DB와 비교하여 상기 실행 파일을 식별하는 단계; 및
상기 소프트웨어 버스마크를 이용한 상기 실행 파일의 식별을 통하여 상기 대상 컴퓨터 시스템에서 상기 식별된 실행 파일에 상응하여 실행되는 소프트웨어 자산을 관리하는 단계를 포함하되,
상기 실행 파일을 식별하는 단계는, 상기 IAT 기반 소프트웨어 버스마크를 이용하여 상기 실행 파일을 식별하지 못한 경우, 상기 실행 파일을 위한 API 참조 시퀀스 기반 소프트웨어 버스마크를 이용하여 상기 실행 파일을 식별하며,
상기 API 참조 시퀀스 기반 소프트웨어 버스마크는, 역어셈블된(disassembled) 실행 코드 또는 명령으로부터 콜(call)되는 API의 주소의 순서에 기반하는 것을 특징으로 하는, 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
A software asset management method based on software bus marks performed by a target computer system,
Collecting executable files to be executed on the target computer system;
Generating an IAT-based software bus mark based on an IAT (Import Address Table) including information on at least one of information on DDL (Dynamic Link Library) and information on API (Application Program Interface) from the executable file ;
Comparing the IAT-based software bus mark with an established software asset management DB to identify the executable file; And
Managing software assets executed in accordance with the identified executable file in the target computer system through identification of the executable file using the software bus mark,
Wherein identifying the executable file comprises identifying the executable file using an API reference sequence based software bus mark for the executable file if the executable file is not identified using the IAT based software bus mark,
Wherein the API reference sequence based software bus mark is based on a sequence of disassembled executable code or an address of an API that is called from the instruction.
청구항 1에 있어서,
상기 실행 파일은,
마이크로소프트 윈도우의 EXE 파일, Java의 바이트 파일, 리눅스의 a.out 파일 및 안드로이드의 DEX 파일 중 어느 하나인 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
The method according to claim 1,
The executable file includes:
Wherein the software asset is one of a Microsoft Windows EXE file, a Java byte file, a Linux a.out file, and an Android DEX file.
청구항 1에 있어서,
상기 실행 파일을 수집하는 단계는,
상기 대상 컴퓨터 시스템에서 실행되는 오픈 소스 소프트웨어 및 프리웨어를 포함하는 상기 실행 파일을 수집하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
The method according to claim 1,
The collecting of the executable file comprises:
And collecting the executable file including open source software and freeware running in the target computer system.
삭제delete 청구항 1에 있어서,
상기 IAT 기반 소프트웨어 버스마크를 생성하는 단계는,
상기 IAT에 대한 해쉬 값(hash value)을 산출하고 상기 해쉬 값을 상기 IAT 기반 소프트웨어 버스마크로 생성하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
The method according to claim 1,
Wherein generating the IAT-based software bus mark comprises:
Calculating a hash value for the IAT and generating the hash value as the IAT-based software bus mark.
삭제delete 삭제delete 청구항 1에 있어서,
상기 기 구축된 소프트웨어 자산 관리 DB는,
IAT(Import Address Table)에 기반한 소프트웨어 버스마크, API(Application Program Interface) 참조 시퀀스에 대한 정보에 기반한 소프트웨어 버스마크, 소프트웨어 네임, 라이센싱 정보 및 버전 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
The method according to claim 1,
The pre-built software asset management DB includes:
A software bus mark based on an IAT (Import Address Table), a software bus mark based on information on an API (Application Program Interface) reference sequence, software name, licensing information and version information. Based software asset management method.
삭제delete 청구항 8에 있어서,
상기 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 단계는,
상기 식별된 실행 파일에 대한 라이센싱 정보 및 버전 정보를 상기 대상 컴퓨터 시스템에 제공하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
The method of claim 8,
Wherein managing software assets running on the target computer system comprises:
And providing licensing information and version information for the identified executable file to the target computer system.
청구항 10에 있어서,
상기 대상 컴퓨터 시스템에서 실행되는 소프트웨어 자산을 관리하는 단계는,
상기 식별된 실행 파일에 대한 사용을 제어하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법.
The method of claim 10,
Wherein managing software assets running on the target computer system comprises:
And controlling usage of the identified executable file. ≪ RTI ID = 0.0 > 11. < / RTI >
대상 컴퓨터 시스템 상에서 동작하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치에 있어서,
상기 대상 컴퓨터 시스템에서 실행되는 실행 파일을 수집하는 수집부;
상기 실행 파일로부터 DDL(Dynamic Link Library)에 대한 정보 및 API(Application Program Interface)에 대한 정보 중 적어도 하나에 대한 정보를 포함하는 IAT(Import Address Table)에 기반하여 IAT 기반 소프트웨어 버스마크를 생성하는 버스마크 생성부;
상기 IAT 기반 소프트웨어 버스마크를 기 구축된 소프트웨어 자산 관리 DB와 비교하여 상기 실행 파일을 식별하는 식별부; 및
상기 소프트웨어 버스마크를 이용한 상기 실행 파일의 식별을 통하여 상기 대상 컴퓨터 시스템에서 상기 식별된 실행 파일에 상응하여 실행되는 소프트웨어 자산을 관리하는 관리부를 포함하되,
상기 식별부는, 상기 IAT 기반 소프트웨어 버스마크를 이용하여 상기 실행 파일을 식별하지 못한 경우, 상기 실행 파일을 위한 API 참조 시퀀스 기반 소프트웨어 버스마크를 이용하여 상기 실행 파일을 식별하며,
상기 API 참조 시퀀스 기반 소프트웨어 버스마크는, 역어셈블된(disassembled) 실행 코드 또는 명령으로부터 콜(call)되는 API의 주소의 순서에 기반하는 것을 특징으로 하는, 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치.
A software asset management device based on software bus marks operating on a target computer system,
A collection unit for collecting executable files executed in the target computer system;
A bus for generating an IAT-based software bus mark based on an IAT (Import Address Table) including at least one of information about DDL (Dynamic Link Library) and information about an API (Application Program Interface) A mark generating unit;
An identification unit for comparing the IAT-based software bus mark with an established software asset management DB to identify the executable file; And
And a management unit for managing software assets to be executed corresponding to the identified executable file in the target computer system through identification of the executable file using the software bus mark,
Wherein the identification unit identifies the executable file using an API reference sequence based software bus mark for the executable file if the executable file can not be identified using the IAT based software bus mark,
Wherein the API reference sequence based software bus mark is based on a sequence of disassembled executable code or an address of an API that is called from the instruction.
청구항 12에 있어서,
상기 수집부는,
상기 대상 컴퓨터 시스템에서 실행되는 오픈 소스 소프트웨어 및 프리웨어를 포함하는 상기 실행 파일을 수집하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치.
The method of claim 12,
Wherein,
And collecting the executable file including open source software and freeware executed in the target computer system.
삭제delete 청구항 12에 있어서,
상기 버스마크 생성부는,
상기 IAT에 대한 해쉬 값(hash value)을 산출하고 상기 해쉬 값을 상기 IAT 기반 소프트웨어 버스마크로 생성하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치.
The method of claim 12,
Wherein the bus mark generating unit comprises:
Calculating a hash value for the IAT and generating the hash value as the IAT-based software bus mark.
삭제delete 삭제delete 청구항 12에 있어서,
상기 기 구축된 소프트웨어 자산 관리 DB는
IAT(Import Address Table)에 기반한 소프트웨어 버스마크, API(Application Program Interface) 참조 시퀀스에 대한 정보에 기반한 소프트웨어 버스마크, 소프트웨어 네임, 라이센싱 정보 및 버전 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치.
The method of claim 12,
The previously constructed software asset management DB
A software bus mark based on an IAT (Import Address Table), a software bus mark based on information on an API (Application Program Interface) reference sequence, software name, licensing information and version information. Based software asset management device.
삭제delete 청구항 12에 있어서,
상기 관리부는,
상기 식별된 실행 파일에 대한 라이센싱 정보 및 버전 정보를 상기 대상 컴퓨터 시스템에 제공하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치.
The method of claim 12,
Wherein,
And providing licensing information and version information for the identified executable file to the target computer system.
청구항 12에 있어서,
상기 관리부는,
상기 식별된 실행 파일에 대한 사용을 제어하는 것을 특징으로 하는 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 장치.
The method of claim 12,
Wherein,
And controls usage of the identified executable file. ≪ Desc / Clms Page number 21 >
KR1020130133048A 2013-11-04 2013-11-04 Method for software asset management based on software birthmark and apparatus thereof KR101624387B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130133048A KR101624387B1 (en) 2013-11-04 2013-11-04 Method for software asset management based on software birthmark and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130133048A KR101624387B1 (en) 2013-11-04 2013-11-04 Method for software asset management based on software birthmark and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20150051508A KR20150051508A (en) 2015-05-13
KR101624387B1 true KR101624387B1 (en) 2016-05-25

Family

ID=53388959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130133048A KR101624387B1 (en) 2013-11-04 2013-11-04 Method for software asset management based on software birthmark and apparatus thereof

Country Status (1)

Country Link
KR (1) KR101624387B1 (en)

Families Citing this family (4)

* 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
KR102006245B1 (en) * 2017-09-15 2019-08-06 주식회사 인사이너리 Method and system for identifying an open source software package based on binary files
KR102006242B1 (en) 2017-09-29 2019-08-06 주식회사 인사이너리 Method and system for identifying an open source software package based on binary files
CN108170467B (en) * 2017-12-02 2021-04-13 西安财经学院 Constraint limited clustering and information measurement software memorial feature selection method and computer

Non-Patent Citations (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN103646044A (en) Mobile terminal identification method and device
CN102866910A (en) Describing native application programming interfaces of an operating system with metadata
KR101624387B1 (en) Method for software asset management based on software birthmark and apparatus thereof
US7814328B1 (en) Digital signatures for embedded code
WO2022078366A1 (en) Application protection method and apparatus, device and medium
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
KR102011725B1 (en) Whitelist construction method for analyzing malicious code, computer readable medium and device for performing the method
KR101604891B1 (en) Method for detection software piracy and theft using partial information of executable file and apparatus using the same
US6898555B2 (en) Method for indicating the integrity of use-information of a computer program
CN106295402B (en) DLL file hiding method and system
CN107533614B (en) Device for storing data and storage medium
JP6906057B2 (en) How to secure your software code
JP2005182800A (en) Method and system of accessing at least one target file in computer system with operating system with file locking implemented at file-open time
TWI682296B (en) Image file packaging method and image file packaging system
KR101845155B1 (en) Method and system for providing application package and method and system for executing application
CN112925523A (en) Object comparison method, device, equipment and computer readable medium
KR101643454B1 (en) Method and apparatus for evaluating performance of software filtering
CN111679855A (en) Application software package conversion method, management method and device
CN106897588B (en) Processing method and device of label function
KR101594643B1 (en) Method for detecting software piracy and theft based on partial information of executable file, and apparatus therefor
TWI715647B (en) System and method for ip fingerprinting and ip dna analysis
CN104077304B (en) file identification system and method
WO2016000557A1 (en) Method and system for identifying whether application is genuine by means of digital watermark
KR101654973B1 (en) Apparatus and method for software filtering
JP2017207876A (en) Dump mask program, dump mask method, and information processing device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190408

Year of fee payment: 4