dex2jar

    [Android] APK 분석 준비하기

    apk는 안드로이드 어플리케이션의 확장자입니다. Android PacKage의 줄임말이죠! 또한 형식은 ZIP과 동일하게 압축이 되어 있습니다. 안드로이드는 일반적으로 Java로 작성되고(요즘은 코틀린이 대세라ㄱ...), Java 코드는 Dalvik byte code로 컴파일 됩니다. 이 byte code는 일반적인 Java byte code와는 다릅니다! Java 코드를 먼저 .class 파일로 컴파일 한 후, JVM byte code를 .dex 형식으로 변환하여 만들어 집니다. .class 파일을 .dex로 바꾸는 것은 안드로이드 가상머신인 Dalvik이 인식하도록 만들어 주는 것입니다. 따라서 거꾸로 .dex에서 .class를 추출하면 어플리케이션의 소스코드를 확인할 수 있게 되는것이죠(디컴파일!)..