apk를 jar파일로 바꾸는 방법

Developer💻·2024년 9월 10일

Android

목록 보기
2/10

apk 파일을 jar 파일로 변환하기



폴더이미지

변환을 위한 dex2Jar 파일 다운로드 받기

Download / Download Latest Version

jar 파일 내용 확인하기 위한 jd-gui 프로그램 다운로드 받기

Download / Github 소스 코드



1. 변환할 apk 파일을 다운받은 dex2jar-2.0 폴더 안에 넣어주기

변환할 apk명 : test.apk
dex2jar폴더


2. CMD 창을 열어 apk 파일이 있는 dex2jar-2.0 폴더로 이동

cd C:\파일위치\dex2jar-2.0
cd C:\Users\Public\apk_jar_changer\dex2jar-2.0

CMD


3. 명령어를 이용하여 apk 파일을 jar 파일로 변환하기

d2j-dex2jar.bat -f -o (변환한 jar 파일 이름).jar (변환할 APK 파일 이름).apk
d2j-dex2jar.bat -f -o test.jar test.apk

apk 파일을 jar 파일로 변환


Error 발생한다면!!!

Error

Detail Error Information in File
Please report this file to http://code.google.com/p/dex2jar/issues/entry if possible

1. APK 파일 손상 : APK 파일이 손상되었거나 잘못된 방식으로 추출되어 .dex 파일이 정상적으로 읽히지 않는 경우
2. 지원되지 않는 Dalvik 바이트코드 버전 : dex2jar는 특정 버전의 Dalvik 바이트코드 또는 odex 파일을 지원하지 않을 수 있음 특히, 최신 버전의 Android 또는 ProGuard로 강하게 최적화된 코드에서는 문제가 발생
3. ProGuard와 같은 난독화 도구 사용 : APK 파일이 ProGuard 같은 난독화 도구를 사용해 난독화되었다면, 코드가 매우 복잡하거나 압축되어 변환 중에 문제가 발생
4. dex 파일 내의 특정 클래스/메서드 문제 : 특정 클래스나 메서드가 dex2jar가 예상하지 못한 형식으로 되어 있는 경우, 이로 인해 변환 중 문제가 발생
5. dex2jar의 버그 또는 기능 미지원 : dex2jar 자체의 버그나 특정 기능이 아직 지원되지 않아서 문제가 발생

위 에러 상황이 발생하는 이유가 여러가지가 있는데 내 경우는 3번인 듯하다. ProGuard로 난독화하여 발생한 에러이다.
에러와 별개로 jar 파일변환은 잘되는 것으로 보인다. 그래도 에러발생이 없는게 좋음으로 개선하여 사용하는 것을 추천한다.


Error 발생한다면!!! (기타)

아래와 같은 에러가 발생한다면 JADX 사용하는 방법을 통해 해결하는 것을 권장

com.googlecode.d2j.DexException: not support version.

이 에러는 dex2jar가 해당 APK 또는 DEX 파일의 버전을 지원하지 않는 경우로, 주로 Android 11 (API 30) 이상에서 빌드된 앱에서 발생
dex2jar는 오랜 시간 업데이트가 없거나, 최신 DEX 버전을 지원하지 않는 구버전일 가능성이 크기 때문(즉, dex 파일의 버전이 dex2jar가 지원하는 범위를 벗어난 것)

4. 변환된 파일 생성 확인

파일 생성


5. jd-gui.exe 프로그램을 이용하여 jar 파일 불러오기

jd-gui

jd-gui 실행 후 jar 파일 불러오기 (아래 3가지 방법 중 선택)
불러오기 아이콘 선택
경로 : File - Open File
단축키 : Ctrl + O

jd-gui 불러오기1
jd-gui 불러오기2


6. 내용 확인하기

아래처럼 문서와 내용이 원하는 부분의 내용이 난독화되어 나온다면 성공!👏
(apk 난독화할 때 원하지 않는 부분을 예외처리가능)
난독화 방법
난독화 성공

profile
숲을 그리는 개발자

0개의 댓글