1 |
1
소프트웨어의 코드 클론 탐지 장치에 있어서, 소프트웨어에서 코드 클론을 탐지하는 프로그램이 저장된 메모리 및 상기 프로그램을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 소프트웨어에 대응하는 소스 코드로부터 복수의 함수를 추출하여 정규화 및 추상화를 수행하고, 정규화 및 추상화된 함수의 문자열 길이를 기초로 키를 설정하고 상기 정규화 및 추상화된 함수에 대응되는 값을 설정하여 딕셔너리를 생성하며, 상기 생성된 딕셔너리를 취약 코드 클론 집합과 비교하여, 상기 소프트웨어에 대한 코드 클론 여부를 판단하되, 상기 취약 코드 클론 집합은 딕셔너리 자료구조를 기초로, 복수의 타 소프트웨어에 포함된 함수로부터 추출된 후 정규화 및 추상화되어 저장된 복수의 취약 코드를 포함하는, 코드 클론 탐지 장치
|
2 |
2
삭제
|
3 |
3
삭제
|
4 |
4
제 1 항에 있어서, 상기 프로세서는 상기 딕셔너리에 포함된 키 및 상기 취약 코드 클론 집합의 키를 비교하고, 상기 딕셔너리에 포함된 키 및 상기 취약 코드 클론 집합의 키가 일치하는 경우, 상기 딕셔너리에 포함된 키에 대응하는 값 및 상기 취약 코드 클론 집합의 키에 대응하는 취약 코드와의 비교를 수행하여 상기 소프트웨어에 대한 코드 클론 여부를 판단하는 것인, 코드 클론 탐지 장치
|
5 |
5
제 1 항에 있어서, 상기 프로세서는 MD5(message digest 5) 알고리즘에 기초하여, 상기 정규화 및 추상화된 함수에 대응하는 값을 산출하는, 코드 클론 탐지 장치
|
6 |
6
제 1 항에 있어서, 상기 프로세서는 상기 정규화 및 추상화된 복수의 함수를 상기 취약 코드 클론 집합에 추가하는, 코드 클론 탐지 장치
|
7 |
7
제 1 항에 있어서, 상기 프로세서는 상기 추출된 복수의 함수에 포함된 화이트스페이스(whitespace) 문자를 제거하고, 상기 화이트스페이스 문자가 제거된 함수에 포함된 문자를 소문자로 변환하되, 상기 화이트스페이스 문자는 공백(space), 탭(tab) 문자 및 개행(new line) 문자를 포함하는, 코드 클론 탐지 장치
|
8 |
8
제 1 항에 있어서, 상기 프로세서는 상기 추출된 복수의 함수에 포함된 변수의 자료형, 변수의 이름 및 함수 인자 각각에 대하여 미리 정해진 식별자로 변환하는, 코드 클론 탐지 장치
|
9 |
9
제 1 항에 있어서, 상기 프로세서는 상기 소프트웨어에 대응하는 프로그래밍 언어에 기초하여, 정규식(regular expression)을 정의하고, 상기 정의된 정규식(regular expression)에 기초하여, 상기 함수를 추출하고, 상기 추출된 함수에 대한 정규화 및 추상화를 수행하는 것인, 코드 클론 탐지 장치
|
10 |
10
코드 클론 탐지 장치에서의 소프트웨어의 코드 클론 탐지 방법에 있어서, 상기 소프트웨어에 대응하는 소스 코드로부터 복수의 함수를 추출하는 단계;상기 추출된 복수의 함수에 대한 정규화 및 추상화를 수행하는 단계; 정규화 및 추상화된 함수의 문자열 길이를 기초로 키를 설정하고, 상기 정규화 및 추상화된 함수에 대응되는 값을 설정하여 딕셔너리를 생성하는 단계; 및 상기 생성된 딕셔너리를 취약 코드 클론 집합과 비교하여, 상기 소프트웨어에 대한 코드 클론 여부를 판단하는 단계를 포함하되, 상기 취약 코드 클론 집합은 딕셔너리 자료구조를 기초로, 복수의 타 소프트웨어에 포함된 함수로부터 추출된 후 정규화 및 추상화되어 저장된 복수의 취약 코드를 포함하는, 코드 클론 탐지 방법
|
11 |
11
삭제
|
12 |
12
삭제
|
13 |
13
제 10 항에 있어서, 상기 소프트웨어에 대한 코드 클론 여부를 판단하는 단계는, 상기 딕셔너리에 포함된 키 및 상기 취약 코드 클론 집합의 키를 비교하는 단계;상기 딕셔너리에 포함된 키 및 상기 취약 코드 클론 집합의 키가 일치하는 경우, 상기 딕셔너리에 포함된 키에 대응하는 값 및 상기 취약 코드 클론 집합의 키에 대응하는 취약 코드와의 비교를 수행하여, 상기 소프트웨어에 대한 코드 클론 여부를 판단하는 단계를 포함하는, 코드 클론 탐지 방법
|
14 |
14
제 10 항 및 제 13 항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
|