본문 바로가기

Programming/Android

apk decompile 하기

[출처] : http://dwfox.tistory.com/43


[Android] APK 파일 추출 / 디컴파일 / 분석 하기



   APK파일 추출하기


인스톨한 프로젝트의 apk 패키지 이름이 com.tistory.dwfox.dwfoxtest 일경우


C:\>adb shell 

shell@dwfox:/ $ pm list packages -f

  ※   command line에서 바로 adb shell pm list packages -f  한줄의 명령어로 해도 된다.


아래와 같은 형태로 설치된 리스트가 나오게된다.

package:[apk위치]=[패키지명]



  ※   커맨드의 찾기 옵션을 이용하여 원하는 패키지 명을 검색하면 아래와 같이 쉽게 찾아 낼 수 있다.







파일 위치를 복사해서 아래와 같은 명령어를 통해 apk 파일을 현재의 경로에 가져오게 된다.

adb pull /data/app/com.tistory.dwfox.dwfoxtest-1/base.apk .




   APK파일 디컴파일


  1   아래의 파일 을 먼저 준비한다.


dex2jar : apk의 dex 압축형태를 jar 파일로 변환해주는 툴

다운로드 링크 : https://github.com/pxb1988/dex2jar

 dex2jar-2.0.zip



jd-gui : jar형태의 파일을 소스파일로 볼 수 있는 GUI 툴

다운로드 링크 : http://jd.benow.ca/

 jd-gui-windows-1.4.0.zip



  2   dex2jar의 압출을 해제한 경로에 apk 파일을 복사하고 아래와 같은 d2j-dex2jar.bat base.apk 명령어를 실행한다.


C:\dex2jar-2.0>d2j-dex2jar.bat base.apk

dex2jar base.apk -> .\base-dex2jar.jar


base-dex2jar.jar 파일이 생성된다.




  3   이 파일(base-dex2jar.jar)을 jd-gui를 실행시켜 열어보면 apk의 java파일에 대한 소스를 볼 수 있게 된다.




출처: http://dwfox.tistory.com/43 [DWFOX]