[Android] APK 파일 구조 및 분석 개요
APK 란?
안드로이드 앱의 확장자로 Android Package Kit 의 줄임말이다. 인증을 위한 서명이 포함되어 있으며 ZIP 파일 형식으로 압축되어 있다. Windows OS에서 exe 파일과 동일하다.
APK 구조
APK 구조는 크게 6가지로 나눌 수 있다.
위의 그림과 같이 각 폴더 및 파일마다 주요 정보들이 담겨져 있다.
악성 APK 분석 시 EP
실제 악성 APK 분석을 하며 가장 어려웠던 것이 어디부터 분석을 시작해야 하는지 모르는 것이었다.
아무것도 모를 때 기본으로 돌아가기 위해 APK 구조부터 다시 공부하였고 AndroidManifest.xml 를 가장 우선적으로 확인해야 한다는 것을 알 수 있었다.
왜 AndroidManifest.xml 부터 분석해야할까??
실제 악성 APK 파일의 AndroidManifest.xml 을 보면 다음과 같다.
AndroidManifest.xml 파일은 모든 모바일 앱에 필수적으로 존재해야 하는 파일이며 에는 해당 APK 파일이 사용하는 Permission, Service 등 핵심적인 정보들이 존재하기 때문이다.
이후에는 EP 가 어떻게 선언되어 있는지 확인하여야 한다. EP 가 선언되는 방식은 크게 2가지로 볼 수 있다.
첫 번째 방식은 Application 클래스를 상속한 뒤, Manifest의 android:name 속성에 등록하여 사용하는 방식이다.
두 번째 방식은 Application 클래스를 상속받지 않고 Manifest의 android:name 속성에 등록하여 사용하는 방식이다.
두 방식 중 첫 번째 방식이 가장 먼저 인스턴스화되기 때문에 클래스 상속 유무를 확인한 후 EP를 설정하고 분석을 시작하여야 한다.
오류, 잘못된 점 또는 궁금한 점이 있으시다면 댓글 남겨주세요❗