KR102193017B1 - Method for Software Copyright Protection using Method Generation based Watermarking - Google Patents

Method for Software Copyright Protection using Method Generation based Watermarking Download PDF

Info

Publication number
KR102193017B1
KR102193017B1 KR1020190134461A KR20190134461A KR102193017B1 KR 102193017 B1 KR102193017 B1 KR 102193017B1 KR 1020190134461 A KR1020190134461 A KR 1020190134461A KR 20190134461 A KR20190134461 A KR 20190134461A KR 102193017 B1 KR102193017 B1 KR 102193017B1
Authority
KR
South Korea
Prior art keywords
unclear
predicate
overriding
overloading
software
Prior art date
Application number
KR1020190134461A
Other languages
Korean (ko)
Inventor
박희완
Original Assignee
한라대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한라대학교 산학협력단 filed Critical 한라대학교 산학협력단
Priority to KR1020190134461A priority Critical patent/KR102193017B1/en
Application granted granted Critical
Publication of KR102193017B1 publication Critical patent/KR102193017B1/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/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/18Legal services
    • G06Q50/184Intellectual property management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to a software copyright protection technique using method generation-based watermarking, which uses method overloading and overriding to increase the concealability of watermarks, and uses opaque predicates to prevent execution performance degradation due to the watermarks. A method of the present invention comprises the processes of: generating overloading methods; generating overriding target classes and methods; and generating a method call statement to which an opaque predicate is applied.

Description

메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법 {Method for Software Copyright Protection using Method Generation based Watermarking}Method for Software Copyright Protection using Method Generation based Watermarking}

본 발명은 스마트폰 또는 테블릿PC 등 스마트기기에 사용되는 다양한 어플리케이션에 소프트웨어 워터마크를 적용한 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법에 관한 것이다.The present invention relates to a software copyright protection method using watermarking based on method generation in which a software watermark is applied to various applications used in smart devices such as a smart phone or a tablet PC.

스마트폰이 가지고 있는 편리함과 다양한 기능 때문에 남녀노소를 가리지 않고 보편적으로 사용하는 기기가 되었으며, 보급률은 해가 갈수록 급격히 증가하여 2018년 기준으로 전 세계 성인 중 3명중 2명이 스마트폰을 사용하고 있다.Because of the convenience and various functions of a smartphone, it has become a device that is universally used regardless of gender and age, and the penetration rate has rapidly increased as the years go by, and as of 2018, two out of three adults around the world use smartphones.

스마트폰 사용자가 증가할수록 스마트폰 앱 개발자들은 사용자들이 원하는 앱을 개발하여 수익을 확대하고자 한다. 그런데 앱을 정상적인 절차를 통해서 구매하지 않고 불법 복제하여 사용하는 경우가 발생하고 있으며 실제로 불법 복제된 앱으로 인한 피해는 연간 40억 달러에 달한다.As the number of smartphone users increases, smartphone app developers want to increase revenue by developing apps that users want. However, there are cases of illegally copying and using apps without purchasing them through normal procedures, and the damage caused by illegally copied apps amounts to $4 billion per year.

디지털 워터마킹은 주로 콘텐츠 저작권을 입증하기 위한 용도로 사용된다. 이와 유사하게 소프트웨어의 저작권 보호를 위해서 소프트웨어 워터마킹 기법이 제안되었다. Digital watermarking is mainly used to prove content copyright. Similarly, a software watermarking technique has been proposed for copyright protection of software.

소프트웨어 워터마킹이란 소프트웨어에 저작권자의 정보를 포함한 워터마크를 삽입하고 추출하는 기술이다. 워터마크를 이용해 개발자는 프로그램에 대한 저작권을 증명할 수 있고 무분별한 도용 및 복제로 인한 피해를 예방할 수 있다. Software watermarking is a technology that inserts and extracts a watermark including copyright holder information in software. Using watermarks, developers can prove copyright to programs and prevent damage caused by reckless theft and duplication.

여기서, 소프트웨어 워터마킹에 대하여 상세히 설명하면, 소프트웨어 워터마크 추출 방법에 따라서 정적 소프트웨어 워터마크와 동적 소프트웨어 워터마크로 나눌 수 있다.Here, software watermarking can be divided into a static software watermark and a dynamic software watermark according to a software watermark extraction method.

정적 소프트웨어 워터마크는 파일 안에 정적인 형태로 저장되며 프로그램 실행 상태와 관련 없이 언제든지 삽입되어 있는 워터마크를 추출 가능하다. 국내의 기존 연구에서는 지적 재산권 보호를 위해 저수준 언어 기반 정적 워터마킹과 함수 호출 규약에 기반한 소프트웨어 워터마킹 기법등에서 정적 소프트웨어 워터마크를 삽입하는 방식을 제안하였고, 국외 연구로는 이미지를 프로그램의 정적 영역에 삽입하는 방식이 제안되었다.Static software watermarks are stored in a static form in a file, and the embedded watermark can be extracted at any time regardless of the program execution status. Existing studies in Korea have proposed a method of inserting static software watermarks in low-level language-based static watermarking and software watermarking techniques based on function calling conventions to protect intellectual property rights. A method of inserting was proposed.

동적 소프트웨어 워터마크는 프로그램이 반드시 실행되고 있을 때 워터마크를 추출할 수 있다는 특징이 있다. 프로그램 실행 중에 키 입력이나 마우스 동작에 의해서 숨겨진 워터마크가 나타나기도 하고[12] 프로그램에서 사용된 자료구조의 특징을 이용하거나 힙 또는 스택 데이터 영역에 삽입되는 방식으로도 구현 가능하다.Dynamic software watermarks have a feature that a watermark can be extracted when a program is always running. A hidden watermark may appear during program execution by key input or mouse movement [12], or it can be implemented by using the features of the data structure used in the program or inserting it into the heap or stack data area.

한국저작권 위원회가 제공하는 정적 워터마킹 시스템으로는 Codejam이 있다. Codejam은 소스코드에 원본 소스 코드에 워터마킹에 사용될 변수를 추가하는 방식으로 동작한다.Codejam is a static watermarking system provided by the Korea Copyright Commission. Codejam works by adding variables to be used for watermarking in the original source code in the source code.

도 1은 종래의 Codejam 시스템의 동작에 대한 예시 코드이다. 원본 소스 (a)에는 없었던 w 변수와 t 변수가 변형된 소스 (b)에 추가되었고, 이 변수들에 대한 연산에 사용된 상수인 1, 1353, 350, 4, 156, 494은 워터마킹에 사용될 수 있다. 1 is an exemplary code for the operation of a conventional Codejam system. Variables w and t, which were not in the original source (a), were added to the modified source (b), and the constants 1, 1353, 350, 4, 156, and 494, which were used in the operation of these variables, were used for watermarking. I can.

그러나, 이와 같은 종래의 Codejam 시스템은 두 가지 문제점을 가지고 있다. However, such a conventional Codejam system has two problems.

첫째, 코드 최적화에 취약하다. 변수 w와 t는 실제로 프로그램 동작과 상관없는 변수들이기 때문에 데이터의존성 분석을 통해서 제거 가능하므로 워터마크가 삭제될 수 있다. First, it is vulnerable to code optimization. Since the variables w and t are actually variables not related to the program operation, the watermark can be deleted because they can be removed through data dependency analysis.

둘째, 워터마크를 삽입하기 위해서 추가된 소스가 실제로 실행되기 때문에 워터마크의 양에 따라서 실행 성능이 저하될 수 밖에 없는 문제점이 있었다.Second, since the source added to embed the watermark is actually executed, there is a problem in that execution performance is degraded depending on the amount of watermark.

국내특허공개 제10-2011-0072112호 (공개일 2011.06.29일)Korean Patent Publication No. 10-2011-0072112 (Publication date 2011.06.29) 국내특허공개 제10-2015-0087075호 (공개일 2015.07.29일)Domestic Patent Publication No. 10-2015-0087075 (Publication date 2015.07.29)

따라서, 본 발명은 종래기술의 워터마크 시스템의 문제점을 개선하기 위하여, 메소드 오버로딩(overloading)과 오버라이딩(overriding)을 사용하여 워터마크의 은닉성을 높이고, 불분명 술어(opaque predicate)을 사용하여 워터마크로 인한 실행 성능 저하를 방지하도록 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법을 제공하는데 그 목적이 있다.Accordingly, in order to improve the problem of the watermark system of the prior art, the present invention increases the concealability of the watermark by using method overloading and overriding, and water using an opaque predicate. Its purpose is to provide a software copyright protection method using watermarking based on method generation that prevents execution performance degradation due to marks.

본 발명의 목적을 달성하기 위한 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 과정은 어플리케이션 설치가 가능한 스마트디바이스의 메모리의 운영체제 영역에 저장된 어플리케이션의 메소드(Method) 생성기반 워터마킹을 탑재한 소프트웨어 저작권 보호방법에 있어서, 상기 스마트디바이스는 메모리에 저장된 어플리케이션의 소프트웨어 소스코드의 원본 메소드 매개변수를 분석하여 오버로딩 메소드(Overloading methods)를 생성하는 제1과정; 상기 어플리케이션의 소프트웨어 소스코드의 클래스 상속관계(Class inheritance structure)를 분석하여 오버라이딩 메소드(Overriding methods)를 생성하는 제2과정; 및 상기 제1, 제2과정에서 생성된 각 오버로딩 메소드 및 오버라이딩 메소드에 불분명 술어를 적용한 메소드 호출문을 생성하는 제3과정;을 포함하여 이루어진 것을 특징으로 한다.The software copyright protection process using method generation-based watermarking to achieve the object of the present invention is a software copyright protection method equipped with watermarking based on method generation of an application stored in the operating system area of the memory of a smart device capable of installing an application. The method of claim 1, wherein the smart device comprises: a first step of generating an overloading method by analyzing an original method parameter of an application software source code stored in a memory; A second process of generating an overriding method by analyzing a class inheritance structure of the software source code of the application; And a third process of generating a method call statement in which an unclear predicate is applied to each overloading method and the overriding method generated in the first and second processes.

상기 제1과정은 상기 오버로딩 하고자 하는 대상 메소드를 선택하는 11단계; 상기 오버로딩 대상 메소드의 인자를 분석하는 12단계; 및 상기 12단계에서의 분석결과에 따라 오버로딩 규칙에 적합한 메소드를 생성하는 13단계;를 포함하는 것을 특징으로 한다.The first process includes 11 steps of selecting the target method to be overloaded; 12 step of analyzing an argument of the method to be overloaded; And a 13 step of generating a method suitable for an overloading rule according to the analysis result in step 12.

상기 제2과정은 오버라이딩하고자 하는 대상 메소드를 선택하는 21단계; 오버로딩 대상 클래스를 분석하는 22단계; 및 오버라이딩 규칙에 적합한 메소드를 생성하는 23단계;를 포함하는 것을 특징으로 한다.The second process includes 21 steps of selecting a target method to be overridden; 22 step of analyzing the class to be overloaded; And a 23 step of generating a method suitable for the overriding rule.

상기 제3과정에서 상기 오버로딩 메소드에 불분명 술어를 적용하는 과정은 불분명 술어 집합으로부터 임의로 집합을 추출하여 결과가 참인 술어를 원본 메소드 호출에 사용하고, 결과가 거짓인 술어에 생성된 메소드 호출을 연결시키며, 상기 불분명 술어를 적용하는 영역에서 실행되지 않는 메소드에 워터마크 정보를 삽입하는 것을 특징으로 한다.In the third process, in the process of applying an unclear predicate to the overloading method, a predicate whose result is true is used for calling the original method by randomly extracting a set from the unclear predicate set, and connecting the generated method call to the predicate whose result is false. And inserting watermark information into a method that is not executed in a region to which the unclear predicate is applied.

상기 제3과정에서 상기 오버라이딩 메소드에 불분명 술어 적용은 오버라이딩 불분명 술어 영역을 선택자를 이용하여 지정하고, 상기 지정된 불분명 술어 영역에 상기 실제로 사용되는 슈퍼클래스의 메소드를 제외한 나머지 서브클래스에 정의된 메소드에 워터마크 정보를 삽입하는 것을 특징으로 한다.In the third process, in the application of the unclear predicate to the overriding method, the overriding unclear predicate area is designated using a selector, and the method defined in the remaining subclasses excluding the actually used superclass method in the designated unclear predicate area Watermark information is inserted into the device.

본 발명에 따른 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법은 메소드 오버로딩과 오버라이딩을 사용하여, 기존 메소드와 이름이 동일한 메소드를 복제하므로, 원본 메소드와 워터마크를 위해서 생성된 가짜 메소드를 구별하기 어렵기 때문에 은닉성을 높일 수 있는 효과가 있으며, 저작자 정보가 포함된 워터마크가 여러 개의 메소드에 다수 복제되어 포함될 수 있기 때문에 저작권자의 워터마크를 모두 찾아서 삭제하는 것이 쉽지 않으며, 오버로딩 또는 오버라이딩된 메소드가 원본 코드가 유사하게 구성되었기 때문에 원본을 확인하는데 시간이 오래 걸리도록 하는 효과가 있다.The software copyright protection method using method generation-based watermarking according to the present invention duplicates the method with the same name as the existing method by using method overloading and overriding, so that the original method and the fake method created for the watermark are distinguished. Because it is difficult, it has the effect of enhancing concealability, and it is not easy to find and delete all watermarks of copyright holders because watermarks containing author information can be duplicated and included in several methods, and overloading or overriding Since the method is composed of the original code similarly, it has the effect of taking a long time to check the original.

또한, 불분명 술어(opaque predicate)는 참인지 거짓인지 구분이 어려운 조건식을 의미하는데, 이와 같은 불분명 술어를 사용하므로 워터마크 정보가 포함된 가짜 메소드가 데드코드(dead code)로 인식되어 삭제되는 것을 예방할 수 있으며, 자동 분석 도구에 의해서 워터마크를 무력화하는 것은 예방할 수 있을 뿐만 아니라, 실제로 가짜 메소드는 실행되지 않기 때문에 실행 성능 저하를 막을 수 있는 효과가 있다.In addition, an opaque predicate refers to a conditional expression that is difficult to distinguish between true or false.Since such an opaque predicate is used, it is possible to prevent a fake method containing watermark information from being recognized as a dead code and deleted. In addition, disabling the watermark by the automatic analysis tool can be prevented, and since the fake method is not actually executed, it has the effect of preventing execution performance degradation.

또한, 워터마킹 기법을 사용하면 불법 복제가 의심되거나 실제로 프로그램이 도용되었을 때 저작권 정보를 확인할 수 있으며 불법 복제 시도를 사전에 예방하는 효과가 있다.In addition, if the watermarking technique is used, copyright information can be checked when illegal copying is suspected or a program is actually stolen, and there is an effect of preventing illegal copying attempts in advance.

이러한 효과들로 인해 어플리케이션의 소프트웨어 저작권 정보를 안전하게 유지할 수 있게 된다.Due to these effects, it is possible to safely maintain the software copyright information of the application.

도 1은 종래기술에 따른 코드잼(Codejam) 시스템의 동작에 대한 예시 코드 표시도이고,
도 2는 본 발명을 구현하기 위한 스마트기기의 메모리의 운영체제 영역의 구성도이고,
도 3은 본 발명의 실시예에 따른 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 과정의 흐름도이고,
도 4은 도 3에서 메소드 오버로딩 생성기에 의한 메소드 오버로딩의 예시도이고,
도 5 및 도 6은 메소드 오버로딩 전과 후를 비교하기 위한 메소드의 예시도이고,
도 7은 메소드 오버라이딩 생성기에 의한 메소드 오버라이딩의 예시도이고,
도 8은 및 도 9는 메소드 오버라이딩 전,후의 비교를 위한 메소드 예시도이고,
도 10은 도 3에서 불분명 술어의 일 실시예를 표시한 표이고,
도 11은 도 3에서 불분명 술어가 추가되기 이전의 오버로딩 메소드의 예시도이고,
도 12는 도 3에서 불분명술어가 적용된 오버로딩 메소드의 예시도이고,
도 13은 도 3에서 불분명 술어가 추가되기 이전의 오버라이딩 메소드의 예시도이고,
도 14는 도 3에서 불분명술어가 적용된 오버라이딩 메소드의 예시도 이고,
도 15는 메소드 오버로딩 개수에 따른 소스와 apk 파일 크기를 측정한 도표이고,
도 16은 도 15에 대한 그래프 표시도이고,
도 17은 메소드 오버라이딩 생성에 의한 파일 사이즈 측정결과 표이고,
도 18은 도 17의 도표를 그래프로 표시한 도이고,
도 19는 불분명 술어의 개수에 의한 실행시간 오버헤드를 측정한 결과 표이고,
도 20은 도 10의 표를 그래프로 표시한 도이다.
1 is an exemplary code display diagram for the operation of a codejam system according to the prior art,
2 is a configuration diagram of an operating system area of a memory of a smart device for implementing the present invention,
3 is a flowchart of a software copyright protection process using method generation-based watermarking according to an embodiment of the present invention;
4 is an exemplary diagram of method overloading by the method overloading generator in FIG. 3,
5 and 6 are exemplary diagrams of methods for comparing before and after method overloading,
7 is an exemplary diagram of method overriding by a method overriding generator,
8 and 9 are exemplary diagrams of methods for comparison before and after method overriding,
10 is a table showing an embodiment of an unclear predicate in FIG. 3,
11 is an exemplary diagram of an overloading method before an unclear predicate is added in FIG. 3,
12 is an exemplary diagram of an overloading method to which an unclear predicate is applied in FIG. 3,
13 is an exemplary diagram of an overriding method before an unclear predicate is added in FIG. 3,
14 is an exemplary diagram of an overriding method to which an unclear predicate is applied in FIG. 3,
15 is a chart showing the measurement of source and apk file sizes according to the number of method overloading,
16 is a graph display diagram for FIG. 15,
17 is a table showing the result of measuring the file size by generating method overriding,
18 is a diagram showing the diagram of FIG. 17 as a graph,
19 is a table showing results of measuring execution time overhead due to the number of unclear predicates,
20 is a diagram showing the table of FIG. 10 as a graph.

상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. The features and effects of the present invention described above will become more apparent through the following detailed description in connection with the accompanying drawings, and accordingly, those of ordinary skill in the technical field to which the present invention pertains can easily implement the technical idea of the present invention. I will be able to.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 예시하고 본문에 상세하게 설명하고자 한다. The present invention will be described in detail in the text by illustrating specific embodiments, as various changes can be made and various forms can be applied.

그러나, 이는 본 발명을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. However, this is not intended to limit the present invention to a specific form disclosed, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention.

본 출원에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention.

이하, 본 발명의 바람직한 실시예에 따른 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법에 대하여 첨부된 도면을 참고하여 상세히 설명하면 다음과 같다.Hereinafter, a software copyright protection method using method generation-based watermarking according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

먼저, 도 2는 본 발명을 구현하기 위한 스마트기기의 메모리의 운영체제 영역을 표시한 도로서, 스마트폰, 스마트패트, 탭북, 노트북 등의 스마트기기(100)는 내장된 메모리 영역에 운영체제를 탑재하고, 탑재된 운영체제 기반의 다양한 어플리케이션을 설치하게 된다.First, FIG. 2 is a diagram showing an operating system region of a memory of a smart device for implementing the present invention, and a smart device 100 such as a smartphone, a smart pad, a tab book, and a notebook mounts an operating system in the built-in memory region. , It installs various applications based on the installed operating system.

이와 같이 상기 스마트기기(100)에 어플리케이션을 설치할 때, 소프트웨어에 오버로딩과 오버라이딩 기법으로 생성된 메소드로 인해 어플리케이션 분석이 어렵고, 워터마크 노출 위험이 감소된다.When an application is installed on the smart device 100 as described above, analysis of the application is difficult and the risk of watermark exposure is reduced due to the method generated by overloading and overriding in software.

도 3은 본 발명의 실시예에 따른 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 과정의 흐름도를 참조하여 설명하면 다음과 같다.3 is a flowchart of a software copyright protection process using method generation-based watermarking according to an embodiment of the present invention as follows.

본 발명의 실시예에 따른 메소드 생성 기반 워터마킹시스템 동작은 크게 두 단계로 진행되며, 먼저 1단계(Step 1)에서는 메소드 오버로딩과 오버라이딩 생성모듈이 동작한다.The operation of the method generation-based watermarking system according to an embodiment of the present invention is largely performed in two stages. First, in Step 1, the method overloading and the overriding generation module operate.

오버로딩 생성모듈은 원본 메소드 매개변수를 분석하여 오버로딩 메소드를 생성하고, 오버라이딩 생성모듈은 클래스 상속 관계를 분석하여 오버라이딩 클래스와 메소드를 생성한다.The overloading generation module analyzes the original method parameters to create an overloading method, and the overriding generation module analyzes the class inheritance relationship to create the overriding class and method.

2단계(Step 2)에서는 상기 1단계의 결과물에 불분명 술어를 이용한 메소드 호출문을 생성한다. 여기서, 불분명 술어는 기 저장된 불분명 술어 리스트로부터 추출된 불분명 술어를 오버로딩 또는 오버라이딩 메소드 호출문을 생성할 때 사용한다.In step 2, a method call statement using an unclear predicate is generated in the result of step 1. Here, the unclear predicate is used when overloading an unclear predicate extracted from a previously stored unclear predicate list or generating an overriding method call statement.

이하, 도 4 내지 도 14의 오버로딩 또는 오버라이딩 메소드의 예시를 참조하여 상기 각 단계에 대하여 상세히 설명하면 다음과 같다.Hereinafter, each step will be described in detail with reference to examples of the overloading or overriding method of FIGS. 4 to 14.

도 4는 메소드 오버로딩의 대표적인 예시로 동일한 이름의 메소드를 다수 생성하되, 메소드 호출이 컴파일 타임에 정적 바인딩될 수 있도록 매개변수의 개수나 타입이 서로 달라야만 한다.4 is a representative example of method overloading, where a number of methods of the same name are generated, but the number or types of parameters must be different so that method calls can be statically bound at compile time.

상기 메소드 오버로딩 기법을 활용하여 임의로 워터마크를 삽입하기 위해서는 오버로딩 메소드를 다수 생성할 필요가 있다. In order to insert a watermark arbitrarily using the method overloading technique, it is necessary to generate a number of overloading methods.

상기 오버로딩 메소드를 생성하기 위해서는 첫째, 오버로딩하고자 하는 대상 메소드를 선택해야 하고, 둘째, 오버로딩 대상 메소드의 인자를 분석해야 하고, 셋째 오버로딩 규칙에 적합한 메소드를 생성하여야 한다.In order to create the overloading method, first, a target method to be overloaded must be selected, second, an argument of an overloading target method must be analyzed, and third, a method suitable for the overloading rule must be created.

본 발명에서는 오버로딩 대상 메소드를 쉽게 선택할 수 있도록 오버로딩 대상 메소드의 시작 지점을 알리는 ‘// OVERLOADING {’ 와 종료 지점을 알리는 ‘// OVERLOADING }’ 두 개의 선택자를 사용하였다. 즉, 오버로딩 생성기는 원본 소스 코드를 읽어서 전체 소스 코드를 파싱할 필요가 없이 선택된 영역에 대해서만 메소드 매개변수를 분석하여 메소드를 생성하기 때문에 메소드 생성 과정이 단순해지는 장점이 있다.In the present invention, two selectors were used:'// OVERLOADING {'indicating the start point of the overloading target method and'// OVERLOADING }'indicating the end point so that the method to be overloaded can be easily selected. In other words, the overloading generator has the advantage of simplifying the method creation process because it does not need to parse the entire source code by reading the original source code, but analyzes the method parameters only for the selected area and creates a method.

도 5 및 도 6은 오버로딩 영역 선택자를 사용하여 오버로딩 전과 후의 예시도로서, 도 5에서 메소드 m은 오버로딩 대상 메소드로 선택되었고, 그 결과 도 6과 같이 m 메소드가 오버로딩된 형태로 3개의 메소드가 생성된 것을 확인할 수 있다. 예시에서는 오버로딩을 통해서 생성하고자 하는 메소드 숫자는 3개로 지정하였으나 원하는 개수만큼 변경이 가능하다.5 and 6 are exemplary diagrams before and after overloading using an overloading region selector. In FIG. 5, method m is selected as the method to be overloaded, and as a result, three methods are created in the form of overloading m method as shown in FIG. It can be confirmed. In the example, the number of methods to be created through overloading is set to 3, but it can be changed as many times as desired.

도 7은 메소드 오버라이딩의 대표적인 예제이다. 즉, 클래스 상속 관계에서 슈퍼클래스의 메소드와 동일한 이름의 메소드를 서브클래스에서 생성하고, 메소드 호출이 런타임에 동적 바인딩될 수 있도록 매개변수의 개수나 타입까지 모두 일치해야만 한다. 7 is a representative example of method overriding. In other words, in the class inheritance relationship, a method with the same name as the method of the super class must be created in the subclass, and the number and type of parameters must all match so that the method call can be dynamically bound at runtime.

상기 오버라이딩 메소드를 생성하기 위해서는 첫째, 오버라이딩하고자 하는 대상 메소드를 선택해야하고, 둘째, 오버로딩 대상 클래스를 분석해야하고, 셋째 오버라이딩 규칙에 적합한 메소드를 생성하여야 한다.In order to create the overriding method, first, a target method to be overridden must be selected, second, an overloading target class must be analyzed, and third, a method suitable for the overriding rule must be created.

본 발명에서는 오버로딩과 유사하게 오버라이딩 대상 메소드를 쉽게 선택할 수 있도록 ‘// OVERRIDING {’ 와 ‘// OVERRIDING }’ 선택자를 사용하였다.In the present invention, the'// OVERRIDING {'and'// OVERRIDING }'selectors are used to easily select an overriding target method similar to overloading.

도 8 및 도 9는 오버라이딩 영역 선택자를 사용하여 오버로딩 하기 전과 후의 예시도이다. 즉, 클래스 상속 관계를 생성하여 서브클래스와 오버라이딩 메소드를 3개를 생성한 결과를 확인할 수 있다. 오버라이딩을 통해서 생성하고자 하는 서브클래스와 메소드 개수는 임의로 변경 가능하다.8 and 9 are exemplary diagrams before and after overloading using an overriding region selector. That is, you can check the result of creating three subclasses and three overriding methods by creating a class inheritance relationship. The number of subclasses and methods to be created through overriding can be arbitrarily changed.

이와 같이 오버로딩 및 오버라이딩 생성기에 의해서 생성된 각 메소드에는 원본에서 존재하지 않았던 메소드이고 실제로 실행되지 않는 가짜 메소드이다. As such, each method created by the overloading and overriding generator is a method that did not exist in the original and is a fake method that does not actually run.

따라서 가짜 메소드에 의해서 실행 성능이 저하되지 않으며 원하는 워터마크를 임의로 삽입할 수 있는 장소로 사용된다. Therefore, execution performance is not degraded by fake methods, and it is used as a place where desired watermarks can be inserted arbitrarily.

그러나 소스 최적화 과정에서 실제로 호출되지 않는 메소드는 데드코드(Dead Code)로 인식하여 삭제될 수 있다. 따라서 생성된 가짜 메소드가 삭제되지 않도록 하기 위해서 불분명 술어를 사용한다.However, methods that are not actually called during the source optimization process can be recognized as dead code and deleted. Therefore, we use an unclear predicate to prevent the created fake method from being deleted.

도 10은 불분명 술어의 예시 리스트이며, 불분명 술어는 정적 분석에 의해서 참, 거짓을 판단하기 어려운 표현식 의미하며 워터마킹에 사용되는 코드를 숨기는 목적으로 사용 가능하다. 불분명 술어를 사용하면 실제로 실행 여부를 판단하기 어렵기 때문에 정적 분석에 의한 최적화에도 워터마크가 사라지지 않고 남을 수 있다.10 is an exemplary list of unclear predicates, which are expressions that are difficult to determine true or false by static analysis, and can be used for the purpose of hiding codes used for watermarking. If an unclear predicate is used, it is difficult to determine whether it is actually executed, so the watermark can remain without disappearing even in the optimization by static analysis.

상기 오버로딩 또는 오버라이딩 메소드가 생성되었다면 불분명 술어를 추가하는 과정이 필요하다. 상기 불분명 술어 집합으로부터 임의로 집합을 추출하여 결과가 참인 술어를 원본 메소드 호출에 사용하고, 결과가 거짓인 술어에 생성된 메소드 호출을 연결시킨다. 참과 거짓은 NOT 연산을 이용해서 반대로 바꿀 수 있기 때문에 불분명 술어 집합의 모든 데이터를 활용할 수 있다.If the overloading or overriding method is created, a process of adding an unclear predicate is required. A set is randomly extracted from the unclear predicate set, a predicate whose result is true is used for calling an original method, and the generated method call is connected to a predicate whose result is false. Since true and false can be reversed using the NOT operation, all data in an unclear predicate set can be used.

도 11 과 도 12는 각각 메소드 오버로딩에 불분명 술어를 적용하기 전과 후의 예시도로서, 도 11에서 불분명 술어를 적용하고자 하는 영역을 선택하기 위해서 시작 위치에 선택자 ‘// OVERLOADING OPAQUE {’를 추가하였고, 종료 위치에 ‘// OVERLOADING OPAQUE }’를 추가하였다.11 and 12 are exemplary diagrams before and after applying an unclear predicate to method overloading, respectively. In FIG. 11, a selector'// OVERLOADING OPAQUE {'was added at the start position to select a region to which the unclear predicate is to be applied, Added'// OVERLOADING OPAQUE }'to the end position.

도 12에서의 4번째 라인의 소스가 원본이며 그 이외의 소스는 불분명 술어 생성기에 의해서 자동으로 생성된 소스이다. 즉, 원본 소스는 항상 실행되며, 5번째 라인부터 이어지는 3개의 메소드 호출문은 불분명 술어의 결과가 항상 거짓(false)이므로 실행되지 않는다. The source of the fourth line in FIG. 12 is the original, and other sources are sources automatically generated by the unclear predicate generator. That is, the original source is always executed, and the three method call statements from line 5 are not executed because the result of the unclear predicate is always false.

그러나 의도적으로 삽입된 불필요한 메소드 호출이 정적 분 석에 의해서 삭제되지 못한다. 그 이유는 결과를 알기 어려운 불분명 술어를 사용했기 때문이다. 따라서 실제로 실행되는 첫 번째 m 메소드를 제외한 나머지 m 메소드에 워터마크 정보를 삽입할 수 있다.However, unnecessary method calls that were intentionally inserted cannot be deleted by static analysis. The reason is that it uses an unclear predicate that makes it difficult to know the result. Therefore, watermark information can be inserted into the m methods other than the first m method that is actually executed.

오버라이딩 메소드에 불분명 술어를 적용하는 방법은 오버로딩에서 사용한 방법과 유사하다. 그러나 메소드 오버라이딩은 클래스 상속 관계가 필요하기 때문에 불분명 술어를 추가할 때 클래스 생성하는 부분에 적용해야 한다.The method of applying an unclear predicate to the overriding method is similar to the method used in overloading. However, method overriding requires class inheritance, so when adding an unclear predicate, it should be applied to the part of creating a class.

도 13 과 도 14는 각각 메소드 오버라이딩에 불분명 술어를 적용하기 전과 후의 예제로서, 도 13에서는 ‘// OVERRIDING OPAQUE' 선택자를 이용하여 원하는 영역을 지정하였고, 도 14에서의 5번째 라인의 소스가 원본이며 그 이외의 소스는 불분명 술어 생성기에 의해서 자동으로 생성된 소스이다. 13 and 14 are examples before and after applying an unclear predicate to method overriding, respectively. In FIG. 13, a desired area was designated using the'// OVERRIDING OPAQUE' selector, and the source of the 5th line in FIG. 14 is The original and other sources are those generated automatically by the unclear predicate generator.

따라서 실제로 사용되는 'SuperClass'의 메소드 m을 제외한 'SuperClass1'과 'SuperClass2'에 정의된 메소드 m에 워터마크 정보를 삽입할 수 있다.Therefore, watermark information can be inserted into the method m defined in'SuperClass1' and'SuperClass2' except for the method m of'SuperClass' that is actually used.

상기의 과정을 통해 구현된 메소드 생성기반 워터마킹 시스템은 java 언어를 사용하였고, 이를 평가하기 위하여 예제로 안드로이드 SDK에 포함된 샘플 프로젝트 중에서 'JetBoy'를 사용하였다.The method generation-based watermarking system implemented through the above process used the java language, and to evaluate this,'JetBoy' was used among sample projects included in the Android SDK as an example.

도 15는 메소드 오버로딩 수에 따른 소스와 apk 파일 크기를 측정한 도표이고, 도 16은 이에 대한 그래프 도표로, 이를 참조하면, 오버로딩 메소드 생성에 의해서 증가된 자바 소스 파일과 릴리즈 모드로 빌드된 apk 파일의 크기이다. 15 is a chart measuring the size of source and apk file according to the number of method overloading, and FIG. 16 is a graph chart for this. Referring to this, the Java source file increased by the creation of the overloading method and the apk file built in release mode Is the size of.

워터마킹 시스템에 의해서 생성된 오버로딩 메소드 개수가 증가할수록 소스 파일의 크기와 apk 파일의 크기가 증가함을 알 수 있다.It can be seen that as the number of overloading methods generated by the watermarking system increases, the size of the source file and the size of the apk file increase.

오버로딩의 특성상 메소드 생성 개수가 늘어날수록 메소드 매개변수 숫자가 늘어나기 때문에 소스 파일의 크기가 급격히 증가하는 문제가 발생한다. 그러나 릴리즈 모드로 빌드된 apk 파일은 원본과 비교했을 때 크지 않았다. 예를 들어, 200개의 오버로딩 메소드가 생성된 경우에도 소스 파일의 크기는 6배 이상 증가하였으나 apk파일은 1.037배에 머물렀다.Due to the nature of overloading, as the number of method creation increases, the number of method parameters increases, causing a problem that the size of the source file increases rapidly. However, the apk file built in release mode was not large compared to the original. For example, even when 200 overloading methods were created, the size of the source file increased more than 6 times, but the apk file remained at 1.037 times.

도 17은 메소드 오버라이딩 생성 수에 따른 소스와 apk 파일 크기를 측정한 표이고, 도 18은 이에 대한 그래프 도표로, 이를 참조하면, 오버라이딩 메소드 개수가 증가할수록 소스 파일의 크기와 apk 파일의 크기가 증가했으나, 그 비율은 원본과 비교했을 때 크기 않았다. 예를 들어, 200개의 오버라이딩 메소드가 생성된 경우에도 소스 파일의 크기는 1.972배였으며 apk파일은 1.006배에 머물렀다.FIG. 17 is a table measuring source and apk file sizes according to the number of method overriding generations, and FIG. 18 is a graph chart for this. Referring to this, as the number of overriding methods increases, the size of the source file and the size of the apk file Was increased, but the proportion was not large when compared to the original. For example, even when 200 overriding methods were created, the size of the source file was 1.972 times and the apk file remained at 1.006 times.

오버로딩에 의한 메소드 생성보다 오버라이딩에 의한 메소드 생성이 파일 크기 오버헤드가 적다는 것을 파악할 수 있다. It can be seen that the file size overhead is less for the method creation by overriding than the method creation by overloading.

오버라이딩의 경우에는 클래스 상속 관계만 추가되고 매개변수는 변화가 없기 때문에 오버라이딩에 의해서 메소드가 생성될 때 원본 메소드보다 복잡해질 이유가 없다. In the case of overriding, only the class inheritance relationship is added and the parameter does not change, so there is no reason to become more complicated than the original method when a method is created by overriding.

그러나 오버로딩에 의해서 생성되는 메소드들은 반드시 매개변수의 형식이나 개수가 모두 달라야 하므로 매개변수의 개수가 지속적으로 늘어나기 때문에 소스 파일 크기가 오버라이딩에 비해서 크게 증가하였다. However, since the methods created by overloading must have different types and numbers of parameters, the number of parameters continuously increases, so the size of the source file has increased significantly compared to overriding.

따라서 소스 파일이나 apk 파일의 크기 증가에 민감한 상황이라면 오버라이딩 메소드 생성 기법을 적용하는 것이 바람직할 것이다.Therefore, if you are sensitive to the increase in the size of the source file or apk file, it would be desirable to apply the overriding method creation technique.

도 19 및 도 20은 불분명 술어의 개수에 의한 실행시간 오버헤드를 측정한 결과 표 및 그래프 도이다.19 and 20 are tables and graphs showing results of measuring execution time overhead due to the number of unclear predicates.

오버로딩과 오버라이딩에 의해서 메소드가 추가되더라도 불분명 술어의 조건식의 결과가 거짓이므로 실제로 실행되지 않는다. 따라서 실행시간 오버헤드는 오버로딩이나 오버라이딩 메소드의 실행 시간이 아니며 단지 불분명 술어의 조건식 실행 시간이 추가될 뿐이다.Even if a method is added by overloading and overriding, the result of the conditional expression of the unclear predicate is false, so it is not actually executed. Therefore, the execution time overhead is not the execution time of the overloading or overriding method, only the execution time of the conditional expression of the unclear predicate is added.

시간 측정을 위해서 'currentTimeMillis()' 메소드를 사용하였는데 이 메소드는 밀리초 단위로만 측정 가능하므로 1,000,000회 반복 실행한 후 나노초 단위로 환산하였다. 그 결과 불분명 술어의 개수에 비례하여 실행 시간이 증가하였는데 200개의 불분명 술어가 추가되더라도 증가되는 시간은 49나노초에 불과했기 때문에 실행 성능 저하는 무시할 수 있을 수준이라고 판단된다.To measure the time, the'currentTimeMillis()' method was used, and this method can be measured only in milliseconds, so it was converted into nanoseconds after repeated executions 1,000,000 times. As a result, the execution time increased in proportion to the number of unclear predicates. Even if 200 unclear predicates were added, the increased time was only 49 nanoseconds, so the performance degradation is considered to be negligible.

이상과 같이, 본 발명의 실시예에 따른 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법은 비록 한정된 실시예와 도면에 의해 설명되었으나 이 실시예에 의해 한정되지 않으며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술 사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형 가능함은 물론이다.As described above, the software copyright protection method using method generation-based watermarking according to an embodiment of the present invention is not limited by this embodiment, although it has been described by a limited embodiment and drawings. Of course, various modifications and variations are possible within the scope of the technical spirit of the present invention and the scope of the claims to be described below by a person having knowledge of.

100 : 메모리100: memory

Claims (7)

어플리케이션 설치가 가능한 스마트디바이스의 메모리에 저장된 어플리케이션에 메소드(Method) 생성기반 워터마킹을 탑재하여 소프트웨어 저작권을 보호하는 방법에 있어서,
상기 스마트디바이스는 메모리에 저장된 어플리케이션의 소프트웨어 소스코드의 원본 메소드 매개변수를 분석하여 오버로딩 메소드(Overloading methods)를 생성하는 제1과정;
상기 어플리케이션의 소프트웨어 소스코드의 클래스 상속관계(Class inheritance structure)를 분석하여 오버라이딩 대상 클래스와 메소드(Overriding methods)를 생성하는 제2과정; 및
상기 제1, 제2과정에서 생성된 각 오버로딩 메소드 및 오버라이딩 메소드의 각 메소드 호출문의 전단에 불분명 술어를 추가하여 불분명 술어가 적용된 메소드 호출문을 생성하는 제3과정;을 포함하여 이루어진 것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
In the method of protecting software copyright by mounting method generation-based watermarking in an application stored in the memory of a smart device capable of installing an application,
The smart device includes: a first process of generating an overloading method by analyzing the original method parameter of an application software source code stored in a memory;
A second process of generating an overriding target class and method by analyzing a class inheritance structure of the software source code of the application; And
And a third process of generating a method call statement to which the unclear predicate is applied by adding an unclear predicate to a front end of each method call statement of each overloading method generated in the first and second processes and the method call statement of the overriding method. Software copyright protection method using watermarking based on method generation.
제1항에 있어서,
상기 제1과정은 상기 오버로딩 하고자 하는 대상 메소드를 선택하는 11단계;
상기 오버로딩 대상 메소드의 인자를 분석하는 12단계; 및
상기 12단계에서의 분석결과에 따라 오버로딩 규칙을 만족하는 새로운 메소드를 생성하는 13단계;를 포함하되,
상기 오버로딩 규칙은 동일한 이름의 메소드이면서 매개변수의 개수 또는 타입이 서로 달라야 하는 것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
The method of claim 1,
The first process includes 11 steps of selecting the target method to be overloaded;
12 step of analyzing an argument of the method to be overloaded; And
13 step of generating a new method that satisfies the overloading rule according to the analysis result in step 12; including,
The overloading rule is a method of the same name, and the number or type of parameters must be different from each other.
제1항에 있어서,
상기 제2과정은 상기 오버라이딩 대상 클래스에 포함된 다수의 메소드에서 오버라이딩하고자 하는 대상 메소드를 선택하는 21단계;
상기 오버라이딩 대상 클래스를 분석하는 22단계; 및
오버라이딩 규칙에 적합한 메소드를 생성하는 23단계;를 포함하되,
상기 오버라이딩 규칙은 클래스 상속 관계에서 슈퍼클래스의 메소드와 동일한 이름의 메소드를 서브클래스에서 생성하고, 메소드 호출이 런타임에 동적 바인딩될 수 있도록 매개변수의 개수와 타입이 일치해야 하는 것이고,
상기 슈퍼클래스는 원본 소스에 기 존재해 있던 메소드인것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
The method of claim 1,
The second process includes a 21 step of selecting a target method to be overridden from a plurality of methods included in the overriding target class;
22 step of analyzing the overriding target class; And
Including; but, the step of creating a method suitable for the overriding rule 23;
The overriding rule is that a method with the same name as a method of a super class must be created in a subclass in a class inheritance relationship, and the number and type of parameters must match so that the method call can be dynamically bound at runtime.
The software copyright protection method using method generation-based watermarking, characterized in that the super class is a method already existing in the original source.
제1항에 있어서,
상기 제3과정에서 상기 오버로딩 메소드에 불분명 술어를 적용하는 과정은 불분명 술어 집합으로부터 임의로 부분 집합을 추출하여 그 결과가 참인 불분명 술어집합은 원본 메소드 호출문의 전단부에 추가하고, 결과가 거짓인 불분명 술어집합은 생성된 메소드 호출문의 전단부에 추가하는 것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
The method of claim 1,
In the third process, in the process of applying an unclear predicate to the overloading method, a subset is randomly extracted from the unclear predicate set, and the unclear predicate set whose result is true is added to the front end of the original method call statement, and the unclear predicate whose result is false A software copyright protection method using method generation-based watermarking, characterized in that the set is added to the front end of the generated method call statement.
제4항에 있어서,
상기 어플리케이션의 소프트웨어 소스코드 중 선택된 불분명 술어를 적용하는 영역에서 불분명 술어 중 거짓 불분명 술어가 적용되어 실행되지 않는 메소드에 워터마크 정보를 삽입하는 것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
The method of claim 4,
Software copyright protection method using method generation-based watermarking, characterized in that watermark information is inserted into a method that is not executed because a false unclear predicate is applied among unclear predicates in an area to which a selected unclear predicate is applied among the software source codes of the application. .
제1항에 있어서,
상기 제3과정에서 상기 오버라이딩 메소드에 불분명 술어 적용은 오버라이딩 불분명 술어 영역을 선택자를 이용하여 지정하고,
상기 지정된 불분명 술어 영역에 슈퍼클래스의 메소드를 제외한 나머지 서브클래스에 정의된 메소드에 워터마크 정보를 삽입하되,
상기 오버라이딩 불분명 술어 영역은 오버라이딩 메소드 규칙에 부합하는 메소드에 대해서 불분명 술어를 생성시킬 영역이고,
상기 선택자는 오버라이딩 불분명 술어를 적용할 영역의 시작과 끝 부분을 선택하는 역할을 수행하고,
상기 슈퍼클래스의 메소드는 프로그램 실행시 동작하는 원본 소스에 이미 존재해 있는 메소드인 것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
The method of claim 1,
In the third process, in the application of an unclear predicate to the overriding method, an overriding unclear predicate region is designated using a selector,
Insert watermark information into the methods defined in the remaining subclasses except for the superclass method in the specified unclear predicate area,
The overriding unclear predicate area is an area to generate an unclear predicate for a method conforming to an overriding method rule,
The selector plays a role of selecting the beginning and the end of the region to which the overriding unclear predicate is to be applied,
The method of the super class is a method that already exists in an original source that operates when a program is executed.
제1항에 있어서,
상기 제3과정에서 상기 각 오버로딩 메소드 및 오버라이딩 메소드에 불분명 술어는 기 저장된 불분명 술어 리스트로부터 추출하여 사용하는 것을 특징으로 하는 메소드 생성기반 워터마킹을 이용한 소프트웨어 저작권보호 방법.
The method of claim 1,
In the third process, the unclear predicate for each overloading method and the overriding method is extracted from a previously stored unclear predicate list and used.
KR1020190134461A 2019-10-28 2019-10-28 Method for Software Copyright Protection using Method Generation based Watermarking KR102193017B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190134461A KR102193017B1 (en) 2019-10-28 2019-10-28 Method for Software Copyright Protection using Method Generation based Watermarking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190134461A KR102193017B1 (en) 2019-10-28 2019-10-28 Method for Software Copyright Protection using Method Generation based Watermarking

Publications (1)

Publication Number Publication Date
KR102193017B1 true KR102193017B1 (en) 2020-12-18

Family

ID=74041631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190134461A KR102193017B1 (en) 2019-10-28 2019-10-28 Method for Software Copyright Protection using Method Generation based Watermarking

Country Status (1)

Country Link
KR (1) KR102193017B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110072112A (en) 2009-12-22 2011-06-29 한국저작권위원회 Copyright information inserting system and method
KR20130101955A (en) * 2012-02-23 2013-09-16 숭실대학교산학협력단 Watermarking apparatus for protecting software intellectual property rights and apparatus of extracting watermark
US20150058623A1 (en) * 2013-08-26 2015-02-26 Nbcuniversal Media, Llc Watermark access/control system and method
KR20150087075A (en) 2014-01-21 2015-07-29 숭실대학교산학협력단 Adaptive watermarking module and method based on requirement analysis for copyright protection of mobile software, and recording medium for performing the method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110072112A (en) 2009-12-22 2011-06-29 한국저작권위원회 Copyright information inserting system and method
KR20130101955A (en) * 2012-02-23 2013-09-16 숭실대학교산학협력단 Watermarking apparatus for protecting software intellectual property rights and apparatus of extracting watermark
US20150058623A1 (en) * 2013-08-26 2015-02-26 Nbcuniversal Media, Llc Watermark access/control system and method
KR20150087075A (en) 2014-01-21 2015-07-29 숭실대학교산학협력단 Adaptive watermarking module and method based on requirement analysis for copyright protection of mobile software, and recording medium for performing the method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박희완, ‘안드로이드 저작권 보호를 위한 메소드 생성 기반 워터마킹 기법의 설계 및 구현’, 한국융합학회 논문지 제10권 제1호 , 2019.01.28* *

Similar Documents

Publication Publication Date Title
Palsberg et al. Experience with software watermarking
Sun et al. Taintart: A practical multi-level information-flow tracking system for android runtime
Collberg et al. Sandmark-a tool for software protection research
TWI648648B (en) Protection method of executable program on android platform
Feldthaus et al. Tool-supported refactoring for JavaScript
Tang et al. A novel hybrid method to analyze security vulnerabilities in android applications
KR101234591B1 (en) Method for Anti-Encoding Android by Using Java Native Interface
EP3296906A1 (en) Method for protecting dex file from being decompiled in android system
CN103065072A (en) Method and device to improve Java software jailbreak difficulty and copyright verification method
Lim et al. An Android Application Protection Scheme against Dynamic Reverse Engineering Attacks.
CN108763924B (en) Method for controlling access authority of untrusted third party library in android application program
Wressnegger et al. Twice the bits, twice the trouble: Vulnerabilities induced by migrating to 64-bit platforms
CN107368713B (en) Protect the method and security component of software
Arzt et al. Towards cross-platform cross-language analysis with soot
El-Harake et al. Blocking advertisements on android devices using monitoring techniques
KR102193017B1 (en) Method for Software Copyright Protection using Method Generation based Watermarking
US8375443B1 (en) Code annotations for preventing access to unsafe functionality
Qiu et al. Libcapsule: Complete confinement of third-party libraries in android applications
Andrey et al. A Technique for Analyzing Bytecode in a Java Project for the Purpose of an Automated Assessment of the Possibility and Effectiveness of the Hidden Investment of Information and its Volumes in a Java Project
Jeon et al. A robust steganography-based software watermarking
KR101842263B1 (en) Method and apparatus for preventing reverse engineering
US20050055312A1 (en) Software control flow watermarking
CN111625466A (en) Software detection method and device and computer readable storage medium
Busch et al. A cloud-based compilation and hardening platform for android apps
Kim et al. EDAroid: An efficient dynamic analysis tool for Android applications

Legal Events

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