관리 메뉴

Information Security

KGB Messenger - Easy 본문

CTF/2019 Android CTF - KGB Messenger

KGB Messenger - Easy

HackingPractice 2020. 7. 22. 18:52

APK 파일을 Zip 확장자를 변경 후 압출을 풀면, META-INF(인증서), res 디렉터리, AndroidManfest.xml 파일, classes.dex 파일 그리고 resources.arsc 파일로 구성되어 있다

그림 1-1 압축풀기

AndroidManifest.xml 파일을 열어보면 인코딩이 되어 내용을 확인할 수 없다.

그림 1-2 AndroidManifest.xml

해당 내용을 확인하려면 apktool을 이용해 디코딩을 진행한다.

그림 1-3 apktool

apktool은 jar 파일이므로 JAVA를 이용해야 한다. -d 옵션을 이용해 디코딩을 하고 kgb-messenger.apk로 파일을 만들었다.

그림 1-4 디코딩

디코딩을 하면 디코딩 전과 파일 내용이 다른 것을 알 수 있다.

그림 1-5 디코딩 파일

AnroidMAnifest.xml 파일을 보면 해당 내용을 알아 볼 수 있다. 애플리케이션이 동작하기 위한 정보 및 실행 권한 정보를 포함하고 있다.

그림 1-6 AndroidManifest.xml 파일

classes.dex(DEX: Dalvik EXcutable) 파일은 *.class 파일이 달빅 가상 머신에서 동작할 수 있도록 바이트 코드로 변환된 소스 파일입니다. 해당 파일은 디코딩 후 smali 파일로 변환된다.

그림 1-7 smali 코드

res는 안드로이드 애플리케이션의 리소를 관리하는 디렉터리입니다. 리소스는 애플리케이션이 동작할 때 사용하는 문자열, 이미지, 동영상, 아이콘 등을 의미한다. values* 디렉터리가 생성되었다. strings.xml 파일은 애플리케이션이 동작할 때 사용하는 문자열을 포함하고 있다.

그림 1-8 strings.xml 

USER 부분을 Base64 디코딩을 하면 FLAG{57ERL1NG_4RCHR} 값을 확인할 수 있다.

그림 1-9 정답