linux apk를 jar로 디컴파일하는 dex2jar 설치 및 사용 방법
2017.08.01 10:09
어느 프로젝트를 위해 자료를 찾던 도중에 안드로이드의 앱의 내용이 궁금하여 디컴파일하는 방법을 찾아봤습니다.
다행스럽게도 리눅스에서 간단하게 사용할수 있는 툴이 있어 크게 문제는 없었는데요.
이 글에서는 apk를 디컴파일하는 방법에 관해 정리하고자 합니다.
실험 PC 2대 (리얼 1대 가상 1대)
OS 1 : Ubuntu 16.04 데스크탑 64bit
OS 2 : CentOS 6.9 64bit
미리 설치해야할 부분
unzip : zip파일의 압축해제를 위해 설치합니다.
java : apk를 jar파일로 변환하기위해 설치합니다.
#설치 명령어
yum install unzip java
dex2jar 설치
apk 파일을 jar 파일로 디컴파일해주는 dex2jar를 wget으로 다운로드 받습니다.
예제로 준비한 apk 파일은 1.0.apk 입니다.
# /src로 이동
cd /usr/local/src
# dex2jar-2.0.zip 다운로드
wget https://downloads.sourceforge.net/project/dex2jar/dex2jar-2.0.zip
dex2jar-2.0.zip의 압축을 해제하기위해서는 unzip가 필요합니다. unzip로 압축을 해제한 후
dex2jar-2.0의 퍼미션을 755로 맞춰줍니다.
# zip 파일 압축해제
unzip dex2jar-2.0.zip
# 퍼미션 755로 변경
chmod 755 -R dex2jar-2.0
dex2jar-2.0 디렉토리로 이동하여 d2j-dex2jar.sh 스크립트를 통해 apk 파일을 jar 파일로 디컴파일합니다.
디컴파일한 파일은 apk의 이름-dex2jar.jar이라는 이름으로 설정됩니다.
# 디렉토리 이동
cd dex2jar-2.0
# apk 파일 디컴파일
sh 디컴파일 스크립트 디컴파일할 apk 파일
sh d2j-dex2jar.sh -f /usr/local/src/1.0.apk
JD-GUI로 디컴파일 한 jar 내부의 소스 확인
디컴파일한 파일은 JD-GUI를 통해 열면 소스를 확인할수 있습니다. apk에 따라 이렇게 소스가 잘나오는
경우가 있고 그렇지 않은 경우도 존재하니 참고해보시면 좋을것같습니다.