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_out
classes.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