* APK파일 디컴파일(Decompile)하는 방법
1. 디컴파일을 위한 툴 설치
1.ApkTool
- 다운로드 : http://code.google.com/p/android-apktool/downloads/list
- 압축풀기 : android-sdk가 설치된 platform-tools디렉토리안에 apktool디렉토리를 만들어 압축을 푼다.
apktool1.4.1.tar.bz2
apktool-install-windows-r04-brut1.tar.bz2
2.Dex2Jar
- 다운로드 : http://code.google.com/p/dex2jar/downloads/list
- 압축풀기 : android-sdk가 설치된 platform-tools디렉토리안에 dex2jar디렉토리를 만들어 압축을 푼다.
dex2jar-0.0.7.10-SNAPSHOT.zip
3.Java Decompiler
- 다운로드 : http://java.decompiler.free.fr/?q=jdgui
- 압축풀기 : 실행하기 편한 곳에 압축을 풀어 놓는다.
2. 환경변수 잡기
- adb, apktool, dex2jar 명령어를 사용하기 위한 환경변수를 잡는다.
%ANDROID_SDK%\platform-tools
%ANDROID_SDK%\platform-tools\apktool
%ANDROID_SDK%\platform-tools\dex2jar
3. apk 파일 추출
- 폰에 설치된 모든 패키리를 리스트로 보인다.
- 리스트 중에 디컴파일 할 APK파일을 정한다.
- APK파일을 추출한다. (adb shell을 종료 후 수행한다.)
4. ApkTool 실행 (java파일 외 xml, image, db등을 추출할 수 있다.)
- apktool 명령어를 사용하여 apk파일에 있는 파일을 디코딩하여 out폴더에 내보낸다.
- xml파일을 열어 내용을 확인한다.
5. Dex2Jar 실행 (Java파일을 추출할 수 있다.)
- apk파일의 확장자를 zip으로 변경한다.
- 추출한 zip파일의 압축을 풀어 classes.dex 파일을 추출한다.
- Dex2Jar를 실행한다.
- Dex2Jar를 실행하면 아래 jar파일이 생긴다.
6. JD-GDI 실행
- JD-GDI실행하여 classes.dex.dex2jar파일을 열어 소스를 분석한다.