안드로이드 애플리케이션 점검 시 디컴파일이나 리패키징 등의 작업을 좀 더 간편하게 하기 위해 도구를 제작하였습니다.
점검 시 유용하게 사용하시길 바라며 아래와 같이 공유합니다.
파일 정보 (분할 압축 해제한 파일)
버전: 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> 생성된 캡처 파일 확인
이 툴은 모바일 앱 점검 시 하게 되는 작업들을 자동화하여 좀 더 간편하게 점검하기 위해 제작되었으며, 오픈소스를 이용하였습니다.
저희는 금감원, 금융위 체크리스트 기반 점검이나 모바일 모의해킹 프로젝트 수행 시 앱 분석 및 변조, 앱이 사용하고 있는 권한 확인 등의 점검에 이 툴을 활용하고 있습니다.
저희처럼 앱 점검 또는 모바일 모의해킹을 수행해야 하는 분이나 이 쪽으로 공부를 하고 계신 분들은 이 툴을 활용해 보시면 좋을 것 같습니다.
추후 지속적으로 기능을 추가하고 수정하여 업데이트하도록 하겠습니다.
감사합니다.