주어진 two.apk 파일을 dex2jar로 디컴파일해서 jd-gui로 확인하니까 이전 droids1 문제와 같이 FlagstaffHill 클래스가 있었고 그 안에 getFlag함수가 있었다.
package com.hellocmu.picoctf;
import android.content.Context;
public class FlagstaffHill {
public static String getFlag(String paramString, Context paramContext) {
String[] arrayOfString = new String[6];
arrayOfString[0] = "weatherwax";
arrayOfString[1] = "ogg";
arrayOfString[2] = "garlick";
arrayOfString[3] = "nitt";
arrayOfString[4] = "aching";
arrayOfString[5] = "dismass";
int i = 3 - 3;
int j = 3 / 3 + i;
int k = j + j - i;
int m = 3 + k;
return paramString.equals("".concat(arrayOfString[m]).concat(".").concat(arrayOfString[j]).concat(".").concat(arrayOfString[i]).concat(".").concat(arrayOfString[m + i - j]).concat(".").concat(arrayOfString[3]).concat(".").concat(arrayOfString[k])) ? sesame(paramString) : "NOPE";
}
public static native String sesame(String paramString);
}
주어진 문자열 배열을 순서대로 equals로 비교하는 문자열에 붙여주고, 완성된 문자열을 어플에 입력하면 밑에 flag가 뜨는 것 같다.
i = 0, j = 1, k = 2, m = 5
=> dismass.ogg.weatherwax.aching.nitt.garlick
을 어플에 입력하면,
FLAG : picoCTF{what.is.your.favourite.colour}
'CTF > Reversing' 카테고리의 다른 글
[hackCTF] Welcome_REV (0) | 2021.02.07 |
---|---|
[hackCTF] Reversing Me (0) | 2021.01.31 |
[picoCTF] droids1 (0) | 2021.01.20 |
[picoCTF] droids0 (0) | 2021.01.12 |
[picoCTF] OTP Implementation (0) | 2021.01.12 |