| 링크
SECCON Quals CTF 2015
| 설치


- 아래 버튼을 통해 가위바위보
- 이기면 +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는 (cnt+calc)*107
- cnt 값은 1000
- calc 값만 구하면 됨
- 고로 lib 폴더의 libcalc.so를 IDA로 확인

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