1 |
1
안드로이드 앱 분석 장치에 있어서,분석할 안드로이드 앱 파일의 압축을 해제하여 패키징된 다수의 파일들을 분리하거나, 분리된 다수의 파일들을 다시 패키징하여 압축하는 압축 처리부;상기 분리된 파일들 중 소스 코드를 포함하는 제1 파일을 분석하고, 상기 제1 파일에 포함된 유니코드를 모두 아스키코드로 교체하여 제2 파일을 생성하고, 상기 앱 파일 내 소스코드 파일을 상기 제2 파일로 교체한 후 상기 제2 파일을 판독 가능한 형태의 제1 코드로 변환하거나, 상기 제1 코드를 기계어 형태의 제2 코드로 변환하는 코드 처리부;상기 압축 처리부에서 분리된 다수의 파일들 중 소스코드가 포함된 제1 파일을 추출한 후, 이를 상기 코드 처리부로 전달하여 상기 제1 코드로 변환되도록하고, 상기 제1 코드에 대한 정적 분석 결과로 입력되는 외부 입력에 기초하여 상기 제1 코드를 수정한 후, 상기 수정된 제1 코드를 기계어 형태의 제2 코드로 변환한 후 안드로이드 앱 파일로 다시 패키징하도록 상기 코드 처리부 및 상기 압축 처리부를 제어하는 제어부를 포함하고,상기 코드 처리부는상기 제1 파일에 포함된 모든 문자열을 분석하여 유니코드를 포함하는 문자열을 식별하고, 상기 유니코드를 포함하는 문자열을 한 바이트씩 차례로 검사하여 유니코드가 검출되면 그 유니코드를 임의의 아스키코드로 교체하고,상기 코드 처리부는상기 제1 파일에 포함된 모든 문자열들 각각에 대하여 문자열의 헤더 부분에 저장된 문자열 길이와 실제 바이트 수가 다른 경우 해당 문자열을 유니코드가 포함된 문자열로 식별하는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
2 |
2
제1항에 있어서, 상기 제어부는상기 압축 처리부에서 다시 패키징된 안드로이드 앱 파일에 개발자 서명을 하여 디버깅용 앱을 생성한 후 상기 디버깅용 앱을 실행시키는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
3 |
3
제1항에 있어서, 상기 안드로이드 앱 분석 장치는 패키징된 다수의 파일들이 압축된 형태로 구현된 안드로이드 앱 파일들을 저장하는 저장부;상기 제1 코드에 대한 정적 분석이 가능하도록 상기 제1 코드를 표시하는 디스플레이부; 및상기 제1 코드에 대한 정적 분석 결과로 입력되는 외부 입력을 받아들이는 인터페이스부를 더 포함하는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
4 |
4
삭제
|
5 |
5
제1항에 있어서, 상기 코드 처리부는상기 유니코드를 임의의 아스키코드로 교체하는 교체 내역을 별도로 저장하고, 상기 교체 내역을 참조하여 동일한 유니코드 문자열에 대해서는 동일한 아스키코드 문자열로 교체하는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
6 |
6
삭제
|
7 |
7
제1항에 있어서, 상기 코드 처리부는상기 유니코드를 임의의 아스키코드로 교체한 후 해당 문자열의 헤더 부분에 저장된 문자열 길이를 실제 바이트 수로 변경하는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
8 |
8
제1항에 있어서, 상기 코드 처리부는서로 다른 유니코드 각각에 대하여 서로 다른 아스키코드로 교체하는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
9 |
9
제1항에 있어서, 상기 코드 처리부는상기 유니코드가 한글 유니코드 범위에 속하는 경우 해당 바이트를 아스키코드로 변경하지 않는 것을 특징으로 하는 안드로이드 앱 분석 장치
|
10 |
10
안드로이드 앱 분석 방법에 있어서, 패키징된 다수의 파일들이 압축된 형태로 구현된 안드로이드 앱 파일로부터 소스코드가 포함된 제1 파일을 추출하는 단계;상기 제1 파일에 포함된 유니코드를 모두 아스키코드로 교체하여 제2 파일을 생성하고 상기 앱 파일 내 소스코드 파일을 상기 제2 파일로 교체하는 소스코드 파일 교체 단계;상기 제2 파일을 판독 가능한 형태의 제1 코드로 변환하는 디스어셈블링 단계;상기 제1 코드에 대한 정적 분석 결과로 입력되는 외부 입력에 기초하여 상기 제1 코드를 수정하는 단계;상기 수정된 제1 코드를 기계어 형태의 제2 코드로 변환한 후 안드로이드 앱 파일로 리패키징하는 단계; 및개발자 서명하여 디버깅용 앱을 생성한 후 상기 디버깅용 앱을 실행하는 동적 분석 단계를 포함하고,상기 소스코드 파일 교체 단계는상기 제1 파일에 포함된 모든 문자열을 분석하여 유니코드를 포함하는 문자열을 식별하는 단계;상기 문자열 식별 단계에서 유니코드를 포함하는 것으로 식별된 문자열을 한 바이트씩 차례로 검사하여 유니코드를 식별하는 단계; 및상기 유니코드를 임의의 아스키코드로 교체하는 단계를 포함하고,상기 문자열 식별 단계는상기 제1 파일에 포함된 문자열 인덱스를 파싱하여 해당 앱에서 사용되는 모든 문자열을 식별하는 단계;상기 식별된 모든 문자열들 각각에 대하여 문자열의 헤더부분에 저장된 문자열 길이와 실제 바이트 수를 비교하는 단계; 및 상기 비교 결과에 기초하여 상기 모든 문자열들 각각에 대한 유니코드 포함 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
11 |
11
삭제
|
12 |
12
제10항에 있어서, 상기 소스코드 파일 교체 단계는상기 유니코드를 임의의 아스키코드로 교체하는 교체 내역을 별도로 저장하는 단계를 더 포함하고, 상기 아스키코드 교체 단계는상기 교체 내역을 참조하여, 동일한 유니코드 문자열에 대해서는 동일한 아스키코드 문자열로 교체하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
13 |
13
삭제
|
14 |
14
제10항에 있어서, 상기 유니코드 포함 여부 결정 단계는상기 문자열의 헤더 부분에 저장된 문자열 길이와 실제 바이트 수가 서로 다른 경우 해당 문자열에 유니코드가 포함된 것으로 결정하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
15 |
15
제10항에 있어서, 상기 유니코드 식별 단계는상기 검사 결과 해당 바이트의 값이 유니코드 범위에 속하는 경우 해당 바이트를 유니코드로 식별하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
16 |
16
제10항에 있어서, 상기 아스키코드 교체 단계는서로 다른 유니코드 각각에 대하여 서로 다른 아스키코드로 교체하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
17 |
17
제10항에 있어서, 상기 아스키코드 교체 단계는상기 유니코드를 아스키코드로 교체한 후 해당 문자열의 헤더 부분에 저장된 문자열의 길이를 실제 바이트 수로 변경하는 단계를 더 포함하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
18 |
18
제10항에 있어서, 상기 아스키코드 교체 단계는상기 유니코드가 한글 유니코드 범위에 속하는 경우 해당 바이트를 아스키코드로 교체하지 않고 다음 단계로 진행하는 것을 특징으로 하는 안드로이드 앱 분석 방법
|
19 |
19
제10항, 제12항, 제14항 내지 제18항 중 어느 한 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
|