1 |
1
애플리케이션 코드를 중요코드 및 상기 중요코드 이외의 일반코드로 분리하고, 상기 중요코드를 네이티브 코드(Native code) 형식으로 변환하는 코드 분리 변환기;상기 중요코드 내의 상대주소 호출부를 찾아 상기 상대주소를 호출하지 않고 절대주소를 호출하도록 변환하는 중요코드 변환기;동적 메모리를 할당 및 해제하기 위한 코드 및 암호화된 중요코드를 복호화하여 상기 동적 메모리에 복호화된 중요코드를 쓰기 위한 코드를 생성하는 자가 변환 생성부; 및상기 중요코드 내의 암호화 대상 코드를 찾아 상기 암호화 대상 코드를 암호화하는 자가 변환 파일 변환기를 포함하고,상기 자가 변환 생성부는 상기 암호화된 중요코드의 위치와 크기를 분석하는 중요코드 분석기를 생성하는 중요코드 분석기 생성부;상기 복호화된 중요코드를 쓰기 위한 상기 동적 메모리를 할당 및 해제하고, 상기 복호화된 중요코드를 상기 동적 메모리에 쓸 때 상기 동적 메모리의 권한을 쓰기 권한으로 변경하며, 상기 복호화된 중요코드가 실행될 때 상기 동적 메모리의 상기 권한을 읽기 및 실행 권한으로 변경하는 동적 메모리 할당 및 해제기를 생성하는 동적 메모리 할당 및 해제기 생성부; 및상기 중요코드 분석기를 통해 얻은 상기 암호화된 중요코드의 상기 위치와 상기 크기를 이용해 상기 암호화된 중요코드를 복호화하고, 상기 복호화된 중요코드를 상기 동적 메모리에 쓰는 중요코드 복호화기를 생성하는 중요코드 복호화기 생성부를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
2 |
2
제1항에 있어서, 상기 코드 분리 변환기는 상기 애플리케이션 코드를 상기 중요코드 및 상기 일반코드로 분리하는 중요코드 분리기; 상기 중요코드를 호출하기 위한 중요코드 호출기를 생성하는 중요코드 호출기 생성부; 및상기 중요코드를 상기 네이티브 코드 형식으로 변환하는 네이티브 변환기를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
3 |
3
제2항에 있어서, 상기 중요코드 변환기는 상기 중요코드 내의 상기 상대주소 호출부를 찾아 상기 상대주소 호출부가 상기 상대주소를 호출하지 않고 동적 위치 검색기를 호출하도록 상기 중요코드를 변환하는 중요코드 상대주소 변환기; 및상기 상대주소에 대응하는 상기 절대주소를 찾는 상기 동적 위치 검색기를 생성하는 동적 위치 검색기 생성부를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
4 |
4
제3항에 있어서, 상기 중요코드 상대주소 변환기는 상기 상대주소를 호출하지 않고 상기 동적 위치 검색기를 호출하도록 하는 동적 위치 검색기 호출기; 및상기 중요코드가 상기 동적 위치 검색기로부터 받은 상기 절대주소를 호출하도록 하는 절대주소 코드 호출기를 생성하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
5 |
5
삭제
|
6 |
6
제4항에 있어서, 상기 자가 변환 파일 변환기는 상기 중요코드 내의 상기 암호화 대상 코드의 위치 및 크기를 분석하는 실행 파일 문장 분석기; 및상기 실행 파일 문장 분석기를 통해 얻은 상기 암호화 대상 코드의 상기 위치 및 상기 크기를 기초로 상기 암호화 대상 코드를 암호화하는 실행파일 중요코드 암호화기를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
7 |
7
제6항에 있어서, 상기 일반코드 및 상기 중요코드 호출기는 애플리케이션의 관리되는 코드(Managed code) 영역에 배치되고, 상기 암호화된 중요코드, 상기 중요코드 분석기, 상기 중요코드 복호화기, 상기 동적 메모리 할당 및 해제기 및 상기 동적 위치 검색기는 상기 애플리케이션의 네이티브 코드 영역에 배치되는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
8 |
8
제6항에 있어서, 상기 중요코드의 호출 시점에서, 상기 중요코드 분석기는 상기 암호화된 중요코드의 상기 위치와 상기 크기를 분석하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
9 |
9
제8항에 있어서, 상기 동적 메모리의 할당 시점에서, 상기 동적 메모리 할당 및 해제기는 상기 동적 메모리를 할당하고, 상기 중요코드 복호화기는 상기 중요코드 분석기로부터 얻은 상기 암호화된 중요코드의 상기 위치와 상기 크기를 기초로 상기 암호화된 중요코드를 복호화하며, 상기 동적 메모리 할당 및 해제기는 상기 동적 메모리의 상기 권한을 상기 쓰기 권한으로 변경하고, 상기 중요코드 복호화기는 상기 복호화된 중요코드를 상기 동적 메모리에 쓰는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
10 |
10
제9항에 있어서, 상기 복호화된 중요코드의 실행 시점에서, 상기 동적 메모리 할당 및 해제기는 상기 동적 메모리의 상기 권한을 상기 읽기 및 실행 권한으로 변경하고, 동적 메모리 영역에서 상기 복호화된 중요코드가 실행되는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
11 |
11
제10항에 있어서, 상기 동적 메모리의 해제 시점에서, 상기 동적 메모리 할당 및 해제기는 상기 동적 메모리를 해제시켜 상기 복호화된 중요코드를 제거하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
12 |
12
애플리케이션 코드를 중요코드 및 상기 중요코드 이외의 일반코드로 분리하고, 상기 중요코드를 네이티브 코드(Native code) 형식으로 변환하는 코드 분리 변환기;상기 중요코드 내의 상대주소 호출부를 찾아 상기 상대주소를 호출하지 않고 절대주소를 호출하도록 변환하는 중요코드 변환기;동적 메모리를 할당 및 해제하기 위한 코드 및 암호화된 중요코드를 복호화하여 상기 동적 메모리에 복호화된 중요코드를 쓰기 위한 코드를 생성하는 자가 변환 생성부; 및상기 중요코드 내의 암호화 대상 코드를 찾아 상기 암호화 대상 코드를 암호화하는 자가 변환 파일 변환기를 포함하고,상기 코드 분리 변환기는 제1 코드 형식의 상기 일반코드 및 상기 중요코드를 포함하는 제1 코드를 입력 받아 제2 코드 형식의 상기 중요코드를 포함하는 제2 코드를 생성하고, 상기 중요코드 변환기는 상기 제2 코드 형식의 상기 제2 코드를 입력 받아 상기 제2 코드 형식을 갖고 상기 제2 코드의 상기 상대주소 호출부가 절대주소를 호출하도록 변환된 제3 코드를 생성하고, 상기 자가 변환 생성부는 상기 제2 코드 형식의 상기 제3 코드를 입력 받아 상기 제2 코드 형식을 갖고 상기 제3 코드에 상기 동적 메모리에 상기 복호화된 중요코드를 쓰기 위한 자가 변환 코드가 추가된 제4 코드를 생성하고, 상기 자가 변환 파일 변환기는 상기 제2 코드 형식의 상기 제4 코드를 컴파일하여 생성한 제3 코드 형식의 제5 코드를 입력 받아 상기 제3 코드 형식을 갖고 상기 중요코드가 암호화된 제6 코드를 생성하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
13 |
13
제12항에 있어서, 상기 제1 코드 형식은 관리되는 코드(Managed code) 형식이고, 상기 제2 코드 형식은 상기 네이티브 코드 형식이며, 상기 제3 코드 형식은 공유 객체 코드(Shared object code) 형식인 것을 특징으로 하는 애플리케이션 코드 자가 변환 장치
|
14 |
14
코드 분리 변환기를 이용하여, 애플리케이션 코드를 중요코드 및 상기 중요코드 이외의 일반코드로 분리하고, 상기 중요코드를 네이티브 코드(Native code) 형식으로 변환하는 단계;중요코드 변환기를 이용하여, 상기 중요코드 내의 상대주소 호출부를 찾아 상기 상대주소를 호출하지 않고 절대주소를 호출하도록 변환하는 단계;자가 변환 생성부를 이용하여, 동적 메모리를 할당 및 해제하기 위한 코드 및 암호화된 중요코드를 복호화하여 상기 동적 메모리에 복호화된 중요코드를 쓰기 위한 코드를 생성하는 단계; 및자가 변환 파일 변환기를 이용하여, 상기 중요코드 내의 암호화 대상 코드를 찾아 상기 암호화 대상 코드를 암호화하는 단계를 포함하고,상기 자가 변환 생성부는 상기 암호화된 중요코드의 위치와 크기를 분석하는 중요코드 분석기를 생성하는 중요코드 분석기 생성부;상기 복호화된 중요코드를 쓰기 위한 상기 동적 메모리를 할당 및 해제하고, 상기 복호화된 중요코드를 상기 동적 메모리에 쓸 때 상기 동적 메모리의 권한을 쓰기 권한으로 변경하며, 상기 복호화된 중요코드가 실행될 때 상기 동적 메모리의 상기 권한을 읽기 및 실행 권한으로 변경하는 동적 메모리 할당 및 해제기를 생성하는 동적 메모리 할당 및 해제기 생성부; 및상기 중요코드 분석기를 통해 얻은 상기 암호화된 중요코드의 상기 위치와 상기 크기를 이용해 상기 암호화된 중요코드를 복호화하고, 상기 복호화된 중요코드를 상기 동적 메모리에 쓰는 중요코드 복호화기를 생성하는 중요코드 복호화기 생성부를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 방법
|
15 |
15
제14항에 있어서, 상기 코드 분리 변환기는 상기 애플리케이션 코드를 상기 중요코드 및 상기 일반코드로 분리하는 중요코드 분리기; 상기 중요코드를 호출하기 위한 중요코드 호출기를 생성하는 중요코드 호출기 생성부; 및상기 중요코드를 상기 네이티브 코드 형식으로 변환하는 네이티브 변환기를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 방법
|
16 |
16
제15항에 있어서, 상기 중요코드 변환기는 상기 중요코드 내의 상기 상대주소 호출부를 찾아 상기 상대주소 호출부가 상기 상대주소를 호출하지 않고 동적 위치 검색기를 호출하도록 상기 중요코드를 변환하는 중요코드 상대주소 변환기; 및상기 상대주소에 대응하는 상기 절대주소를 찾는 상기 동적 위치 검색기를 생성하는 동적 위치 검색기 생성부를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 방법
|
17 |
17
삭제
|
18 |
18
제14항에 있어서, 상기 자가 변환 파일 변환기는 상기 중요코드 내의 상기 암호화 대상 코드의 위치 및 크기를 분석하는 실행 파일 문장 분석기; 및상기 실행 파일 문장 분석기를 통해 얻은 상기 암호화 대상 코드의 상기 위치 및 상기 크기를 기초로 상기 암호화 대상 코드를 암호화하는 실행파일 중요코드 암호화기를 포함하는 것을 특징으로 하는 애플리케이션 코드 자가 변환 방법
|