DOI QR코드

DOI QR Code

Similarity Detection in Object Codes and Design of Its Tool

목적 코드에서 유사도 검출과 그 도구의 설계

  • 유장희 (한국전자통신연구원 인공지능연구소)
  • Received : 2020.11.17
  • Accepted : 2020.12.21
  • Published : 2020.12.31

Abstract

The similarity detection to plagiarism or duplication of computer programs requires a different type of analysis methods and tools according to the programming language used in the implementation and the sort of code to be analyzed. In recent years, the similarity appraisal for the object code in the embedded system, which requires a considerable resource along with a more complicated procedure and advanced skill compared to the source code, is increasing. In this study, we described a method for analyzing the similarity of functional units in the assembly language through the conversion of object code using the reverse engineering approach, such as the reverse assembly technique to the object code. The instruction and operand table for comparing the similarity is generated by using the syntax analysis of the code in assembly language, and a tool for detecting the similarity is designed.

컴퓨터 프로그램의 표절 또는 복제에 대한 유사도 검출은 구현에 사용된 프로그래밍 언어, 분석 대상 코드의 종류에 따라 각기 다른 감정 방법과 도구가 필요하다. 최근 들어 증가하고 있는 내장형 시스템의 목적 코드에 대한 유사도 감정은 원시 코드와 비교해 더욱 복잡한 과정 및 고도의 기술과 함께 상당한 자원을 요구하고 있다. 본 연구에서는 목적 코드를 대상으로 역 어셈블리 기법의 적용과 같은 역공학 방법을 이용하여, 목적 코드의 어셈블리어 변환을 통한 어셈블리어 레벨에서의 함수 단위 유사도 감정 방법에 관하여 연구하였다. 그리고, 어셈블리어 레벨에서의 유사도 비교를 위해 코드의 구문분석을 통한 명령어 및 오퍼랜드 테이블을 생성하고, 이를 대상으로 유사도를 검출할 수 있는 도구의 설계에 관하여 기술하였다.

Keywords

References

  1. H. Berghel and D. Sallach, "Measurements of Program Similarity in Identical Task Environments", ACM SIGPLAN Notices, 19(8), pp.65~76, Aug. 1984. https://doi.org/10.1145/988241.988245
  2. 김규식, 조성제, 우진운, "소스코드 유사도 측정 도구의 성능에 관한 비교연구", 한국소프트웨어감정평가학회 논문지, 13권1호, pp.31-42, 2017.6. http://www.i3.or.kr/html/paper/2017-1/(4)2017-1.pdf
  3. A. Aiken, MOSS: A System for Detecting Software Similarity, Stanford University, USA, 2020. http://theory.stanford.edu/~aiken/moss/
  4. L. Prechelt, G. Malpohl, and M. Phlippsen, JPlag: Finding Plagiarisms among a Set of Program, Technical Report 2000-1, University of Karlsruhe, Germany, Mar. 2000. https://publikationen.bibliothek.kit.edu/542000/759910
  5. G. Whale, Plague: Plagiarism Detection using Program Structure, TR Vol.8805, Department of Computer Science, University of NSW, Kensington, Australia, 1988.
  6. D. Gitchell, N. Tran, "SIM: A Utility for Detecting Similarity in Computer Programs", in Proc. of 30th SIGCSE Technical Symposium on Computer Science Education, New Orleans, USA, pp.266~270, May 1999. https://doi.org/10.1145/299649.299783
  7. M. Wise, "YAP3: Improved Detection of Similarities in Computer Program and Other Texts", in Proc. Of 27th SIGCSE Technical Symposium, Philadelphia, USA, pp.130~134, 1996. https://doi.org/10.1145/236462.236525
  8. 한국저작권위원회, 2019년 SW감정인 역량제고 교육, 자료집, 2019.12.
  9. 김시열, 주형락, "실행코드의 실질적 유사성 비교에 관한 저작권법 관점에서의 소고", 한국소프트웨어감정평가학회 논문지, 12권2호, pp.15-24, 2016,12. http://www.i3.or.kr/html/paper/2016-2/(3)2016-1.pdf
  10. 이규대, "목적코드 파일의 유사도 측정 개선방안", 한국소프트웨어감정평가학회 논문지, 8권1호, pp.41-48, 2012.6.
  11. 유장희, 실행파일의 유사도 감정평가 및 프로파일 작성방안, 컴퓨터프로그램보호위원회, 2007 SW 감정 워킹그룹 연구 결과 보고서, 2007.
  12. R. Osterlund, PEBrowse Professional Interactive, SmidgeonSoft, LLC., 2011. https://download.cnet.com/PEBrowse-Professional-Interactive/3000-2218_4-10445319.html
  13. S. Micallef, IDA Plug-In Writing in C/C++, 2020. https://www.hex-rays.com/products/ida/
  14. 이호동, Windows 시스템 실행파일의 구조와 원리, 한빛미디어, 2005. ISBN: 897914332x
  15. Source Dynamics, Source Insight 4.0 User Manual, 2020. https://www.sourceinsight.com/