1 |
1
삭제
|
2 |
2
삭제
|
3 |
3
삭제
|
4 |
4
삭제
|
5 |
5
삭제
|
6 |
6
삭제
|
7 |
7
삭제
|
8 |
8
삭제
|
9 |
9
제1 프로그램 언어에 따른 원본 응용 프로그램의 소스 코드를 제2 프로그램 언어에 따른 소스 코드로 변환하는 단계;
상기 제2 프로그램 언어에 따른 소스 코드에 포함된 적어도 하나의 원본 명령어를 대체할 수 있는 적어도 하나의 대체 명령어를 추출하는 단계;
상기 적어도 하나의 원본 명령어를 상기 적어도 하나의 대체 명령어로 대체하여 변경 소스 코드를 생성하는 단계; 및
상기 변경 소스 코드의 프로그램 언어를 상기 제1 프로그램 언어로 변환하여 상기 원본 응용 프로그램과 대응되는 변경 응용 프로그램을 생성하는 단계
를 포함하는 것을 특징으로 하는 응용 프로그램 다형화 방법
|
10 |
10
제9항에 있어서,
제1 프로그램 언어는 기계어이고, 상기 제2 프로그램 언어는 어셈블리어인 것을 특징으로 하는 응용 프로그램 다형화 방법
|
11 |
11
제9항에 있어서,
상기 적어도 하나의 대체 명령어를 추출하는 단계는
상기 적어도 하나의 원본 명령어 각각에 대응되는 적어도 하나의 대체 후보 명령어를 수집하는 단계; 및
상기 적어도 하나의 대체 후보 명령어 중 상기 적어도 하나의 대체 명령어를 선택하는 단계
를 포함하는 것을 특징으로 하는 응용 프로그램 다형화 방법
|
12 |
12
제11항에 있어서,
상기 적어도 하나의 대체 명령어를 선택하는 단계는
무작위로(randomly) 상기 적어도 하나의 대체 후보 명령어 중 상기 적어도 하나의 대체 명령어를 선택하는 단계인 것을 특징으로 하는 응용 프로그램 다형화 방법
|
13 |
13
제11항에 있어서,
상기 적어도 하나의 대체 명령어를 선택하는 단계는
상기 적어도 하나의 대체 후보 명령어들 각각이 실행되는 데에 소모되는 리소스, 상기 적어도 하나의 대체 후보 명령어의 용량 또는 상기 적어도 하나의 대체 후보 명령어의 사용 빈도 중 적어도 하나를 고려하여 상기 적어도 하나의 대체 후보 명령어 중 상기 적어도 하나의 대체 명령어를 선택하는 단계인 것을 특징으로 하는 응용 프로그램 다형화 방법
|
14 |
14
삭제
|
15 |
15
삭제
|
16 |
16
삭제
|
17 |
17
제1 프로그램 언어에 따른 원본 응용 프로그램의 소스 코드를 제2 프로그램 언어에 따른 소스 코드로 변환하는 전처리부;
상기 제2 프로그램 언어에 따른 소스 코드에 포함된 적어도 하나의 원본 명령어를 대체할 수 있는 적어도 하나의 대체 명령어를 추출하는 대체 명령어 추출부;
상기 적어도 하나의 원본 명령어를 상기 적어도 하나의 대체 명령어로 대체하여 변경 소스 코드를 생성하는 다형화 수행부; 및
상기 변경 소스 코드의 프로그램 언어를 상기 제1 프로그램 언어로 변환하여 상기 원본 응용 프로그램과 대응되는 변경 응용 프로그램을 생성하는 후처리부
를 포함하는 것을 특징으로 하는 응용 프로그램 다형화 장치
|
18 |
18
제17항에 있어서,
상기 전처리부는
기계어에 따른 상기 원본 응용 프로그램의 소스 코드를 어셈블리어에 따른 소스 코드로 변환하는 것을 특징으로 하는 응용 프로그램 다형화 장치
|
19 |
19
제17항에 있어서,
상기 후처리부는
상기 대체 명령어로 인해 발생된 상기 변경 소스 코드에서 사용되는 상대 주소값의 오류를 인지하고, 상기 상대 주소값의 오류를 수정하는 것을 특징으로 하는 응용 프로그램 다형화 장치
|
20 |
20
제9항 내지 제13항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체
|