• Title/Summary/Keyword: 소스 코드 도용

Search Result 15, Processing Time 0.026 seconds

API Similarity Comparison Tool Development for Detecting Theft of Android Application (안드로이드 앱 도용 탐지를 위한 API 유사도 비교 도구 구현)

  • Choi, Sung-Ha;Lee, Hyun-Young;Cho, Seung-Min;Park, Heewan
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.792-795
    • /
    • 2012
  • 최근 오픈 소스 커뮤니티가 활성화되고 수많은 오픈 소스들이 공개되고 있어서 많은 개발자들이 오픈 소스를 활용하고 있다. 그러나 오픈 소스도 정해진 라이선스 기반으로 공개되므로 오픈 소스를 사용할 때는 반드시 라이선스를 확인해야 한다. 본 논문에서는 안드로이드 앱의 라이선스 위반이나 코드 도용을 확인할 수 있는 방법으로서 안드로이드 앱 사이의 API 메소드 호출 유사도를 측정하는 방법을 제안한다. 원본 프로그램과 도용된 프로그램은 유사한 API 메소드를 사용할 것임을 예상할 수 있기 때문에 API 메소드 호출이 유사한 것을 확인하면 간접적으로 코드 도용을 확인할 수 있다. 본 논문에서 개발한 API 유사도 측정 도구는 안드로이드 앱의 소스 코드를 필요로 하지 않고, 안드로이드 달빅(Dalvik) 바이트 코드로부터 직접 API 호출 명령어를 분석하여 유사도를 측정한다는 특징이 있다. 본 논문에서 구현한 도구의 평가를 위해서 API 호출 유사도 비교 실험을 수행하였다. 그 결과, 실제로 API 호출 유사도가 높았던 두 앱이 서로 공통된 모듈을 포함하고 있음을 밝혀내었다. 그리고 선행 연구에서 제안했었던 안드로이드 달빅 코드 전체에 대한 유사도 비교 도구보다 비교 속도가 35% 정도 향상된 것을 확인하였다.

Android plagiarism detection through Dalvik instruction similarity comparison (Dalvik명령어 유사도 비교를 통한 안드로이드 표절 탐지 기법)

  • Choi, Sung-ha;Hwang, Na-hyun;Park, Heewan
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.796-799
    • /
    • 2012
  • 스마트폰 애플리케이션 중에서 안드로이드 앱은 자바를 기반으로 한다. 따라서 자바 프로그램과 마찬가지로 디컴파일러 도구를 활용하여 원본 소스 코드를 얻어낼 수 있기 때문에 코드 도용에 대해서 매우 취약하다. 본 논문에서는 안드로이드에 대한 코드 도용과 표절을 막기 위한 기법을 제안한다. 효과적인 코드 도용 및 표절 여부를 탐지하기 위한 방법으로서, 안드로이드 달빅(Dalvik) 코드에 대해서 요약 단계를 거친 후 유사도를 측정하는 방법을 사용한다. 기존의 안드로이드 유사도 비교 연구에서는 달빅 코드가 정확하게 일치해야만 유사도가 높게 측정될 수 있었지만, 요약 단계를 통해서 변환된 달빅 코드를 비교하면 코드 도용시 일부 코드의 의도적인 수정이 있더라도 유사도가 높게 측정된다. 그 결과, 본 논문에서 제안하는 표절 탐지 기법이 기존 연구와 비교하여 표절에 대한 탐지 능력이 우수함을 확인하였다.

Design and Implementation of a Plagiarism Detection Tool for Apps Created with the App-Inventor (앱 인벤터로 개발한 앱의 표절 탐지 도구 설계 및 구현)

  • Shin, Se-Hoon;Han, Dong-Jun;Han, Won-Keun;Park, Heewan
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2017.11a
    • /
    • pp.353-356
    • /
    • 2017
  • 앱 인벤터는 GUI 환경에서 블록 편집기를 사용하여 앱을 개발한다. 따라서 누구나 쉽게 앱 프로그래밍을 시작할 수 있다는 장점이 있다. 또한, 앱 인벤터의 공식 사이트의 gallery 공간에 공개된 수많은 공개 앱 소스(aia 파일)를 쉽게 구할 수 있기 때문에 다른 사람이 만든 앱의 소스를 그대로 가져다가 이미지만 바꿔서 자신이 만든 것처럼 앱을 공개할 수도 있다. 그러나 직접 블록 단위로 비교해보지 않고서는 표절이나 도용 여부를 판단하는 것은 쉽지 않다. 따라서 본 논문에서는 앱 인벤터로 개발한 앱들의 유사도를 자동으로 계산해주는 도구를 개발하였다. 원본 프로그램과 도용된 프로그램은 유사도가 높게 계산될 것임을 예상할 수 있기 때문에 유사도 계산 프로그램은 코드 도용을 확인하는 목적으로 활용될 수 있다. 본 논문에서 구현한 도구의 평가를 위해서 다양한 실험을 수행하였고, 실제로 유사도가 높았던 앱들이 서로 공통된 블록을 다수 포함하고 있음을 밝혀내었다. 이러한 실험결과를 바탕으로 우리가 개발한 도구가 앱 인벤터로 개발한 앱에 대해서 소스 표절이나 코드 도용을 탐지하는 목적으로 활용될 수 있을 것으로 기대한다.

Study on the comparison result of Machine code Program (실행코드 비교 감정에서 주변장치 분석의 유효성)

  • Kim, Do-Hyeun;Lee, Kyu-Tae
    • Journal of Software Assessment and Valuation
    • /
    • v.16 no.1
    • /
    • pp.37-44
    • /
    • 2020
  • The similarity of the software is extracted by the verification of comparing with the source code. The source code is the intellectual copyright of the developer written in the programming language. And the source code written in text format contains the contents of the developer's expertise and ideas. The verification for judging the illegal use of software copyright is performed by comparing the structure and contents of files with the source code of the original and the illegal copy. However, there is hard to do the one-to-one comparison in practice. Cause the suspected source code do not submitted Intentionally or unconsciously. It is now increasing practically. In this case, the comparative evaluation with execution code should be performed, and indirect methods such as reverse assembling method, reverse engineering technique, and sequence analysis of function execution are applied. In this paper, we analyzed the effectiveness of indirect comparison results by practical evaluation . It also proposes a method to utilize to the system and executable code files as a verification results.

A Functional Unit Dynamic API Birthmark for Windows Programs Code Theft Detection (Windows 프로그램 도용 탐지를 위한 기능 단위 동적 API 버스마크)

  • Choi, Seok-Woo;Cho, Woo-Young;Han, Tai-Sook
    • Journal of KIISE:Software and Applications
    • /
    • v.36 no.9
    • /
    • pp.767-776
    • /
    • 2009
  • A software birthmark is a set of characteristics that are extracted from a program itself to detect code theft. A dynamic API birthmark is extracted from the run-time API call sequences of a program. The dynamic Windows API birthmarks of Tamada et al. are extracted from API call sequences during the startup period of a program. Therefore. the dynamic birthmarks cannot reflect characteristics of main functions of the program. In this paper. we propose a functional unit birthmark(FDAPI) that is defined as API call sequences recorded during the execution of essential functions of a program. To find out that some functional units of a program are copied from an original program. two FDAPIs are extracted by executing the programs with the same input. The FDAPIs are compared using the semi-global alignment algorithm to compute a similarity between two programs. Programs with the same functionality are compared to show credibility of our birthmark. Binary executables that are compiled differently from the same source code are compared to prove resilience of our birthmark. The experimental result shows that our birthmark can detect module theft of software. to which the existing birthmarks of Tamada et al. cannot be applied.

Software Birthmark Based on k-gram Using Operator Abstraction (연산자 요약을 이용한 k그램 소프트웨어 버스마크)

  • Lee, Kihwa;Woo, Gyun
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2013.05a
    • /
    • pp.687-690
    • /
    • 2013
  • 소프트웨어 버스마크 기법은 도용이 의심되는 소프트웨어의 소스 코드를 얻을 수 없을 때 사용할 수 있는 소프트웨어 도용 탐지 기법이다. 이 기법은 프로그램의 바이너리나 자바 클래스 파일에서 프로그램 고유의 특징인 버스마크를 추출한 다음 프로그램간 버스마크 유사도 측정을 통해 도용을 탐지한다. 이 논문에서는 선행 연구된 k그램 버스마크 기법에 연산자 요약이라는 아이디어를 접목한 연산자 요약 k그램 버스마크 기법을 제안한다. 연산자 요약이란 연산자 우선순위가 같은 연산자의 JVM 명령어를 묶어 요약번호로 나타내는 것이다. 연산자 요약 k그램 버스마크 기법은 연산자 요약과 제어 흐름을 고려하여 생성한 연속된 k개의 요약번호 시퀀스 집합을 버스마크로 정의한다. 버스마크를 평가하기 위해 선택 정렬 메소드와 버블 정렬 메소드를 대상으로 신뢰도 실험과 강인도 실험을 하였다. 실험 결과 연산자 요약 k그램 버스마크 기법이 선행 연구된 Tamada 버스마크 기법과 k그램 버스마크 기법보다 높은 신뢰도와 강인도를 보였다.

An Android Birthmark based on API k-gram (API k-gram 기반의 안드로이드 버스마크)

  • Park, Heewan
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.2 no.4
    • /
    • pp.177-180
    • /
    • 2013
  • A software birthmark means inherent characteristics that can be used to identify a program. Because the software birthmark is difficult to remove by simple program transformation, it can be used to detect code theft. In this paper, we propose a birthmark technique based on API k-gram of Android applications. Android SDK provides various libraries that help programmers to develop application easily. In order to use Android SDK, we have to use API method calls. The API call instructions are hard to be replaced or removed, so they can be a inherent characteristics of an application. To show the effectiveness of the proposed birthmark, we compared it with previous birthmarks and evaluated it with open source applications. From the experiments, we verified that the credibility and resilience of our birthmark is higher than previous birthmarks.

Design and Implementation of Birthmark Technique for Unity Application

  • Heewan Park
    • Journal of the Korea Society of Computer and Information
    • /
    • v.28 no.7
    • /
    • pp.85-93
    • /
    • 2023
  • Software birthmark refers to a unique feature inherent in software that can be extracted from program binaries even in the absence of the original source code of the program. Like human genetic information, the similarity between programs can be calculated numerically, so it can be used to determine whether software is stolen or copied. In this paper, we propose a new birthmark technique for Android applications developed using Unity. The source codes of Unity-based Android applications use C# language, and since the core logic of the program is included in the DLL module, it must be approached in a different way from normal Android applications. In this paper, a Unity birthmark extraction and comparison system was implemented, and reliability and resilience were evaluated. The use of the Unity birthmark technique proposed in this paper is expected to be effective in preventing illegal copy or code theft of the Unity-based Android applications.

Detecting Software Similarity Using API Sequences on Static Major Paths (정적 주요 경로 API 시퀀스를 이용한 소프트웨어 유사성 검사)

  • Park, Seongsoo;Han, Hwansoo
    • Journal of KIISE
    • /
    • v.41 no.12
    • /
    • pp.1007-1012
    • /
    • 2014
  • Software birthmarks are used to detect software plagiarism. For binaries, however, only a few birthmarks have been developed. In this paper, we propose a static approach to generate API sequences along major paths, which are analyzed from control flow graphs of the binaries. Since our API sequences are extracted along the most plausible paths of the binary codes, they can represent actual API sequences produced from binary executions, but in a more concise form. Our similarity measures use the Smith-Waterman algorithm that is one of the popular sequence alignment algorithms for DNA sequence analysis. We evaluate our static path-based API sequence with multiple versions of five applications. Our experiment indicates that our proposed method provides a quite reliable similarity birthmark for binaries.

Similarity Evaluation and Analysis of Source Code Materials for SOC System in IoT Devices (사물인터넷 디바이스의 집적회로 목적물과 소스코드의 유사성 분석 및 동일성)

  • Kim, Do-Hyeun;Lee, Kyu-Tae
    • Journal of Software Assessment and Valuation
    • /
    • v.15 no.1
    • /
    • pp.55-62
    • /
    • 2019
  • The needs for small size and low power consumption of information devices is being implemented with SOC technology that implements the program on a single chip in Internet of Thing. Copyright disputes due to piracy are increasing in semiconductor chips as well, arising from disputes in the chip implementation of the design house and chip implementation by the illegal use of the source code. However, since the final chip implementation is made in the design house, it is difficult to protect the copyright. In this paper, we deal with the analysis method for extracting similarity and the criteria for setting similarity judgment in the dispute of source code written in HDL language. Especially, the chip which is manufactured based on the same specification will be divided into the same configuration and the code type.