SECCON Quals CTF 2015

133210·2021년 8월 30일
0

안드로이드 CTF

목록 보기
3/3
post-thumbnail

| 링크

SECCON Quals CTF 2015

| 설치

  • Nox에 설치

  • 실행 시 다음과 같은 창이 뜸

  • 아래 버튼을 통해 가위바위보
  • 이기면 +1, 지면 0점 초기화, 비기면 점수 변동 X
  • 이것만으로는 어떻게 돌아가는 지 알 수 없어 분석해보는기로 함

| 분석

  • apk 파일 zip 확장자로 바꾼 뒤 압축 해제
  • class.dex 파일 dex2jar 이용하여 jar로 변환
  • jd-gui로 확인

  • mainactivity.class
  • count를 계산하다가, 1000이 되면 SECCON{}으로 Flag 확인

→ cnt를 1000으로 만들면 됨

  • apk 파일을 apktool로 디컴파일
  • mainactivity의 smali 코드 확인
  • 값 변경
  • class 코드를 보면 Lose일 때 값을 0으로 변경하는 것을 볼 수 있음
  • 0을 999로 바꾸면 됨

  • v4의 값을 0x3E7로 변경해줌
  • apktool로 빌드
  • SignApk로 서명

  • 한번 지고 이기면 FLAG 획득 가능

| 다른 방법

  • flag는 (cnt+calc)*107
  • cnt 값은 1000
  • calc 값만 구하면 됨
  • 고로 lib 폴더의 libcalc.so를 IDA로 확인

  • mainactivity_calc() 함수가 7을 리턴하는 것을 알 수 있음
  • 1007 * 107 = 107,749
  • 따라서 FLAG는 SECCON{107749}

0개의 댓글