tools yang digunakan untuk menyelesaikan soal ini adalah :
JADX
Android studio
Buka file two.apk menggunakan jadx
Setelah itu kita buka file FlagstaffHill
Disini mari kita untuk focus pada function getFlag,
public static String getFlag(String input, Context ctx) {
String[] witches = {"weatherwax", "ogg", "garlick", "nitt", "aching", "dismass"};
int second = 3 - 3;
int third = (3 / 3) + second;
int fourth = (third + third) - second;
int fifth = 3 + fourth;
int sixth = (fifth + second) - third;
String password = "".concat(witches[fifth]).concat(".").concat(witches[third]).concat(".").concat(witches[second]).concat(".").concat(witches[sixth]).concat(".").concat(witches[3]).concat(".").concat(witches[fourth]);
return input.equals(password) ? sesame(input) : "NOPE";
}
pertama mari kita fokus pada array witches, array ini memiliki indeks sebagai berikut,
weatherwax
ogg
garlick
nitt
aching
dismass
int second = 3 - 3;
int third = (3 / 3) + second;
int fourth = (third + third) - second;
int fifth = 3 + fourth;
int sixth = (fifth + second) - third;
kode ini berguna untuk menghitung indeks dari array diatas, setelah dihitung maka susunannya akan menjadi:
second = 0
third = 1
fourth = 2
fifth = 5
sixth = 4
sekarang kita fokus kepada baris kode
String password = "".concat(witches[fifth]) //witches[5] : dismass
.concat(".")
.concat(witches[third]) //witches[1] : ogg
.concat(".")
.concat(witches[second]) //witches[0] : weatherwax
.concat(".")
.concat(witches[sixth]) //witches[4] : aching
.concat(".")
.concat(witches[3]) // witches[3] : nitt, index ke 3 sudah langsung ada jika kalian sadar, ini merupakan clue tambahan dari pembuat soal kepada kita
.concat(".")
.concat(witches[fourth]); //witches[2] : garlick
Silahkan disusun kalimat diatas agar menjadi sebuah password
EmoticonEmoticon