Академический Документы
Профессиональный Документы
Культура Документы
AGRIHACK
Kelompok 4:
Fadillah Nur Azis Maliki (13213084)
Yosua Sepri Andasto (13213095)
2017
SOAL 1 SO EASY
Jawaban soal So Easy:
1. Extract Folder soeasy.gz yang didapatkan di web Agrihack.
2. Buka Cygwin masuk ke direktori dimana folder soeasy berada
3. Jalankan command strings pada Cygwin dengan perintah: (strings so easy)
Lihat gambar:
4. Lalu, Cygwin akan mengembalikan isi strings yang ada didalam file. Karena
perintah strings berfungsi untuk mengembalikan printable character yang
ada di file:
5. Akan didapatkanlah hasil strings dan kita hanya perlu mencari jawabannya
sesuai format yang telah ditentukan.
Jawab :
Dari soal di atas, kita akan mendekripsi pesan di atas agar mendapatkan flag
yang dicari. Untuk memecahkan soal diatas, pertama harus mengetahui
bahasa apa yang digunakan dalam penulisan pesan tersebut.
Jika kita lihat pada baris 7 kata pertama yaitu uwvcx. Dalam bahasa
Indonesia tidak ada kata baku yang cara penulisannya seperti itu. Kemudian
jika dalam bahasa Inggris, cara penulisan yang seperti itu pasti setelah tanda
baca maka terdapat huruf s. Sehingga dapat disimpulkan pesan di atas
menggunakan bahasa Inggris.
Selanjutnya kita lihat baris pertama kata ketiga terdapat kata eccg. Jika kita
lihat pada kosa kata bahasa Inggris maka kata yang mengandung huruf
hidup ditengah maka hanya terdapat dua pilihan yaitu huruf tersebut e atau
o seperti meet atau pool. Lalu jika kita lihat pada baris ke 6 terdapat kata
uwwa, sama seperti penjelasan sebelumnya, sehingga c atau w = o atau e.
Selanjutnya jika kita lihat baris ke tujuh pada kata kedua terdapat kata y.
Dalam bahasa Inggris hanya terdapat a pen atau i borrow yang mengandung
makna sehingga dapat dikatakan bahwa y = a / i. Lalu kita lihat pada baris
ke 4 terdapat kata t, sehingga y atau t adalah a atau i.
Setelah didapatkan hasil tersebut, kami mencoba coba menebak kata demi
kata. Seperti contohnya pada baris pertama terdapat kata *o maka kami
jadikan to.
Lalu pada baris pertama, kedua, keempat, dan kelima terdapat kata *o*
maka kami tebak menjadi kata you.
Dan hasilnya seperti ini
Setelah mendapatkan hasil tersebut, kita akan menebak kata pada baris
kedua yaitu *oul*. Kata yang dapat dibentuk dari rangkaian huruf tersebut
adalah could atau would. Kemudian kata pada baris ke 5 yaitu o* akan kita
tebak menjadi on atau oh, karena jika of maka tidak sesuai dengan tata
bahasa yaitu of my. Sehingga s = n atau h, m = c atau w dan p = d.
Kemudian dari hasil tersebut, terdapat beberapa kata yang janggal yaitu
pada baris ke 5. Terdapat kata tnat, pada bahasa Inggris tidak terdapat kosa
kata tersebut, yang sesuai dengan kata tersebut yaitu that. Selain itu kata
pada baris ke 3 yaitu mad*ess, pada kosa kata bahasa Inggris terdapat kata
madness sehingga tebakan kata s = n salah, yang benar adalah s = h. Lalu j
= n. Kemudian pada baris ke 5 terdapat *ace maka kata yang sesuai adalah
face. Maka kita tebak d = f.
Dari hasil di atas, sudah semakin jelas kata demi kata, maka kata pada baris
pertama *een kita tebak menjadi been. Lalu kata pada baris kedua inc*edi*le
kita tebak menjadi incredible. Pada baris ketiga terdapat ma*ic kita tebak
menjadi magic. Selain itu terdapat kata hea*en kita tebak menjadi heaven.
Lalu pada baris ke 4 terdapat kata the*e kita tebak menjadi there dan
thou*ht kita tebak menjadi thought. Kemudian pada baris ke 6 terdapat kata
ne*t kita tebak menjadi next. Selanjutnya pada baris ke 7 terdapat kata
*anna kita tebak menjadi wanna dan *lay menjadi play. Dan kalimat pada
baris ke 8 kita tebak menjadi for who can read this text, i will give the clue
for the flag.
Dan setelah kita baca ulang pesan tersebut merupakan bagian dari lirik lagu
blank space dari Taylor Swift.
Sehingga flag untuk soal ini adalah AGRI{ayam_bakar}.
char s[12][100];
int main() {
for (int i = 0; i < 12; i++)
fgets(s[i], 100, stdin);
for (int i = 0; i < 12; i++) {
int len = strlen(s[i]);
for (int j = 0; j < len; j++) {
if (s[i][j] == 'x') s[i][j] = 's';
else if (s[i][j] == 'w') s[i][j] = 'o';
else if (s[i][j] == 'c') s[i][j] = 'e';
else if (s[i][j] == 'y') s[i][j] = 'a';
else if (s[i][j] == 't') s[i][j] = 'i';
else if (s[i][j] == 'g') s[i][j] = 't';
else if (s[i][j] == 'r') s[i][j] = 'y';
else if (s[i][j] == 'b') s[i][j] = 'u';
else if (s[i][j] == 'e') s[i][j] = 'm';
else if (s[i][j] == 'u') s[i][j] = 'l';
else if (s[i][j] == 'a') s[i][j] = 'k';
else if (s[i][j] == 's') s[i][j] = 'h';
else if (s[i][j] == 'm') s[i][j] = 'c';
else if (s[i][j] == 'p') s[i][j] = 'd';
else if (s[i][j] == 'j') s[i][j] = 'n';
else if (s[i][j] == 'd') s[i][j] = 'f';
else if (s[i][j] == 'o') s[i][j] = 'b';
else if (s[i][j] == 'f') s[i][j] = 'r';
else if (s[i][j] == 'i') s[i][j] = 'g';
else if (s[i][j] == 'v') s[i][j] = 'v';
else if (s[i][j] == 'n') s[i][j] = 'x';
else if (s[i][j] == 'k') s[i][j] = 'w';
else if (s[i][j] == 'l') s[i][j] = 'p';
else if (s[i][j] != '\'' and s[i][j] != ' ' and s[i][j] !=
'\n' and s[i][j] != ',' and s[i][j] != '?') s[i][j] = '*';
}
cout << s[i];
}
return 0;
}