1 |
1
안드로이드 앱(Application; App) 보호를 위한 동적 보호 알고리즘을 이용하여 가상머신과 리얼머신을 구분하는 안티 에뮬레이션 방법에 있어서, 대상 프로그램에 대한 제1 다음 레지스터의 명령어를 실행하며, 제1 다음 레지스터의 명령어 주소를 저장하는 단계;상기 대상 프로그램에 대한 제2 다음 레지스터의 명령어를 실행하며, 제2 다음 레지스터의 명령어 주소를 저장하는 단계; 상기 제1 다음 레지스터의 명령어 주소에 저장된 상기 제1 다음 레지스터의 명령어를 상기 제2 다음 레지스터의 명령어 주소에 오버라이트(overwrite)하는 단계; 및 상기 명령어 주소의 오버라이트에 따라, 제1 레지스터 또는 제2 레지스터 값의 증가 변화로부터 상기 대상 프로그램에 대한 가상머신 또는 리얼머신을 판단하는 단계를 포함하는 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법
|
2 |
2
제1항에 있어서,상기 제1 다음 레지스터의 명령어 주소를 저장하는 단계는상기 대상 프로그램에서 실행되는 상기 제1 레지스터에 상수 1을 추가한 상기 제1 다음 레지스터의 명령어를 실행하고, 상기 제1 다음 레지스터의 명령어 주소를 메모리에 저장하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법
|
3 |
3
제1항에 있어서,상기 제2 다음 레지스터의 명령어 주소를 저장하는 단계는상기 대상 프로그램에서 실행되는 상기 제2 레지스터에 상수 1을 추가한 상기 제2 다음 레지스터의 명령어를 실행하고, 상기 제2 다음 레지스터의 명령어 주소를 메모리에 저장하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법
|
4 |
4
제1항에 있어서,상기 오버라이트하는 단계는상기 제2 다음 레지스터의 명령어 주소에 저장된 상기 제2 다음 레지스터의 명령어를 상기 제1 다음 레지스터의 명령어 주소에 저장된 상기 제1 다음 레지스터의 명령어로 오버라이트하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법
|
5 |
5
제4항에 있어서,상기 리얼머신은 코드 캐시(I-Cache) 및 데이터 캐시(D-Cache)를 포함하여 캐시를 명령어와 데이터로 분리하여 처리하고, 상기 가상머신은 단일의 캐시를 이용하여 처리하며,상기 판단하는 단계는상기 가상머신과 상기 리얼머신의 캐시 구조 차이에 기반하여 상기 제1 레지스터와 상기 제2 레지스터의 시간에 따른 증가 변화로부터 상기 대상 프로그램에 대한 가상머신 또는 리얼머신을 판단하는 것을 특징으로 하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법
|
6 |
6
제5항에 있어서,상기 판단하는 단계는상기 명령어 주소의 오버라이트에 따라, 상기 제2 레지스터의 값이 증가하는 경우, 상기 대상 프로그램을 리얼머신으로 판단하고, 상기 제1 레지스터의 값이 증가하는 경우, 상기 대상 프로그램을 가상머신으로 판단하는 것을 특징으로 하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법
|
7 |
7
안드로이드 앱(Application; App) 보호를 위한 동적 보호 알고리즘을 이용하여 가상머신과 리얼머신을 구분하는 안티 에뮬레이션 장치에 있어서, 대상 프로그램에 대한 제1 다음 레지스터의 명령어를 실행하며, 제1 다음 레지스터의 명령어 주소를 저장하고, 상기 대상 프로그램에 대한 제2 다음 레지스터의 명령어를 실행하며, 제2 다음 레지스터의 명령어 주소를 저장하는 저장부; 상기 제1 다음 레지스터의 명령어 주소에 저장된 상기 제1 다음 레지스터의 명령어를 상기 제2 다음 레지스터의 명령어 주소에 오버라이트(overwrite)하는 처리부; 및 상기 명령어 주소의 오버라이트에 따라, 제1 레지스터 또는 제2 레지스터 값의 증가 변화로부터 상기 대상 프로그램에 대한 가상머신 또는 리얼머신을 판단하는 판단부를 포함하는 안드로이드 앱 보호를 위한 안티 에뮬레이션 장치
|
8 |
8
제7항에 있어서,상기 저장부는상기 대상 프로그램에서 실행되는 상기 제1 레지스터에 상수 1을 추가한 상기 제1 다음 레지스터의 명령어를 실행하고, 상기 제1 다음 레지스터의 명령어 주소를 메모리에 저장하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 장치
|
9 |
9
제7항에 있어서,상기 저장부는상기 대상 프로그램에서 실행되는 상기 제2 레지스터에 상수 1을 추가한 상기 제2 다음 레지스터의 명령어를 실행하고, 상기 제2 다음 레지스터의 명령어 주소를 메모리에 저장하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 장치
|
10 |
10
제7항에 있어서,상기 처리부는상기 제2 다음 레지스터의 명령어 주소에 저장된 상기 제2 다음 레지스터의 명령어를 상기 제1 다음 레지스터의 명령어 주소에 저장된 상기 제1 다음 레지스터의 명령어로 오버라이트하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 장치
|
11 |
11
제10항에 있어서,상기 판단부는상기 명령어 주소의 오버라이트에 따라, 상기 제2 레지스터의 값이 증가하는 경우, 상기 대상 프로그램을 리얼머신으로 판단하고, 상기 제1 레지스터의 값이 증가하는 경우, 상기 대상 프로그램을 가상머신으로 판단하는 것을 특징으로 하는, 안드로이드 앱 보호를 위한 안티 에뮬레이션 장치
|