안드로이드 애플리케이션 점검 시 디컴파일이나 리패키징 등의 작업을 좀 더 간편하게 하기 위해 도구를 제작하였습니다.

점검 시 유용하게 사용하시길 바라며 아래와 같이 공유합니다.

 

파일 정보 (분할 압축 해제한 파일)

버전: 1.2

파일크기: 37.6MB

MD5: 0695ef2faef52c47b9e0cdcefeb99d17

 

Android_Auto_Analysis_Tool_TEAMCR@K_v1.2.zip.001

Android_Auto_Analysis_Tool_TEAMCR@K_v1.2.zip.002

Android_Auto_Analysis_Tool_TEAMCR@K_v1.2.zip.003

Android_Auto_Analysis_Tool_TEAMCR@K_v1.2.zip.004

 

 

기능

1. Android App Decompile

   - apk 디컴파일, log 출력 및 초기화

2. Android App repackage

   - 앱 리패키징, 임의 서명, adb push로 단말기 내 apk 파일 생성, log 출력 및 초기화

3. AndroidMenifest.xml 파일 분석 자동화

   - 단말기 내 설치된 apk/package 목록 확인, apk 파일 추출, 디컴파일, menifest 파일 파싱, app이 사용하는 권한 확인

4. 화면 캡처

   - 단말기 화면 캡처 및 저장, log 출력 및 초기화

 

사용법 소개

 

툴의 main UI 입니다.

 

<그림 1> main UI 확인

 

 

툴 최초 실행 시 AppRepack 폴더 내에 기능에 필요한 도구들을 생성합니다. (C:\AppRepack)

  

<그림 2> 기능에 필요한 도구 생성

 

 

apktool 실행 시 필요한 '1.apk' 파일의 버전을 맞추기 위해 '1.apk' 파일을 생성합니다. (C:\Users\Account\apktool\framework\1.apk)

※ 기존에 사용하던 apktool을 사용하고자 하시는 분은 해당 폴더 내에 생성된 '1.apk' 파일을 삭제 후에 사용하시면 됩니다. 

 

<그림 3> '1.apk' 파일 생성 

 

 

1. 디컴파일

 

 

'decompile' 탭에서 'decode' 옵션 체크 후 'File Open' 버튼을 눌러 디컴파일 할 애플리케이션의 apk 파일을 선택합니다.

 

<그림 4> apk 파일 선택 

 

 

apk 파일 선택 후 'start' 버튼 클릭 시 디컴파일이 진행됩니다.

 

<그림 5> 디컴파일 진행

 

 

디컴파일 시 log 창에 결과가 나타나며, 성공 시 Success 메시지가 출력됩니다. (실패 시 실패한 log도 출력)

 

<그림 6> 디컴파일 시 log 확인 

 

 

해당 툴이 위치한 폴더와 동일한 폴더에 디컴파일된 apk 파일의 파일명으로 폴더가 생성됩니다.

 

<그림 7> 디컴파일된 apk 파일의 파일명으로 폴더 생성

 

 

해당 폴더 내에서 디컴파일된 파일들을 확인할 수 있습니다.

 

<그림 8> 디컴파일된 파일 확인

 

 

2. 리패키징

 

 

'decompile' 탭에서 'build' 옵션 체크 후 'Folder Open' 버튼을 눌러 리패키징 할 애플리케이션 폴더를 선택합니다.

 

<그림 9> 리패키징할 폴더 선택

 

 

폴더 선택 후 start 버튼을 클릭합니다. (안드로이드 단말기가 연결되어 있지 않을 경우 adb push는 수행되지 않음)

 

<그림 10> 폴더 선택 후 리패키징 수행

 

 

리패키징 성공 시 log 창에 Success 메시지가 출력됩니다. (실패 시 실패 log도 출력)

 

<그림 11> 리패키징 시도 시 log 확인

 

 

연결된 안드로이드 단말기 내에 apk 파일이 생성된 것을 확인할 수 있습니다.

 

  

<그림 12> 안드로이드 단말기 내 apk 파일 생성 확인

 

 

3. AndroidMenifest.xml 분석 자동화

※ AndroidMenifest.xml - 응용 프로그램의 구성과 관련된 모든 정보를 담고 있는 파일

 

 

'menifest' 탭에서 UI를 확인합니다.

 

<그림 13> 'AndroidMenifest.xml' 분석 UI 확인

 

 

'Get App List' 버튼 클릭 시 단말기 내에 설치된 apk와 package 목록이 출력됩니다. (단말기 연결 필수)

 

<그림 14> 단말기 내 설치된 apk와 package 목록 확인

 

 

출력된 리스트 중 원하는 앱 선택 후 'Get App' 버튼을 클릭하여 로컬에 apk 파일을 받을 수 있습니다.

 

<그림 15> apk 파일 추출 시도

 

 

해당 툴이 위치하고 있는 폴더 내에 apk 파일이 생성된 것을 확인할 수 있습니다.

 

<그림 16> 추출한 apk 파일 확인

 

 

'Open App' 버튼을 클릭 후 apk 파일을 선택합니다.

 

<그림 17> apk 파일 선택

 

 

apk 파일이 디컴파일 됩니다.

 

<그림 18> apk 파일 디컴파일

 

 

'activity' 버튼 클릭 시 manifest 파일을 파싱하여 리스트로 출력합니다.

 

<그림 19> manifest 파일 파싱 및 리스트 출력

 

 

'permission' 버튼 클릭 시 해당 app이 사용하는 권한을 출력하며 영어와 한글로 된 설명을 출력합니다.

 

<그림 20> app 사용 권한 및 설명 출력

 

 

4. 화면 캡처

 

 

'capture' 탭에서 해당 기능의 UI를 확인할 수 있습니다.

 

<그림 21> 화면 캡처 기능 UI 확인

 

 

'Capture' 버튼 클릭 시 현재 단말기의 화면이 출력됩니다.

 

<그림 22> 현재 단말기 화면 출력

 

 

'Save' 버튼을 눌러 캡쳐된 사진을 저장할 수 있습니다.

 

<그림 23> 캡처 파일 저장

 

 

생성된 캡처 파일을 확인할 수 있습니다.

 

<그림 24> 생성된 캡처 파일 확인

 

 

이 툴은 모바일 앱 점검 시 하게 되는 작업들을 자동화하여 좀 더 간편하게 점검하기 위해 제작되었으며, 오픈소스를 이용하였습니다.

 

저희는 금감원, 금융위 체크리스트 기반 점검이나 모바일 모의해킹 프로젝트 수행 시 앱 분석 및 변조, 앱이 사용하고 있는 권한 확인 등의 점검에 이 툴을 활용하고 있습니다. 

저희처럼 앱 점검 또는 모바일 모의해킹을 수행해야 하는 분이나 이 쪽으로 공부를 하고 계신 분들은 이 툴을 활용해 보시면 좋을 것 같습니다.

추후 지속적으로 기능을 추가하고 수정하여 업데이트하도록 하겠습니다.

감사합니다.