1. APK 파일 분석한 배경
최근 Android Hacking 입문 과정에서 mobliehacking.kr 사이트의 문제를 풀고 싶었는데, 사람들은 다들 IDA를 이용해서 풀고 있는데, 나는 APK파일을 올리면 Binary만 뜨는 형상이 일어났다.

원인을 알기 위해서 선생님에게 질문해본 결과 IDA에서 분석하기 위해서는 APK파일에서 DEX 파일을 추출해서 분석해야 한다는 것을 알게 됐다.
1. DEX 파일 추출 방법
방법 1. zip파일을 통한 dex 추출
cp <apkfile>.apk app.zip
unzip app.zip -d apk_out ls apk_outclasses.dex
classes2.dex
AndroidManifest.xml
resources.arsc이런 파일들이 나온다면 성공한 것이다.
Note
- app.apk 파일 확장자를 app.zip 으로 바꾼뒤
- bandizip, 7-zip와 같은 프로그램을 통해서 압축 해제
- classes.dex, classes2.dex 추출
방법 2. jadx로 바로 열기
06. JADX 설치 및 환경 설정 - 해당 글에서 jadx에 대한 환경 설정을 다루고 있습니다.
jadx-gui app.apk
jadx -d output app.apk
방법 3. apktool로 구조 분석
apktool은 Dex를 Java로 바꿔주는 도구라기보다, 리소스/매니페스트/Smali 분석에 강함.
apktool d app.apk -o app_decoded
방법 4. Android SDK의 d8/baksmali 활용
baksmali disassemble classes.dex -o smali_out