Browse > Article

A Program Similarity Check by Flow Graphs of Functional Programs  

Seo Sunae (한국과학기술원 전산학과)
Han Taisook (한국과학기술원 전산학과)
Abstract
Stealing the source code of a program is a serious problem not only in a moral sense but also in a legal sense. However, it is not clear whether the code of a program is copied from another or not. There was a program similarity checker detecting code-copy by comparing the syntax trees of programs. However this method has a limitation that it cannot detect the code-copy attacks when the attacker modifies the syntax of the program on purpose. We propose a program similarity check by program control graph, which reveals not only syntax information but also control dependancy. Our method can detect the code-copy attacks that do not change control dependancy Moreover, we define what code-copy means and establish the connection between code-copy and similarity of program control graph: we prove that two programs are related by copy congruence if and only if the program control graphs of these programs are equivalent. We implemented our method on a functional programming language, nML. The experimental results show us that the suggested method can detect code similarity that is not detected by the existing method.
Keywords
program similarity; code-copy detection; control flow graph; program analysis; functional programming language;
Citations & Related Records
Times Cited By KSCI : 2  (Citation Analysis)
연도 인용수 순위
1 이평준, 전명재, 조환규, '재귀적 지역정렬을 이용한 프로그램 표절 탐색' 한국정보과학회 봄 학술 회의, 2004년 4월
2 N. De Bruijn, 'Lambda-calculus Notation with Nameless Manipulation,' A Toolfor Automatic Formula Manipulation, volume 34, pp. 381-392, 1972
3 이광근, 이욱세, 어현준, 김정택, 최용식, 류석영, 강현구, 서선애, 장성순, 김범식,'nML 컴파일러 시스템 (status report)'. 한국정보과학회 가을 학술 회의, 제 28권. pp. 340-342, 2001년 10월 http://ropas. kaist.ac.kr/n   과학기술학회마을
4 서선애, 한태숙, '흐름 그래프 형태를 이용한 프로그램 유사성 비교' 학술 논문, 한국과학기술원 전산학과 프로그래밍 언어 연구, 2004년 10월. http://ropas.kaist.ac.kr/-saseo/papers/kor_simil_long.pdf
5 Dick Grune, 'SIM: The software and text similarity tester SIM,' http://www.few.vu.nl/-dick/sim.html
6 M.J. Wise. 'YAP3: improved detection of similarities in computer programs and other texts,' SIGCSEB: SIGCSE Bulletin (ACM Special Interest Group on Computer Science Education),' volume 28, 1996   DOI
7 Alex Aiken, 'Moss: a system for detecting software plagiarism,' http://ftp.cs.berkeley.edu/ -aiken/moss. html
8 Guido Malpohl, 'JPlag:Detection Software Plagiarism,' http://wwwipd.ira.uka.de:2222/
9 황미녕, 강은미, 조환규, '유전체 서열의 정렬 기법을 이용한 소스 코드 표절 검사' 한국정보과학회. 2002년 제21회 논문경진대회 최우수상. 2002년 6월. http//jade.cs.pusan.ac.kr/bioinformatics/bio.html   과학기술학회마을
10 장성순, 서선애, 이광근, '프로그램 유사성 검증기', 한국정보과학회,가을 학술 회의, 제 28권,pp. 334-336, 2001년 10월