1 |
1
난독화 옵션을 선택하는 옵션 선택부(100);상기 선택된 난독화 옵션으로 난독화할 원본을 입력받고, 상기 원본의 프로그래밍 언어 레벨에 따라 난독화 모드를 결정하는 모드 결정부(200); 및상기 모드 결정부를 통해 결정되는 레벨이 저급 언어인 경우, 상기 원본의 저급 언어 프로그램을 상기 난독화 옵션을 수행한 뒤 난독화된 저급 언어 프로그램을 출력하고, 고급 언어인 경우, 상기 원본의 고급 언어 프로그램을 상기 난독화 옵션을 수행하여 난독화된 고급 언어 프로그램을 출력하는 난독화 실행부(300);를 포함하는 것을 특징으로 하는중간언어를 활용한 바이너리 프로그램 난독화 시스템
|
2 |
2
제1항에 있어서,상기 옵션 선택부는 적어도 어느 하나 이상의 난독화 옵션을 선택받으며,상기 선택된 난독화 옵션 횟수에 따라 상기 난독화 실행부의 출력을 순차적으로 난독화 실행부의 입력에 피드백 전달하여 난독화가 중첩되게 적용하도록 하는 피드백부(400);를 더 포함하는 것을 특징으로 하는 중간언어를 활용한 바이너리 프로그램 난독화 시스템
|
3 |
3
제1항에 있어서,상기 옵션 선택부는 난독화 옵션 중 입력된 대상에 적용하고자 하는 난독화 기술을 적어도 한 가지 이상 선택하며, 입력한 키워드의 종류와 순서에 따라 난독화가 실행되도록 입력되는 키워드를 통해 선택하는 것을 특징으로 하는 중간언어를 활용한 바이너리 프로그램 난독화 시스템
|
4 |
4
제1항에 있어서,상기 모드 결정부는 상기 난독화할 대상의 프로그래밍 언어가 기계어 또는 어셈블리어인 경우, 저급 언어 난독화 모드로 결정하는 제1 모드 결정모듈; 및상기 난독화할 대상의 프로그래밍 언어가 기계어 또는 어셈블리어가 아닌 경우, 고급 언어 난독화 모드로 결정하는 제2 모드 결정모듈;을 포함하는 것을 특징으로 하는 중간언어를 활용한 바이너리 프로그램 난독화 시스템
|
5 |
5
제1항에 있어서,상기 난독화 실행부는 상기 모드 결정부를 통해 결정되는 레벨이 저급 언어인 경우, 상기 원본의 저급 언어 레벨을 중간 언어 레벨로 변환하고, 선택한 난독화 옵션에 따라 난독화를 적용한 후 난독화된 중간 언어 레벨의 프로그램을 컴파일하여 저급 언어 프로그램으로 변환하는 것을 특징으로 하는 중간언어를 활용한 바이너리 프로그램 난독화 시스템
|
6 |
6
제1항에 있어서,상기 옵션 선택부는 Opaque predicate 난독화, MBA 난독화, 식별자 난독화, Type change 난독화, Inline Assembly를 활용한 난독화, 소스코드 수준에서 가독성을 떨어뜨리는 Uglyfier 난독화 중 어느 하나 이상을 난독화 옵션으로 선택하는 것을 특징으로 하는 중간언어를 활용한 바이너리 프로그램 난독화 시스템
|
7 |
7
(a) 제어부가 난독화 옵션을 선택하는 단계;(b) 상기 제어부가 선택된 난독화 옵션으로 난독화할 원본을 입력받고, 상기 원본의 프로그래밍 언어 레벨에 따라 난독화 모드를 결정하는 단계; 및(c) 상기 (b) 단계의 결정결과, 결정되는 레벨이 저급 언어인 경우, 상기 원본의 저급 언어 프로그램을 상기 난독화 옵션을 수행한 뒤 난독화된 저급 언어 프로그램을 출력하고, 고급 언어인 경우, 상기 원본의 고급 언어 프로그램을 상기 난독화 옵션을 수행하여 난독화된 고급 언어 프로그램을 출력하는 단계;를 포함하는 것을 특징으로 하는 중간언어를 활용한 바이너리 프로그램 난독화 방법
|