• Title/Summary/Keyword: 소스 코드 유사도

Search Result 73, Processing Time 0.032 seconds

A Plagiarism Detection Technique for Java Program Using Bytecode Analysis (바이트코드 분석을 이용한 자바 프로그램 표절검사기법)

  • Ji, Jeong-Hoon;Woo, Gyun;Cho, Hwan-Gue
    • Journal of KIISE:Software and Applications
    • /
    • v.35 no.7
    • /
    • pp.442-451
    • /
    • 2008
  • Most plagiarism detection systems evaluate the similarity of source codes and detect plagiarized program pairs. If we use the source codes in plagiarism detection, the source code security can be a significant problem. Plagiarism detection based on target code can be used for protecting the security of source codes. In this paper, we propose a new plagiarism detection technique for Java programs using bytecodes without referring their source codes. The plagiarism detection procedure using bytecode consists of two major steps. First, we generate the token sequences from the Java class file by analyzing the code area of methods. Then, we evaluate the similarity between token sequences using the adaptive local alignment. According to the experimental results, we can find the distributions of similarities of the source codes and that of bytecodes are very similar. Also, the correlation between the similarities of source code pairs and those of bytecode pairs is high enough for typical test data. The plagiarism detection system using bytecode can be used as a preliminary verifying tool before detecting the plagiarism by source code comparison.

Comparison procedure in evaluation analysis of source code comparison on Embedded system (정보기기 소스코드 유사성 분석에서 목적물 검증)

  • Nam, SangYep;Kim, Do-Hyeun;Lee, Kyu-Tae
    • Journal of Software Assessment and Valuation
    • /
    • v.17 no.2
    • /
    • pp.31-38
    • /
    • 2021
  • In order to analyze the similarity of the source code object material, the source code on both sides must be able to be compiled and executed. In particular, in the case of hardware-integrated software, it is necessary to check whether the hardware interface matches. However, currently, the source code is provided in an incomplete state which is not original of source code used in developing steps. The complainant confirms that the executing characteristics are similar to their own in the expression and function of the output, and request an evaluation. When a source code compilation error occurs during the evaluation process, the experts draw a flowchart of the source code and applies the method of tracing the code flow for each function as indirect method. However, this method is indirect and the subjective judgment is applied, so there is concern about the contention of objectivity in the similarity evaluation result. In this paper, the problems of unverified source code similarity analysis and improvement directions are dealt with, through the analysis cases of source code disputes applied to embedded systems.

Object Material Confirmation for Source Code Comparison on Embedded System (임베디드 시스템의 동일기능 소스코드 유사도 분석 요구사항)

  • Kim, Do-Hyeun;Lee, Kyu-Tae
    • Journal of Software Assessment and Valuation
    • /
    • v.17 no.1
    • /
    • pp.25-30
    • /
    • 2021
  • In case of evaluating the similarity of the source code analysis material in the embedded system, the provided source code must be confirmed to be executable. However, it is currently being in which compilation and interface matching with hardware are provided in an unconfirmed materials. The complainant assumes that many parts of the source code are similar because the characteristics of the operation are similar and the expression of the function is similar. As for the analysis result, the analysis result may appear different than expected due to these unidentified objects. In this study, the improvement direction is sugested through the case study by the analysis process of the source code and the similarity of the unverified source code.

Java source code Similarity Measurement System (자바소스코드 유사도 측정 시스템)

  • Kim, Eun-Hye;Lee, Song-A;Heo, Jun;Han, Kyung-Sook;Oh, Yong-Chul
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2007.10c
    • /
    • pp.536-539
    • /
    • 2007
  • JSMS(Java source code Similarity Measurement System)는 자바 소스 코드의 유사도를 측정하고 이와 관련한 소스코드의 정보를 시각적으로 표시하는 시스템이다. 기존의 표절 검사 시스템은 소스코드의 구조적 특징을 반영하지 못해 유사도 결과의 신뢰성이 낮고 대부분 편리성과 가독성이 좋지 않아 사용하기 불편하였다. 본 논문에서 제안하는 JSMS는 이러한 단점을 보완하기 위해 함수 선형화를 사용하여 소스코드의 구조적 특징을 반영하였다. 또한 쉽고 간단한 조작으로 편리성을 제공하며, 관련 정보와 유사 구간을 시각적으로 표시하여 가독성을 높였다. 향후 다양한 언어 지원과 폭넓은 시각적 정보 제공을 보완하여 사용자의 학습 자료로 사용할 수 있으며, 소스코드 표절의 객관적 기준이 되는 도구로 활용 가능하다.

  • PDF

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% 정도 향상된 것을 확인하였다.

Source Codes Plagiarism Detection By Using Reserved Word Sequence Matching (예약어 시퀀스 탐색을 통한 소스코드 표절검사)

  • Lee Yeong-Ju;Kim Seung;Gang Seok-Ho
    • Proceedings of the Korean Operations and Management Science Society Conference
    • /
    • 2006.05a
    • /
    • pp.1198-1206
    • /
    • 2006
  • 프로그램 소스코드 표절 검사에 대한 기존 방법은 크게 지문(finger-print)법과 구조기반 검사법으로 나뉘며, 주로 단어의 유사성이나 발생빈도를 사용하거나 소스코드 구조상의 특징으로 두 소스간의 유사성을 비교한다. 본 연구에서는 프로그래밍 언어의 예약어 시퀀스를 사용하여 소스코드들 간의 유사성을 비교하고, 이 결과를 FCA(Formal Concept Analysis)를 통해 해석하고 시각화 하는 방법을 제시한다. 일반적인 VSM(Vector Space Model)과 같은 단일 단어 분석으로는 단어의 인접성을 구분할 수 없으므로 단어의 시퀀스 분석이 가능하도록 알고리즘을 구성하였으며 이러한 방식은 지문법의 단점인 소스코드의 부분적인 표절 탐지의 난점을 해결할 수 있고 함수의 호출 순서나 수행 순서에 상관없이 표절을 탐지할 수 있는 장점을 가진다. 마지막으로 유사도 측정결과는 FCA를 이용하여 격자(lattice)로 시각화됨으로써 이용자의 이해도를 높일 수 있다.

  • PDF

Detecting Open Source-Code Plagiarism (오픈 소스코드 표절 탐지 기법)

  • Sojeong Han;Hwan-Seung Yong
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2008.11a
    • /
    • pp.1459-1461
    • /
    • 2008
  • 오픈 소스코드의 확대는 상용 프로그램에서의 활용 증대로 이어지고 있다. 컴퓨터 프로그램의 유사도 및 완성도 감정에서 오픈 소스코드의 비중이 증대됨에 따라서 오픈 소스코드의 탐지 방법이 요구된다. 본 논문에서는 프로그램 소스코드 검색 기법을 조사하고 평가하여 효과적인 탐지 기법을 제안한다.

Enhancing the performance of code-clone detection tools using code2vec (code2vec을 이용한 유사도 감정 도구의 성능 개선)

  • Um, Taeho;Hong, Sung Moon;Yang, Joon Hyuk;Jang, Hyo Seok;Doh, Kyung-Goo
    • Journal of Software Assessment and Valuation
    • /
    • v.17 no.1
    • /
    • pp.31-40
    • /
    • 2021
  • Plagiarism refers to the act of using the original data as if it were one's own without revealing the source. The plagiarism of source code causes a variety of problems, including legal disputes. Plagiarism in software projects is usually determined by measuring similarity by comparing every pair of source code within two projects. However, blindly comparing every pair has been a huge computational burden, causing a major factor of not using tools of better accuracy. If we can only compare pairs that are probable to be clones, eliminating pairs that are impossible to be clones, we can concentrate more on improving the accuracy of detection. In this paper, we propose a method of selecting highly probable candidates of clone pairs by pre-classifying suspected source-codes using a machine-learning model called code2vec.

Cross-Language Clone Detection based on Common Token (공통 토큰에 기반한 서로 다른 언어의 유사성 검사)

  • Hong, Sung-Moon;Kim, Hyunha;Lee, Jaehyung;Park, Sungwoo;Mo, Ji-Hwan;Doh, Kyung-Goo
    • Journal of Software Assessment and Valuation
    • /
    • v.14 no.2
    • /
    • pp.35-44
    • /
    • 2018
  • Tools for detecting cross-language clones usually compare abstract-syntax-tree representations of source code, which lacks scalability. In order to compare large source code to a practical level, we need a similarity checking technique that works on a token level basis. In this paper, we define common tokens that represent all tokens commonly used in programming languages of different paradigms. Each source code of different language is then transformed into the list of common tokens that are compared. Experimental results using exEyes show that our proposed method using common tokens is effective in detecting cross-language clones.

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.