1 |
1
애플리케이션 코드를 중요코드 및 상기 중요코드 이외의 일반코드로 분리하는 중요코드 분리부;상기 중요코드를 호출하기 위한 중요코드 호출기를 생성하는 중요코드 호출기 생성부; 상기 중요코드를 분석하는 코드 분석부;상기 중요코드에 대응하는 더미코드를 생성하는 더미코드 생성부;상기 중요코드를 암호화하는 코드 암호화부;상기 더미코드 및 상기 암호화된 중요코드를 배치시키고, 상기 더미코드 및 상기 암호화된 중요코드의 위치 정보를 생성하는 코드 배치부;상기 암호화된 중요코드를 복호화하기 위한 코드 복호화기를 생성하는 코드 복호화기 생성부;상기 더미코드 및 상기 암호화된 중요코드의 상기 위치 정보를 이용하여 상기 더미코드 및 상기 암호화된 중요코드를 전달하는 배치된 코드 임포터를 생성하는 배치된 코드 임포터 생성부;상기 더미코드를 메모리에 적재하는 코드 적재기를 생성하는 코드 적재기 생성부;상기 메모리에 먼저 적재된 상기 더미코드를 상기 복호화된 중요코드로 대체하는 메모리 내부 코드 수정기를 생성하는 메모리 내부 코드 수정기 생성부; 및상기 메모리에 대체된 상기 복호화된 중요코드를 호출하기 위한 복호화된 코드 호출기를 생성하는 복호화된 코드 호출기 생성부를 포함하고,상기 중요코드 호출기는 상기 더미코드를 호출하지 않고, 상기 중요코드만을 호출하며, 상기 더미코드는 상기 일반코드와 독립적으로 형성되고, 상기 더미코드는 상기 일반코드에 삽입되지 않으며, 상기 더미코드의 개수는 상기 중요코드의 개수와 동일하고,상기 더미코드는 상기 중요코드와 동일한 시그니쳐를 갖고, 상기 중요코드와 상이한 오퍼레이션 코드를 갖는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
2 |
2
제1항에 있어서, 상기 코드 분석부는 상기 중요코드를 복수의 서브 중요코드로 분리하는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
3 |
3
제2항에 있어서, 상기 더미코드 생성부는 상기 분리된 서브 중요코드에 대응하는 복수의 분리된 서브 더미코드를 생성하는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
4 |
4
제2항에 있어서, 상기 코드 분석부는 상기 중요코드를 클래스 단위의 복수의 서브 중요코드로 분리하는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
5 |
5
삭제
|
6 |
6
제1항에 있어서, 상기 더미코드의 길이는 상기 중요코드의 길이보다 크거나 같은 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
7 |
7
제1항에 있어서, 상기 코드 복호화기 생성부에 의해 생성되는 상기 코드 복호화기, 상기 배치된 코드 임포터 생성부에 의해 생성되는 상기 배치된 코드 임포터, 상기 코드 적재기 생성부에 의해 생성되는 상기 코드 적재기, 상기 메모리 내부 코드 수정기 생성부에 의해 생성되는 상기 메모리 내부 코드 수정기 및 상기 복호화된 코드 호출기 생성부에 의해 생성되는 상기 복호화된 코드 호출기는 네이티브 코드 영역에 배치되는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
8 |
8
제7항에 있어서, 상기 일반코드 및 상기 중요코드 호출기는 바이트 코드 영역에 배치되는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
9 |
9
제8항에 있어서, 상기 암호화된 중요코드 및 상기 더미코드는 상기 네이티브 코드 영역, 상기 바이트 코드 영역, 애플리케이션 데이터 영역의 리소스(resources) 영역 및 상기 애플리케이션 데이터 영역의 애셋(assets) 영역 중 하나에 배치되는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
10 |
10
제9항에 있어서, 상기 암호화된 중요코드 및 상기 더미코드는 상기 네이티브 코드 영역, 상기 바이트 코드 영역, 상기 애플리케이션 데이터 영역의 상기 리소스(resources) 영역 및 상기 애플리케이션 데이터 영역의 상기 애셋(assets) 영역에서 서로 다른 영역에 배치되는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
11 |
11
제1항에 있어서, 상기 일반코드의 실행 중에 상기 중요코드 호출기는 상기 중요코드를 호출하고, 상기 중요코드가 호출되면 상기 배치된 코드 임포터는 상기 중요코드에 대응하는 상기 더미코드를 상기 코드 적재기에 전달하고 상기 암호화된 중요코드를 상기 코드 복호화기에 전달하며, 상기 코드 적재기는 상기 더미코드를 상기 메모리에 적재하고, 상기 코드 복호화기는 상기 암호화된 중요코드를 복호화하여 상기 메모리 내부 코드 수정기에 전달하며, 상기 메모리 내부 코드 수정기는 상기 메모리 내의 상기 더미코드를 상기 복호화된 중요코드로 대체하는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
12 |
12
제11항에 있어서, 상기 복호화된 코드 호출기는 상기 메모리에 대체된 상기 중요코드가 실행되도록 하고 상기 중요코드의 실행 결과를 보관하며, 상기 중요코드가 실행된 후 상기 배치된 코드 임포터는 상기 더미코드를 상기 메모리 내부 코드 수정기에 전달하고, 상기 메모리 내부 코드 수정기는 상기 중요코드를 상기 더미코드로 대체하며, 상기 복호화된 코드 호출기가 보관하던 상기 중요코드의 상기 실행 결과를 상기 일반코드로 전달하는 것을 특징으로 하는 애플리케이션 코드 은닉 장치
|
13 |
13
중요코드 분리부가 애플리케이션 코드를 중요코드 및 상기 중요코드 이외의 일반코드로 분리하는 단계;중요코드 호출기 생성부가 상기 중요코드를 호출하기 위한 중요코드 호출기를 생성하는 단계; 코드 분석부가 상기 중요코드를 분석하는 단계;더미코드 생성부가 상기 중요코드에 대응하는 더미코드를 생성하는 단계;코드 암호화부가 상기 중요코드를 암호화하는 단계;코드 배치부가 상기 더미코드 및 상기 암호화된 중요코드를 배치시키고, 상기 더미코드 및 상기 암호화된 중요코드의 위치 정보를 생성하는 단계;코드 복호화기 생성부가 상기 암호화된 중요코드를 복호화하기 위한 코드 복호화기를 생성하는 단계;배치된 코드 임포터 생성부가 상기 더미코드 및 상기 암호화된 중요코드의 상기 위치 정보를 이용하여 상기 더미코드 및 상기 암호화된 중요코드를 전달하는 배치된 코드 임포터를 생성하는 단계;코드 적재기 생성부가 상기 더미코드를 메모리에 적재하는 코드 적재기를 생성하는 단계;메모리 내부 코드 수정기 생성부가 상기 메모리에 먼저 적재된 상기 더미코드를 상기 복호화된 중요코드로 대체하는 메모리 내부 코드 수정기를 생성하는 단계; 및상기 메모리에 대체된 상기 복호화된 중요코드를 호출하기 위한 복호화된 코드 호출기를 생성하는 단계를 포함하고,상기 중요코드 호출기는 상기 더미코드를 호출하지 않고, 상기 중요코드만을 호출하며, 상기 더미코드는 상기 일반코드와 독립적으로 형성되고, 상기 더미코드는 상기 일반코드에 삽입되지 않으며, 상기 더미코드의 개수는 상기 중요코드의 개수와 동일하고,상기 더미코드는 상기 중요코드와 동일한 시그니쳐를 갖고, 상기 중요코드와 상이한 오퍼레이션 코드를 갖는 것을 특징으로 하는 애플리케이션 코드 은닉 방법
|
14 |
14
제13항에 있어서, 상기 중요코드를 분석하는 단계는 상기 중요코드를 복수의 서브 중요코드로 분리하는 것을 특징으로 하는 애플리케이션 코드 은닉 방법
|
15 |
15
제14항에 있어서, 상기 더미코드를 생성하는 단계는 상기 분리된 서브 중요코드에 대응하는 복수의 분리된 서브 더미코드를 생성하는 것을 특징으로 하는 애플리케이션 코드 은닉 방법
|
16 |
16
제13항에 있어서, 상기 더미코드의 길이는 상기 중요코드의 길이보다 크거나 같은 것을 특징으로 하는 애플리케이션 코드 은닉 방법
|
17 |
17
제13항에 있어서, 상기 복호화된 코드 호출기를 생성하는 단계 후에, 상기 일반코드의 실행 중에 상기 중요코드 호출기는 상기 중요코드를 호출하는 단계; 상기 중요코드가 호출되면 상기 배치된 코드 임포터는 상기 중요코드에 대응하는 상기 더미코드를 상기 코드 적재기에 전달하고, 상기 암호화된 중요코드를 상기 코드 복호화기에 전달하는 단계;상기 코드 적재기는 상기 더미코드를 상기 메모리에 적재하는 단계;상기 코드 복호화기는 상기 암호화된 중요코드를 복호화하여 상기 메모리 내부 코드 수정기에 전달하는 단계; 및상기 메모리 내부 코드 수정기는 상기 메모리 내의 상기 더미코드를 상기 복호화된 중요코드로 대체하는 단계를 더 포함하는 것을 특징으로 하는 애플리케이션 코드 은닉 방법
|
18 |
18
제17항에 있어서, 상기 더미코드를 상기 복호화된 중요코드로 대체하는 단계 후에,상기 복호화된 코드 호출기는 상기 메모리에 대체된 상기 중요코드가 실행되도록 하고 상기 중요코드의 실행 결과를 보관하는 단계;상기 중요코드가 실행된 후 상기 배치된 코드 임포터는 상기 더미코드를 상기 메모리 내부 코드 수정기에 전달하는 단계;상기 메모리 내부 코드 수정기는 상기 중요코드를 상기 더미코드로 대체하는 단계; 및상기 복호화된 코드 호출기가 보관하던 상기 중요코드의 상기 실행 결과를 상기 일반코드로 전달하는 단계를 더 포함하는 것을 특징으로 하는 애플리케이션 코드 은닉 방법
|