안드로이드 애플리케이션의 내부 구조를 분석하거나 수정하려면 디컴파일 과정이 필요합니다.
이번 포스팅에서는 윈도우 환경에서 안드로이드 애플리케이션(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을 다운로드하여 윈도우 환경에서 실행할 수 있도록 설정합니다.
- APKTool 공식 사이트에서 최신 버전을 다운로드합니다.
- 다운로드한 apktool.jar 파일을 C:\apktool\ 폴더에 저장합니다.
- apktool.bat 파일을 생성하여 실행할 수 있도록 설정합니다.
- 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를 서명할 수 있습니다.
'IT속으로' 카테고리의 다른 글
Node.js 기초 문법 완전 정복! (0) | 2025.04.04 |
---|---|
Node.js 설치 방법 (윈도우 / macOS / 리눅스) (0) | 2025.04.04 |
노드VPN 구독취소 및 환불 방법 (0) | 2025.03.20 |
삼성 휴대폰(갤럭시) 초기화 방법 (0) | 2024.12.23 |
삼성 핸드폰(갤럭시) 백업 방법 (0) | 2024.12.23 |
댓글