메뉴 건너뛰기

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

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

번호 제목 글쓴이 날짜 조회 수
87 우분투 16.04 데스크탑에서 카카오톡 PC버전 설치하기 [21] file 관리자 2016.08.02 14552
86 우분투 16.04 LTS apt-get으로 APM 설치하기 file 관리자 2016.05.10 11429
85 우분투 14.04에 팀 뷰어(TeamViewer) 설치 file 관리자 2015.10.20 5686
84 우분투(Ubuntu)에서 putty로 ssh 원격 접속 실패 해결 방법 [3] file 관리자 2016.04.24 4713
83 리눅스 CPU 온도 체크 lm_sensors file 관리자 2015.05.28 3595
82 time.bora.net으로 rdate가 먹지 않는경우 file 관리자 2016.02.17 2911
81 CentOS 7 싱글모드로 부팅해서 패스워드 변경하기 [3] file 관리자 2015.11.27 2789
80 -bash: /usr/bin/su: 허가 거부 해결방법 관리자 2016.04.18 2742
79 CentOS 멀티 IP 설정 방법 [2] file 관리자 2015.03.06 2514
78 서버의 ssh 접근이 안될때 확인하는 방법 file 관리자 2016.09.27 2329
77 우분투(Ubuntu) 16.04 LTS 네트워크 드라이브를 eth0로 변경하는법 [3] file 관리자 2016.04.22 2028
76 우분투에서 로케일(locale)을 변경하기 관리자 2015.10.20 1898
75 리눅스 용량 정리후 df로 확인할때 실제용량이 줄어들지 않는경우 관리자 2016.05.07 1476
74 클램(ClamAV) 안티바이러스 설치하기 (CentOS 6.6) file 관리자 2016.06.30 1447
73 dmesg를 실시간으로 보기 file 관리자 2015.08.21 1357
72 우분투 시디 굽기 프로그램 브라세로 file 관리자 2015.01.16 1093
71 리눅스 CentOS eth1을 eth0로 교체하는 방법 [2] file 관리자 2015.01.09 1087
70 외부아이피를 막아보자 file 관리자 2015.09.09 1041
69 리눅스 패스워드 변경기록 확인방법 관리자 2015.02.11 877
68 let’s Encrypt SSL 무료 인증서 certbot을 통해 설치 및 설정하는 방법 file 관리자 2017.04.13 859