1 |
1
입력되는 난독화된 apk를 smali 코드 레벨로 변환하는 단계;상기 smali 코드 레벨로 변환하는 단계로부터 획득한 smali 코드 중 식별자들을 대상으로 난독화된 문자열(string)을 검사하는 단계;상기 난독화된 문자열이 있는 경우 역난독화에 필요한 정보 및 식별자들의 빈도수를 추출하는 단계;난독화되지 않은 apk로부터 추출된 정보로부터 계산된 식별자들의 빈도수, 타입 및 이름 정보를 저장하는 단계; 및상기 역난독화에 필요한 정보 및 식별자들의 빈도수를 추출하는 단계로부터 추출된 정보를 이용하여 식별자 이름 DB부에서 가장 유사한 빈도수를 가진 식별자 타입의 이름을 획득하여 역난독화하는 단계;를 포함하되,상기 역난독화에 필요한 정보 및 식별자들의 빈도수를 추출하는 단계는,상기 역난독화에 필요한 정보는 apk 이름, 난독화된 이름, 타입, 코드 라인수, 메소드 안에 포함된 함수 리스트 및 타겟의 위치 주소 중 적어도 하나의 정보를 포함하며 로그 파일(log file)에 기록하는 단계;를 포함하고상기 역난독화에 필요한 정보 및 식별자들의 빈도수를 추출하는 단계는,모든 타입에 대해 검사를 수행하여 난독화된 정보들의 로그 파일 기록이 완료되면, 각각의 난독화된 정보들을 대상으로 문자열을 쪼개어 해당 문자가 문서 전체에 비해 얼마나 많이 나타나있는지에 대한 비율값을 계산하는 자연어 처리 알고리즘인 TF-IDF 알고리즘을 이용하여 식별자들의 빈도수를 계산하는 단계; 및계산된 식별자들의 빈도수를 로그 파일에 기록하는 단계;를 더 포함하는, 자연어 처리 기반 난독화된 식별자 인식 방법
|
2 |
2
제1항에 있어서, 상기 smali 코드 레벨로 변환하는 단계는,입력되는 난독화된 apk를 디컴파일하여 dex 파일을 획득하는 단계; 및획득한 dex 파일을 baksmali하여 어플리케이션 실행 코드를 읽을 수 있는 형태인 smali 코드로 변환하는 단계;를 포함하는, 자연어 처리 기반 난독화된 식별자 인식 방법
|
3 |
3
제2항에 있어서, 상기 난독화된 문자열(string)을 검사하는 단계는,상기 smali 코드의 package, class, method, field, abstract 및 implement 타입의 식별자를 대상으로 dex 파일 안에 있는 모든 타입들에 대해 검사를 진행하는 단계;를 포함하는, 자연어 처리 기반 난독화된 식별자 인식 방법
|
4 |
4
제3항에 있어서, 상기 난독화된 문자열(string)을 검사하는 단계는,이름의 길이가 2자 이하이거나 ascii 코드 값으로 영문 및 숫자가 아닌 바이너리의 경우 난독화되었다고 판단하는 단계;를 더 포함하는, 자연어 처리 기반 난독화된 식별자 인식 방법
|
5 |
5
삭제
|
6 |
6
삭제
|
7 |
7
제1항에 있어서, 난독화되지 않은 apk를 입력 받아 package, class, method, field, abstract 및 implement 타입의 식별자를 대상으로 이름과 코드를 추출하여 상기 식별자 이름 DB부에 저장하는 단계;를 더 포함하는, 자연어 처리 기반 난독화된 식별자 인식 방법
|
8 |
8
제7항에 있어서, 상기 추출된 이름과 코드를 기초로 자연어 처리 알고리즘인 TF-IDF 알고리즘을 이용하여 식별자들의 빈도수를 계산하는 단계; 및계산된 식별자들의 빈도수를 상기 식별자 이름 DB부에 저장하는 단계;를 더 포함하는, 자연어 처리 기반 난독화된 식별자 인식 방법
|
9 |
9
제1항에 따른, 상기 자연어 처리 기반 난독화된 식별자 인식 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체
|
10 |
10
입력되는 난독화된 apk를 smali 코드 레벨로 변환하는 smali 코드 변환부;상기 smali 코드 변환부로부터 획득한 smali 코드 중 식별자들을 대상으로 난독화된 문자열(string)을 검사하는 난독화된 문자열 탐지부;상기 난독화된 문자열이 있는 경우 역난독화에 필요한 정보 및 식별자들의 빈도수를 추출하는 난독화된 정보 추출부;난독화되지 않은 apk로부터 추출된 정보로부터 계산된 식별자들의 빈도수, 타입 및 이름 정보를 저장하는 식별자 이름 DB부; 및상기 난독화된 정보 추출부로부터 추출된 정보를 이용하여 상기 식별자 이름 DB부에서 가장 유사한 빈도수를 가진 식별자 타입의 이름을 획득하여 역난독화하는 문자열 다시 쓰기부;를 포함하되,상기 난독화된 정보 추출부는,상기 역난독화에 필요한 정보는 apk 이름, 난독화된 이름, 타입, 코드 라인수, 메소드 안에 포함된 함수 리스트 및 타겟의 위치 주소 중 적어도 하나의 정보를 포함하며 로그 파일(log file)에 기록하며, 상기 난독화된 정보 추출부는,모든 타입에 대해 검사를 수행하여 난독화된 정보들의 로그 파일 기록이 완료되면, 각각의 난독화된 정보들을 대상으로 문자열을 쪼개어 해당 문자가 문서 전체에 비해 얼마나 많이 나타나있는지에 대한 비율값을 계산하는 자연어 처리 알고리즘인 TF-IDF 알고리즘을 이용하여 식별자들의 빈도수를 계산하고, 계산된 식별자들의 빈도수를 로그 파일에 기록하는, 자연어 처리 기반 난독화된 식별자 인식 장치
|
11 |
11
제10항에 있어서, 상기 smali 코드 변환부는, Apk의 디컴파일 과정을 거쳐 획득한 dex 파일을 baksmali하여 어플리케이션 실행 코드를 읽을 수 있는 형태인 smali 코드로 변환하고,상기 난독화된 문자열 탐지부는, 상기 smali 코드의 package, class, method, field, abstract 및 implement 타입의 식별자를 대상으로 dex 파일 안에 있는 모든 타입들에 대해 검사를 진행하여 대상의 위치와 이름을 전달하는, 자연어 처리 기반 난독화된 식별자 인식 장치
|
12 |
12
제11항에 있어서, 상기 난독화된 문자열 탐지부는,이름의 길이가 2자 이하이거나 ascii 코드 값으로 영문 및 숫자가 아닌 바이너리의 경우 난독화되었다고 판단하는, 자연어 처리 기반 난독화된 식별자 인식 장치
|
13 |
13
삭제
|
14 |
14
삭제
|
15 |
15
제10항에 있어서, 난독화되지 않은 apk를 입력 받아 package, class, method, field, abstract 및 implement 타입의 식별자를 대상으로 이름과 코드를 추출하여 상기 식별자 이름 DB부에 저장하는 식별자 데이터 추출부; 및상기 식별자 데이터 추출부 통해 추출된 이름과 코드를 기초로 자연어 처리 알고리즘인 TF-IDF 알고리즘을 이용하여 식별자들의 빈도수를 계산하는 코드 빈도수 계산부;를 더 포함하는, 자연어 처리 기반 난독화된 식별자 인식 장치
|