본문 바로가기

OS/Android

Android decompile

반응형

안드로이드에서 자바로 개발하기 때문에 달빅 머신을 JVM과 혼동하는 경우가 많은데 정확히 말하자면 달빅 머신은 JVM이 아니다.  그 예로 달빅 머신은 자바 클래스를 직접 실행할 수 없으며 달빅 머신에서 사용하려면 jar 파일을 dex로 변환해야 한다.

즉, DEX 파일은 모바일 환경에 최적화된 달빅 가상 머신에서 실행시킬 수 있는 실행 파일이라고 얘기 할 수 있다.

DEX 파일은 JVM 바이트 코드를 DVM 바이트 코드로 변환한 것이기 때문에 DEX 파일을 Jar로 디컴파일하고,

Jar를 classes 파일로 디컴파일하면 내부 소스코드를 확인할 수 있다.

참고로 APK 파일 압축을 풀어주면 안에 dex 파일이 포함되어 있는 것을 알 수 있다. 

 

 

 

디컴파일 하기 위해선 두개의 툴이 필요하다.

1. dex2jar-2.0

2. jd-gui-windows-1.6.6

jd-gui-windows-1.6.6.zip
1.30MB
dex2jar-2.0.zip
2.25MB

 

dex2jar-2.0 압축을 풀어주고 이 전에 받아 두었던 apk 파일을 dex2jar-2.0 폴더에 넣어준다.

윈도우키 + R  (cmd)

dex2jar-2.0 폴더 위치로 이동 후 d2j-dex2jar.bat APK이름 명령어를 치면

app-release-dex2jar.jar 파일이 생성된다.

jd-gui를 실행시킨 후 app-release-dex2jar.jar 파일을 드래그 앤 드랍 해주면 소스코드를 확인할 수 있다. 

반응형

'OS > Android' 카테고리의 다른 글

Android Intent  (0) 2021.03.26
Android Context  (0) 2021.03.24
Android ABI  (0) 2021.03.03
안드로이드 인앱 결제 테스트  (0) 2021.02.24
안드로이드 realtimedatabase, google login 사용하여 배포  (0) 2021.01.05