반응형
안드로이드에서 자바로 개발하기 때문에 달빅 머신을 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
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 |