mini-prog-mobile/(TZ,TPM,SmartPhone)

Android APK decompile

파이s 2012. 7. 23. 21:01

업무 연속성이 떨어지다 보니,

과거에 한번 해 둔것을 몇달이 지나 다시 꺼내 볼려면 그렇게 힘들수가 없네요.

아주 소소한 것이라도 찾을려면 없고, 찾아 놓으면 다시 잊어 버려서 다시 찾고...

작은 거라도 정리하는 마음?으로 조금씩 정리해 봅니다.

 

Android APK 파일을 decomile 하는 방법으로 당시 간략?하게 썼던 방법입니다.

 

1. JDK 설치

  - 다운로드 : http://www.oracle.com/technetwork/java/javase/downloads/index.html

                  (이클립스 설치 안해도 되며, 참고로 JDK는 v1.6 이상을 설치 해야 합니다~~)

 

2. apktool.zip 압축 해제

 

2.1.   1_unpack.bat 실행(아래 설명 참고) ------> decompile 끝!!!! (해당 폴더에 생성됨)

 

< 설명 >

첨부된 apktool.zip을 해제하면, 3개의 배치파일(bat)이 있음

1_unpack.bat ( apk unpack)

2_pack.bat ( smail code로 부터 다시 pack)

3_sign.bat ( pack 파일을 sing)

 

  <1_unpack.bat>

  @echo off
  java -jar %~dp0\apktool.jar d (풀고자 하는 apk 파일) (풀고자 하는 폴더)

  ---> ex : java -jar %~dp0\apktool.jar d test.apk test_folder <-- bold체 부분처럼 수정

 

  < 2_pack.bat >

  @echo off
  java -jar %~dp0\apktool.jar b (pack 할 폴더)

  ---> ex : java -jar %~dp0\apktool.jar b test_folder <-- bold체 부분처럼 수정

 

  < 3_sign.bat >

  상기 절차와 유사

 

 

3. java 코드 형태로 보기

 

1_unpack.bat 만으로 smail code를 분석 할 수 있으나...보기 어렵지요.

그래서 java 코드 형태로 보면 아무래도 좀 편하겠지요?  (단 이 형태로 recompile 안됨)

 

3.1 dex2jar 다운로드 및 설치

 

  - 다운로드 : http://code.google.com/p/dex2jar/downloads/list

  - 설치 : dex2jar 압축을 해제하고, 작업의 편의성을 위해 PATH를 설정해 두기 바람

 

3.2 분석하고자 하는 APK 파일 압축 해제 및 class 변환 

 

  - 압축해제 : APK파일은 alzip 등으로 풀립니다~~~ 

  - 변환 : 압축을 해제 하면 classes.dex 파일이 보일 것입니다. 거기서 아래와 같이 입력합니다.

 

     c:\\~~~~>  dex2jar classes.dex 

       ---> 이렇게 하면 java 코드 형태로 나오면서, classes_dex2jar 이 생성됩니다.

 

   - 더 편하게 보기 위해서~~~

     jd-gui-0.3.3.windows viewer로 classes_dex2jar 를 로드하면 더 깔끔~ 하게 볼 수 있습니다. 끝!

 

tools.zip


 3.3 class -> java 일괄 변환 방법



    < 수동 >

    - dex2jar에 의해 만들어진 jar 파일을 압축해제


    - c:\ jad -r -sjava -d (폴더) **/*.class 

                       ---> 이렇게 하면 하위 폴더에 있는 class 파일을 모두 java 파일로 떨거줌

jad.zip


     < 자동 >

    -  상기 jd-gui-0.3.3.windows viewer에서 "save all source"하면 zip 으로 풀 소스가 튀어 나옵니다. ^^