APK 파일을 소유하고 있으면 그 파일을 디컴파일 하여 그 App의 대략적인 구조와 리소스 등을 확인 할 수 있다.
APK 파일이 없다 하더라도 App이 설치된 휴대폰만 있으면 추출이 가능하다.
(이전 글 참조 APK 파일 추출하는 방법)
디컴파일을 하기 위해서는 아래 프로그램들이 필요하다.
1. ApkTool - 다운로드 : http://ibotpeaches.github.io/Apktool
2. Dex2Jar - 다운로드 : https://github.com/pxb1988/dex2jar
3. JD-GUI - 다운로드 : http://jd.benow.ca/
위의 다운로드 받은 프로그램들을 사용하기 편한(?) 곳에 폴더를 하나 만들어서 이동 후 압축을 풀어준다.
글쓴이는 디컴파일 폴더를 하나 만들어서 다 넣었다.
(APK 폴더는 APK 모아두는 폴더는 따로 하나 만든 것이고..jad는 이번 글과는 상관 없는 프로그램 이다.)
1. ApkTool을 사용하여 리소드, XML 파일 추출하기.
준비된 APK 파일을 apktool 폴더 하위로 이동 시킨 후 cmd를 실행한다.
실행 후 위 그림과 같이 입력을 딱 해주면..같은 경로에 apk 파일명과 같은 폴더가 생성 된다.
위의 생성된 폴더에서는 JAVA 파일을 제외한 리소스, XML 파일 등이 확인이 가능하다.
2. Dex2Jar과 JD-GUI을 사용하여 JAVA 파일 보기
준비된 APK 파일의 확장자를 ZIP으로 변경한다.
압축을 풀어보면 classes.dex 란 파일이 존재하는데, 이 파일을 Dex2Jar 폴더 하위로 이동 시킨 후 cmd를 실행한다.
실행 후 위 그림과 같이 입력하면 같은 경로에 classes_dex2jar.jar 파일이 생성된다.
이 생성된 파일을 JD-GUI 폴더 하위로 이동 시킨다.
JD-GUI 폴더로 들어가서 JD-GUI.exe를 실행한다. (커피 아이콘)
실행 후 이전에 준비한 jar파일을 이 프로그램에서 열면 끝!
난독화 된 코드는 보기가 힘들고...(당연히..) 난독화 되지 않은 코드들은 대략적으로 확인이 가능하다.
'Android' 카테고리의 다른 글
Zxing 라이브러리를 사용한 바코드 스캔 (0) | 2016.01.12 |
---|---|
Android Studio, GCM 3.0을 사용하여 Push 구현 (0) | 2015.12.04 |
APK파일 추출하는 방법 (0) | 2015.11.30 |
Failure [INSTALL_FAILED_OLDER_SDK] (0) | 2015.11.25 |
java.lang.VerifyError (0) | 2015.11.25 |