안드로이드 어플리케이션은은 DEX (Dalvik Executable) 파일로 컴파일된다.
DEX 파일은 Java 코드로 작성돼 컴파일된 클래스 파일을 DX(Android dx tool) 도구를 사용해 변환한 파일이다.
이 과정에 Java 바이트 코드는 달빅 바이트 코드로 변환되며 여러 클래스 파일에 들어있는 중복된 코드들을 재사용하기 때문에 JAR(Java archive) 파일에 비해 필요한 공간이 절반 정도로 크게 줄어들어 모바일 기기에 적합하다.
<Fig1. File Layout >
의외로 구조가 간단하여 DEX 파일 포맷을 따라가 하드코딩된 URL이나 IP 주소를 추출하는 툴을 개발하였다.
<Fig2. 실행 >
<Fig3. 악성앱의 URL >
스미싱 악성코드 분석시에 유용할것 같다.
DEX 파일 구조의 자세한 내용 : http://source.android.com/devices/tech/dalvik/dex-format.html
샘플을 제공해 주신 김남준님에게 무한한 감사를