IT속으로

안드로이드 앱(apk) 디컴파일 하는 방법

더월드 2025. 3. 21.

안드로이드 애플리케이션의 내부 구조를 분석하거나 수정하려면 디컴파일 과정이 필요합니다.

이번 포스팅에서는 윈도우 환경에서 안드로이드 애플리케이션(APK)을 디컴파일하는 방법을 단계별로 설명하겠습니다.

 

1. APK 디컴파일러 관련 파일들

디컴파일을 수행하려면 다음 도구들이 필요합니다.

  • Java Development Kit(JDK): 일부 도구는 Java 환경이 필요합니다.
  • APKTool: APK를 디컴파일하고 다시 빌드할 수 있는 도구입니다.
  • JD-GUI: Java 바이트코드를 읽고 원본 Java 코드로 변환하는 GUI 도구입니다.
  • JADX-GUI: JD-GUI 업그레이드 버전으로, jar 파일 생성하지 않고 apk 파일을 바로 java로 볼 수 있습니다.
  • Dex2Jar: DEX 파일을 JAR 파일로 변환하는 도구입니다.
  • Baksmali & Smali: Dalvik 바이트코드를 Smali 코드로 변환하거나 다시 빌드할 수 있는 도구입니다.
  • 웹사이트 Decompilers online (웹을 통한 디컴파일)

 

2. ( 방법1 ) 웹에서 APK 디컴파일

① Decompilers online 사이트에 접속

② APK Decompiler에 준비한 apk 를 업로드 하면 알아서 변환해줍니다.

 

3. ( 방법2 ) JADX-GUI로 APK 디컴파일

① apk 디컴파일 방법은 우선적으로 JDK를 설치하고,

  먼저 OpenJDK를 다운로드하고 설치합니다.

  설치 후, 명령 프롬프트(CMD)에서 다음 명령어를 실행하여 설치를 확인합니다.

java -version

 

 디컴파일은 JADX-GUI 을 설치하면 가장 편리하게 앱(APK) 파일을 디컴파일 할 수 있습니다.

  • JADX-GUI에서 최신 버전을 다운로드합니다.
  • 압축 해제후 "jadx-gui-1.5.1.exe" 실행합니다.
  • apk 파일을 "파일>파일 열기" 열어서 소스코드 분석합니다.

   ( 미러사이트 : https://sourceforge.net/projects/jadx.mirror/ )

 

4. ( 방법3 ) JD-GUI로 APK 디컴파일

① apk 디컴파일 방법은 우선적으로 JDK를 설치하고,

 

② Dex2Jar 설치

  • Dex2Jar를 다운로드하고 압축을 풀어 C:\dex2jar\ 폴더에 저장합니다.
  • d2j-dex2jar.bat 파일 이용하여 'DEX' 파일을 'JAR'로 변환하기
    d2j-dex2jar.bat myapp.apk -o myapp.jar

③ JD-GUI 설치 및 jar 보기

  • JD-GUI에서 최신 버전을 다운로드합니다.
  • 변환된 jar 파일을 JD-GUI를 사용하여 열면 Java 코드 형태로 확인할 수 있습니다.

5. APKTool 설치

APKTool을 다운로드하여 윈도우 환경에서 실행할 수 있도록 설정합니다.

  1. APKTool 공식 사이트에서 최신 버전을 다운로드합니다.
  2. 다운로드한 apktool.jar 파일을 C:\apktool\ 폴더에 저장합니다.
  3. apktool.bat 파일을 생성하여 실행할 수 있도록 설정합니다.
  4. APK 파일을 Smali 코드로 변환하려면 CMD에서 다음 명령어를 실행합니다.
apktool d myapp.apk -o myapp_decompiled

   이제 myapp_decompiled 폴더에 AndroidManifest.xml, Smali 코드 등이 포함된 파일이 생성됩니다.

 

6. 디컴파일된 파일 수정 후 다시 빌드하기

수정된 코드를 다시 APK로 빌드하려면 다음 명령어를 사용합니다.

apktool b myapp_decompiled -o new_myapp.apk

그 후, 서명(signing)을 진행해야 하며 jarsigner 또는 uber-apk-signer를 사용하여 APK를 서명할 수 있습니다.

댓글

💲 추천 글