메뉴 건너뛰기

imitator

어느 프로젝트를 위해 자료를 찾던 도중에 안드로이드의 앱의 내용이 궁금하여 디컴파일하는 방법을 찾아봤습니다.

다행스럽게도 리눅스에서 간단하게 사용할수 있는 툴이 있어 크게 문제는 없었는데요.

이 글에서는 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 설치


1.png


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


2.png  


dex2jar-2.0.zip의 압축을 해제하기위해서는 unzip가 필요합니다. unzip로 압축을 해제한 후

dex2jar-2.0의 퍼미션을 755로 맞춰줍니다.


# zip 파일 압축해제

unzip dex2jar-2.0.zip


# 퍼미션 755로 변경

chmod 755 -R dex2jar-2.0


3.png


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 내부의 소스 확인


4.png


디컴파일한 파일은 JD-GUI를 통해 열면 소스를 확인할수 있습니다. apk에 따라 이렇게 소스가 잘나오는

경우가 있고 그렇지 않은 경우도 존재하니 참고해보시면 좋을것같습니다.

번호 제목 글쓴이 날짜 조회 수
101 PCI 사용하지 않도록 설정하는 방법 secret 관리자 2020.02.13 0
100 CentOS 8 APM(Apache + PHP + mariadb) yum 설치 방법 file 관리자 2019.12.24 275
99 메가레이드 MegaCli 명령어로 RAID 설정 방법 file 관리자 2019.11.27 69
98 Ubuntu 쉽게 커널 업데이트를 할수있는 uutk 설치 및 사용 방법 file 관리자 2019.04.12 662
97 let’s Encrypt SSL TLS-SNI-01 인증 변경 방법 file 관리자 2019.02.14 210
96 Ubuntu 18.04 Unable to locate package 에러 해결 방법 [1] file 관리자 2019.01.24 5332
95 CentOS 7 loganalyzer 로그 서버 설치 방법 file 관리자 2018.09.07 968
94 VirtualBox 디스크 이미지 파일을 열 수 없습니다. 해결방법 file 관리자 2018.08.02 521
93 apache2 ProxyPass 사용 중 503 에러 발생시 해결 방법 관리자 2018.05.21 1766
92 오픈스택 가상서버 이미지 설치 관련 정리 secret 관리자 2018.05.02 0
91 도커의 설치에 관해 정리 관리자 2018.04.10 518
90 쉘 스크립트 expect에서 spawn 파이프(pipe) 사용 방법 [1] file 관리자 2018.02.21 2267
89 CentOS 7 MRTG 한글 깨짐 발생시 해결방법 file 관리자 2018.01.04 1061
88 Ubuntu 16.04 apt-get 패키지 설치 오류 발생시 해결방법 file 관리자 2017.10.10 2678
87 Ubuntu 16.04 단축 URL을 생성하는 YOURLS 설치 방법 file 관리자 2017.08.11 861
86 Ubuntu 16.04 jar 디컴파일 툴 JD-GUI 설치 file 관리자 2017.08.01 1224
» linux apk를 jar로 디컴파일하는 dex2jar 설치 및 사용 방법 file 관리자 2017.08.01 1125
84 우분투 16.04 /var/lib/dpkg/lock 잠금 파일을 얻을 수 없습니다 해결법 [1] file 관리자 2017.07.20 3471
83 우분투 16.04 LTS 서버 보안 강화를 위한 knockd 설치 방법 file 관리자 2017.07.06 549
82 CentOS 6 comodo Antivirus for Linux 백신 설치 방법 file 관리자 2017.06.15 1170