1 |
1
업데이트 전의 제1 프로그램의 제1 바이너리와 업데이트 후의 제2 프로그램의 제2 바이너리를 비교하여 의미변화가 없는 것으로 판단된 상기 제2 바이너리의 함수들을 미리 결정된 문자열로 대체한 제3 바이너리를 생성하는 어셈블리 가지치기 단계;상기 제1 바이너리와 상기 제3 바이너리의 슈도코드(pseudo code) 및 해쉬함수(hash function) 중 적어도 하나를 비교하여 변경되지 않은 상기 제3 바이너리의 함수들을 제거한 제4 바이너리를 생성하는 정확도가 높은 휴리스틱 적용 단계; 상기 제1 바이너리와 상기 제4 바이너리를 비교하여 동일한 이름을 갖는 상기 제4 바이너리의 함수들을 제거한 제5 바이너리를 생성하는 같은 이름 휴리스틱 적용 단계;상기 제1 바이너리와 상기 제5 바이너리를 비교하여 함수의 일부가 동일한 유사함수와 비유사한 비유사함수로 상기 제5 바이너리에서 분류한 제6 바이너리를 생성하는 나머지 휴리스틱 적용 단계를 포함하는 바이너리 디핑 알고리즘
|
2 |
2
제1항에 있어서,상기 어셈블리 가지치기 단계에서 상기 의미적인 변화로 볼 수 없는 함수는 메모리 옵셋, 레지스터 이름, jmp label, type word, type keyword, qword ptr, dword ptr을 포함하는 것을 특징으로 하는 바이너리 디핑 알고리즘
|
3 |
3
제1항에 있어서,상기 나머지 휴리스틱 적용 단계는 상기 제1 바이너리와 상기 제5 바이너리의 두 함수에서 명령어 개수가 동일할 경우 일치율을 1로 계산하는 휴리스틱 사용 단계를 더 포함하는 바이너리 디핑 알고리즘
|
4 |
4
제1항에 있어서,상기 같은 이름 휴리스틱 적용 단계는 상기 제1 바이너리와 상기 제4 바이너리의 문자열이 일치하는 정도에 따라 유효숫자 수를 소수점 아래 3자리까지 계산하는 것을 특징으로 하는 바이너리 디핑 알고리즘
|
5 |
5
바이너리 내에 존재하는 소스 코드를 문자열로 추려내는 문자열 추출부;업데이트 전의 제1 프로그램의 제1 바이너리와 업데이트 후의 제2 프로그램의 제2 바이너리를 비교하여 의미변화가 없는 것으로 판단된 상기 제2 바이너리의 함수들을 상기 문자열로 대체한 제3 바이너리를 생성하는 문자열 정제부; 및상기 제1 바이너리와 상기 제3 바이너리의 슈도코드(pseudo code) 및 해쉬함수(hash function) 중 적어도 하나를 비교하여 변경되지 않은 상기 제3 바이너리의 함수들을 제거한 제4 바이너리를 생성하고, 상기 제1 바이너리와 상기 제4 바이너리를 비교하여 동일한 이름을 갖는 상기 제4 바이너리 함수들을 제거한 제5 바이너리를 생성하고, 상기 제1 바이너리와 상기 제5 바이너리를 비교하여 함수의 일부가 동일한 유사함수와 비유사함수로 상기 제5 바이너리에서 분류한 제6 바이너리를 생성하는 문자열 비교부를 포함하는 바이너리 디핑 알고리즘 시스템
|
6 |
6
제5항에 있어서,상기 문자열 비교부는 상기 제1 상기 제5 바이너리를 비교하여 두 함수에서 명령어 개수가 동일할 경우 일치율을 1로 계산하는 것을 특징으로 하는 바이너리 디핑 알고리즘 시스템
|
7 |
7
제1항에 있어서,상기 제1 바이너리와 상기 제4 바이너리의 문자열이 일치하는 정도에 따라 유효숫자 수를 소수점 아래 3자리까지 계산하는 것을 특징으로 하는 바이너리 디핑 알고리즘 시스템
|