Skip to main content

Android APK 리버스 엔지니어링

APK 하나만 있으면 앱의 비밀을 다 꺼낼 수 있다. CTF mobile 카테고리 단골 주제.

핵심 도구

jadx — APK를 Java 코드로 디컴파일. GUI 버전도 있어 분석이 편하다.

jadx -d output/ target.apk

apktool — smali 코드 추출 + 리소스 디컴파일. 패치 후 재패키징 가능.

apktool d target.apk
apktool b output/ -o patched.apk

frida — 런타임 후킹. SSL pinning 우회, 함수 리턴값 조작에 필수.

분석 흐름

  1. jadx로 Java 코드 확인 → 핵심 로직 탐색
  2. strings / grep으로 하드코딩된 키/URL 탐색
  3. 네트워크 트래픽 → Burp Suite 프록시 연동
  4. SSL Pinning 우회 → frida-scripts 활용
  5. smali 패치 → 루팅 체크, 라이선스 검증 제거

CTF 팁

  • META-INF/ 에 숨겨진 힌트 체크
  • assets/ 폴더 내 암호화된 파일 주목
  • shared_prefs XML에 토큰 저장하는 앱 多

리버스 엔지니어링의 꽃은 결국 코드 이해. 도구는 수단일 뿐.