1 |
1
비트벡터 생성부가, 미리 저장된 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록(basic block)을 나타내는 복수 개의 프로그램 비트벡터(bit vector)를 상기 복수 개의 프로그램 별로 각각 생성하는 단계;유효 비트벡터 생성부가, 상기 복수 개의 프로그램 비트벡터에 기초하여 비트벡터 마스크(mask)를 생성하고, 상기 복수 개의 프로그램 비트벡터 각각에 상기 비트벡터 마스크를 적용하여 복수 개의 유효 프로그램 비트벡터를 생성하는 단계;그룹 특성 벡터 집합 생성부가, 상기 복수 개의 유효 프로그램 비트벡터에 기설정된 조건을 적용하여 결정된 비트벡터인 복수 개의 그룹 특성 벡터를 포함하는 그룹 특성 벡터 집합을 생성하는 단계; 및프로그램 분류부가, 미리 저장된 적어도 하나의 분류 대상 프로그램과 상기 복수 개의 그룹 특성 벡터를 비교하여 상기 적어도 하나의 분류 대상 프로그램을 분류하는 단계를 포함하되, 상기 복수 개의 프로그램 비트벡터는,상기 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록의 존재 여부를 나타내는 벡터로, 상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 식별 번호에 대응되는 비트의 비트값을 설정하여 생성된 것을 특징으로 하는, 프로그램 분류 방법
|
2 |
2
제1항에 있어서,상기 복수 개의 프로그램 비트벡터를 상기 복수 개의 프로그램 별로 각각 생성하는 단계는,상기 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록 각각에 해시함수를 적용하여 상기 모든 함수 또는 모든 기본 블록 각각을 임의의 비트열로 변환하는 단계;상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 상기 임의의 비트열 각각에서 기설정된 개수의 연속된 비트열인 연속 비트열을 각각 추출하는 단계;추출된 상기 연속 비트열 각각을 기설정된 조건에 따라 변환하여 상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 식별 번호를 생성하는 단계; 및상기 복수 개의 프로그램 각각에 대응되며 기설정된 개수의 비트를 포함하는 복수 개의 비트벡터 상에서 상기 식별 번호에 각각 대응되는 비트의 비트값을 설정하여 상기 복수 개의 프로그램 비트벡터를 각각 생성하는 단계를 포함하는, 프로그램 분류 방법
|
3 |
3
제1항에 있어서,상기 복수 개의 유효 프로그램 비트벡터를 생성하는 단계는,상기 복수 개의 프로그램 비트벡터 상호간에 서로 대응되는 비트의 비트값을 모두 합산하여 상기 모든 함수 또는 모든 기본 블록 각각의 빈도수를 나타내는 함수 빈도수 벡터를 생성하는 단계;상기 함수 빈도수 벡터에 포함된 상기 모든 함수 또는 모든 기본 블록 각각의 빈도수에 기설정된 제1 임계값을 적용하여 상기 비트벡터 마스크를 생성하는 단계; 및상기 복수 개의 프로그램 비트벡터 각각과 상기 비트벡터 마스크를 서로 AND 연산하여 상기 복수 개의 유효 프로그램 비트벡터를 생성하는 단계를 포함하는, 프로그램 분류 방법
|
4 |
4
제3항에 있어서,상기 비트벡터 마스크는,상기 모든 함수 또는 모든 기본 블록 각각의 빈도수 중 상기 기설정된 제1 임계값보다 큰 빈도수에 대응되는 함수 또는 기본 블록에 대한 비트의 비트값을 "1"로 설정하고, 상기 기설정된 제1 임계값보다 작은 빈도수에 대응되는 함수 또는 기본 블록에 대한 비트의 비트값을 "0"으로 설정한 비트벡터인, 프로그램 분류 방법
|
5 |
5
제1항에 있어서,상기 그룹 특성 벡터 집합이 공집합인 경우,상기 그룹 특성 벡터 집합을 생성하는 단계는,상기 복수 개의 유효 프로그램 비트벡터 중 선택된 하나의 유효 프로그램 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법
|
6 |
6
제1항에 있어서,상기 그룹 특성 벡터 집합이 미리 저장된 적어도 하나의 그룹 특성 벡터를 포함하는 경우,상기 그룹 특성 벡터 집합을 생성하는 단계는,상기 적어도 하나의 그룹 특성 벡터 중 i 번째 그룹 특성 벡터와 상기 복수 개의 유효 프로그램 비트벡터 중 j 번째 유효 프로그램 비트벡터 상호 간의 제1 유사도를 산출하는 단계;상기 제1 유사도에 기설정된 제2 임계값을 적용하여 상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터가 서로 유사한지 여부를 판단하는 제1 판단 단계; 및상기 제1 판단 결과에 기초하여 상기 그룹 특성 벡터 집합에 저장될 그룹 특성 벡터를 결정하는 제1 결정 단계를 포함하는, 프로그램 분류 방법
|
7 |
7
제6항에 있어서,상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터가 서로 비유사한 경우,상기 제1 결정 단계는,상기 j 번째 유효 프로그램 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법
|
8 |
8
제6항에 있어서,상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터가 서로 유사한 경우,상기 제1 결정 단계는,상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터를 서로 AND 연산하여 공통 비트벡터를 생성하는 단계;상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터 상호 간의 제2 유사도 및 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터 상호 간의 제3 유사도를 각각 산출하는 단계;상기 제2 유사도 및 상기 제3 유사도 각각에 상기 제2 임계값을 적용하여 상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 유사한지 여부 및 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 유사한지 여부를 각각 판단하는 제2 판단 단계; 및상기 제2 판단 결과에 기초하여 상기 그룹 특성 벡터 집합에 저장될 그룹 특성 벡터를 결정하는 제2 결정 단계를 포함하는, 프로그램 분류 방법
|
9 |
9
제8항에 있어서,상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 유사하고, 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 유사한 경우,상기 제2 결정 단계는,상기 i 번째 그룹 특성 벡터를 상기 그룹 특성 벡터 집합에서 삭제하는 단계; 및상기 공통 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법
|
10 |
10
제8항에 있어서,상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 비유사하고, 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 유사한 경우,상기 제2 결정 단계는,상기 공통 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법
|
11 |
11
제8항에 있어서,상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 유사하고, 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 비유사한 경우,상기 제2 결정 단계는,상기 i 번째 그룹 특성 벡터를 상기 그룹 특성 벡터 집합에서 삭제하는 단계; 및상기 j 번째 유효 프로그램 비트벡터 및 상기 공통 비트벡터 각각을 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법
|
12 |
12
제1항에 있어서,상기 적어도 하나의 분류 대상 프로그램을 분류하는 단계는,상기 복수 개의 그룹 특성 벡터 각각에 대한 상기 적어도 하나의 분류 대상 프로그램 각각의 포함률을 산출하는 단계; 및상기 포함률에 기설정된 제3 임계값을 적용하여 상기 적어도 하나의 분류 대상 프로그램 각각이 속하는 프로그램 그룹을 결정하는 단계를 포함하는, 프로그램 분류 방법
|
13 |
13
미리 저장된 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록(basic block)을 나타내는 복수 개의 프로그램 비트벡터(bit vector)를 상기 복수 개의 프로그램 별로 각각 생성하는 비트벡터 생성부;상기 복수 개의 프로그램 비트벡터에 기초하여 비트벡터 마스크(mask)를 생성하고, 상기 복수 개의 프로그램 비트벡터 각각에 상기 비트벡터 마스크를 적용하여 복수 개의 유효 프로그램 비트벡터를 생성하는 유효 비트벡터 생성부;상기 복수 개의 유효 프로그램 비트벡터에 기설정된 조건을 적용하여 결정된 비트벡터인 복수 개의 그룹 특성 벡터를 포함하는 그룹 특성 벡터 집합을 생성하는 그룹 특성 벡터 집합 생성부; 및미리 저장된 적어도 하나의 분류 대상 프로그램과 상기 복수 개의 그룹 특성 벡터를 비교하여 상기 적어도 하나의 분류 대상 프로그램을 분류하는 프로그램 분류부를 포함하되, 상기 복수 개의 프로그램 비트벡터는,상기 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록의 존재 여부를 나타내는 벡터로, 상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 식별 번호에 대응되는 비트의 비트값을 설정하여 생성된 것을 특징으로 하는, 프로그램 분류 장치
|