Gooday Note Scrap Source Android login
 
작성일 : 12-12-12 14:41
안드로이드 apk 디컴파일(Decompile)하기
 글쓴이 : 기리
조회 : 5,580   추천 : 0   비추천 : 0  
   apktool.zip (6.2M) [0] DATE : 2012-12-12 14:42:58
   dex2jar.zip (1.6M) [0] DATE : 2012-12-12 14:42:58
   jd-gui-0.3.3.windows.zip (691.7K) [0] DATE : 2012-12-12 14:43:54
   jd-gui-0.3.5.windows.zip (771.0K) [0] DATE : 2012-12-12 14:43:54
   http://blog.naver.com/PostView.nhn?blogId=man8408&logNo=110111707630 [1633]

* 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파일을 열어 소스를 분석한다.