Wargame을 풀다가 reversing 문제에서 apk파일이 주어지고 Flag를 구해야 되는 문제를 푼 적이 있다. apk파일을 분석한 적이 처음이라서 어떻게 디컴파일하고 소스코드를 분석해야 되는지 막막했다.
apk파일을 압축해제하면 다양한 파일이 나오게 되는데 그중에 classes.dex 파일을 디컴파일 해야 한다. 이때 사용하면 좋은 툴을 소개하겠다.
jadx
https://github.com/skylot/jadx
GitHub - skylot/jadx: Dex to Java decompiler
Dex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.
github.com
우선 해당 툴의 github link는 위와 같다. 압축파일을 다운로드하고 window면 jadx-gui.bat 파일을 실행하고 mac, Linux는 jadx-gui파일을 실행하면 된다.
해당 툴의 사용법은 정말 간단하다. 우선 apk파일을 압축해제하고 나온 파일인 classes.dex 파일을 해당 프로그램에 드로그앤 드롭하면 디컴파일하고 보기 좋게 출력을 해준다.