apk를 분석해보면 총 4개의 MainActivity가 존재한다.


Activity 1. id를 입력받음. 10 <= len(id) <= 26 입력시 다음으로

Activity 2. pw를 입력 받음. 이전에 입력했던 id를 특정 공식으로 계산한 값과 pw 값을 비교하여 일치할 경우 다음으로

Activity 3. 값을 입력 받음. random을 통해 나온 값과 입력값이 일치할 경우 다음으로

Activity 4. lib를 참조하여 플래그 값 출력


1, 2는 어찌저찌 우회가 가능하나, 3의 경우 Math가 아닌 util을 통해 random함수를 사용하고 있기 때문에 seed값이 고정되어 있지 않아 맞추기란 거의 불가능하다.


따라서 방법을 고민하다 그냥 어플 자체를 수정하기로 했다.



smali 코드에서 MainActivity 2, 3을 거치지 않고, 바로 Main4Activity로 넘어가게 수정한 후 리패키징한다. 

리패키징한 apk파일을 실행시키면 플래그 값이 출력 된다.



'CTF > Codegate 2018' 카테고리의 다른 글

[Codegate Quals 2018] Super Marimo  (0) 2018.02.17
[Codegate Quals 2018] RedVelvet  (0) 2018.02.13
[Codegate Quals 2018] BaskinRobins31  (0) 2018.02.12

+ Recent posts