Android 앱 디컴파일 방법

이 글에서는 Android 앱을 디컴파일하는 방법을 다룬다.

방법은 크게 2가지이다. java decompiler 계열 프로그램을 이용해 .java 파일을 확인하는 방법, apktool을 이용해 smali 코드를 확인하는 방법이다.

1. jadx 이용

dex2jar, jd-gui를 순서대로 이용해 .java 파일을 확인할 수도 있으나, dex2jar과 jd-gui의 기능을 통합한 편리한 프로그램인 jadx를 쓰는 편을 추천한다.

https://github.com/skylot/jadx/releases 에서 다운로드해, 실행하면 된다.

2. apktool 이용

먼저 apktool을 설치한다. apktool 설치하는법

이후 apktool d (apk명)를 이용해 smali로 만들 수 있고, apktool b (폴더명)을 이용해 다시 안드로이드 앱으로 빌드할 수 있다.

앱에 서명이 필요한 경우 아래 커맨드를 실행하면 된다. uber-apk-signer을 이용했다.

wget https://github.com/patrickfav/uber-apk-signer/releases/download/v1.2.1/uber-apk-signer-1.2.1.jar
java -jar uber-apk-signer-1.2.1.jar -a ./target/dist/target.apk

Reference

https://cha3m.tistory.com/59