메뉴 건너뛰기

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에 따라 이렇게 소스가 잘나오는

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

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