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 우회, 함수 리턴값 조작에 필수.
분석 흐름
jadx로 Java 코드 확인 → 핵심 로직 탐색strings/grep으로 하드코딩된 키/URL 탐색- 네트워크 트래픽 → Burp Suite 프록시 연동
- SSL Pinning 우회 →
frida-scripts활용 - smali 패치 → 루팅 체크, 라이선스 검증 제거
CTF 팁
META-INF/에 숨겨진 힌트 체크assets/폴더 내 암호화된 파일 주목shared_prefsXML에 토큰 저장하는 앱 多
리버스 엔지니어링의 꽃은 결국 코드 이해. 도구는 수단일 뿐.