목차

Reversing

필요 소프트웨어

apktool
http://code.google.com/p/android-apktool/downloads/list
apktool과 dependency and helper script를 다운받는다. android-sdk의 platform-tools 폴더 안에 apktool 폴더를 만들어 압축을 푼다.

dex2jar
http://code.google.com/p/dex2jar/downloads/list
android-sdk의 platform-tools 폴더 안에 dex2jar 폴더를 만들어 압축을 푼다.

JAVA decompiler
http://java.decompiler.free.fr/?q=jdgui

설치

환경 변수

환경 변수의 path에 platform-tools, apktool, dex2jar 폴더를 추가한다. (android-sdk 폴더를 ANDROID_SDK 변수로 추가한 뒤 이를 이용하여 폴더명을 간단히 작성하면 편하다.)

apk 추출

  1. 커맨드(cmd) 실행
  2. adb shell 실행하여 쉘로 이동
  3. pm list packages -f 실행
  4. 디컴파일할 apk 파일을 정한 후 package: 뒤의 경로명.apk 를 복사해둔다.
  5. exit 입력하여 adb shell 종료
  6. adb pull 경로명.apk로 apk 파일 추출

apktool 실행

  1. apktool d 경로명.apk out 명령으로 파일을 디코딩하여 out 폴더로 보낸다.
  2. xml 파일 확인

dex2jar 실행

  1. apk파일 확장자를 zip으로 변경
  2. 압축 푼 후 classes.dex 추출
  3. dex2jar classes.dex 실행
  4. classes.dex.dex2jar.jar 파일 생성 완료

JD-GDI 실행

JD-GDI 실행 후 위에서 생성한 classes.dex.dex2jar.jar파일을 열어 소스 분석

참고