Вы находитесь на странице: 1из 9

CAPTURE THE FLAG:

AGRIHACK

Kelompok 4:
Fadillah Nur Azis Maliki (13213084)
Yosua Sepri Andasto (13213095)

PROGRAM STUDI TEKNIK ELEKTRO


SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA
INSTITUT TEKNOLOGI BANDUNG

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.

6. Jika dibuka langsung dengan notepad :


SOAL 2: SUCIP
Saat pulang ke rumah, Bu Agri menemukan kertas di meja Pak Agri.
Isinya :

jtmc gw eccg rwb, kscfc rwb occj?


t mwbup xswk rwb tjmfcptouc gstjix
eyitm, eypjcxx, scyvcj, xtj
xyk rwb gscfc yjp t gswbisg
ws er iwp, uwwa yg gsyg dymc
rwb uwwa utac er jcng etxgyac
uwvc'x y iyec, kyjjy luyr?
dwf ksw myj fcyp gstx gcng, t ktuu itvc gsc mubc dwf gsc duyi.
duyi gcfptft dfwe gkw kwfp.
dtfxg kwfp tx yrye,
xcmwjp kwfp tx oyayf,
gsc duyi tx acpby aygy ptltxysayj pcjiyj bjpcfxmwfc

Flag berformat AGRI{contohflag}


Contoh flag berhuruf non-kapital

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.

Lalu setelah dicoba maka didapatkan hasil seperti berikut :

*a*e *o *ee* *o*, **e*e *o* *ee*?


a *o*** s*o* *o* a***e*a**e **a**s
*i*a*, *i**ess, *ei*e*, sa*
si* *o* **e*e i** a **o****
o* ** *o*, *oo* i* **i* *i*e
*o* *oo* *a*e ** *e** *as*i*e
*o*e's i *i*e, *i**i **i*?
*o* **o *i* *ei* **as *e**, a *a** *a*e **e ***e *o* **e **i**
**i* *e**a*a **o* **o *o***
*a*s* *o** as i*i*,
se*o** *o** as *i*i*,
**e **i* as *e**i *i*i *a*asi**i* *e**i* ***e*s*o*e

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

*a*e to *eet you, **e*e you *ee*?


a *ou** s*o* you a***e*a**e t*a**s
*i*a*, *i**ess, *ei*e*, sa*
si* you t*e*e i** a t*ou**t
o* *y *o*, *oo* it t*it *i*e
you *oo* *a*e *y *e*t *asti*e
*o*e's i *i*e, *i**i **iy?
*o* **o *i* *ei* t*as te*t, a *a** *a*e t*e **ue *o* t*e **i**
**i* te**a*a **o* t*o *o***
*a*st *o** as iyi*,
se*o** *o** as *i*i*,
t*e **i* as *e*ui *iti *a*asi**i* *e**i* u**e*s*o*e

Kemudian setelah mendapatkan hasil seperti di atas, maka kami mencoba


menebak kata pada baris pertama yaitu *eet menjadi meet. Dengan begitu
asumsi untuk menebak huruf c = e dan w = o sudah benar. Namun huruf t =
a dan y = i belum divalidasi jadi masih bisa terjadi perubahan. Lalu kata
yang biasanya dipakai setelah you *oo* adalah you look. Maka kita coba u =
l dan a = k.

Sehingga didapatkan hasil seperti berikut :

*a*e to meet you, **e*e you *ee*?


a *oul* s*o* you a***e*a*le t*a**s
mi*a*, mi**ess, *ei*e*, sa*
si* you t*e*e i** a t*ou**t
o* my *o*, look it t*it *i*e
you look lake my *e*t mastike
lo*e's i *ime, *i**i *liy?
*o* **o *i* *ei* t*as te*t, a *all *a*e t*e *lue *o* t*e *li**
*li* te**a*a **om t*o *o***
*a*st *o** as iyim,
se*o** *o** as *iki*,
t*e *li* as ke*ui kiti *a*asi*ki* *e**i* u**e*s*o*e
Dari hasil tersebut kita mendapatkan verifikasi untuk huruf y yang digantikan
menjadi i dan t menjadi a. Jika kita lihat pada baris ke 6 terdapat kata lake
dan mastike. Seharusnya kata tersebut adalah like dan mistake agar
terdapat kesinambungan dan menjadi sebuah kalimat yang tepat. Sehingga
huruf y yang semula ditebak menjadi huruf i diganti menjadi huruf a dan
huruf t menjadi i.

Didapatkan hasil seperti beriku :

*i*e to meet you, **e*e you *ee*?


i *oul* s*o* you i***e*i*le t*i**s
ma*i*, ma**ess, *ea*e*, si*
sa* you t*e*e a** i t*ou**t
o* my *o*, look at t*at *a*e
you look like my *e*t mistake
lo*e's a *ame, *a**a *lay?
*o* **o *a* *ea* t*is te*t, i *ill *i*e t*e *lue *o* t*e *la**
*la* te**i*i **om t*o *o***
*i*st *o** is ayam,
se*o** *o** is *aka*,
t*e *la* is ke*ua kata *i*isa*ka* *e**a* u**e*s*o*e

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.

Sehingga didapatkan hasil seperti berikut :

*ice to meet you, *ne*e you *ee*?


i could sno* you i*c*edi*le tni**s
ma*ic, mad*ess, nea*e*, si*
sa* you tne*e a*d i tnou*nt
on my *od, look at tnat *ace
you look like my *e*t mistake
lo*e's a *ame, *a**a *lay?
*o* *no ca* *ead tnis te*t, i *ill *i*e tne clue *o* tne *la**
*la* te*di*i **om t*o *o*d*
*i*st *o*d is ayam,
seco*d *o*d is *aka*,
tne *la* is kedua kata di*isanka* de**a* u*de*sco*e

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.

Sehingga didapatkan hasil seperti berikut :

nice to meet you, *he*e you *een?


i could sho* you inc*edi*le thin*s
ma*ic, madness, hea*en, sin
sa* you the*e and i thou*ht
oh my *od, look at that face
you look like my ne*t mistake
lo*e's a *ame, *anna *lay?
fo* *ho can *ead this te*t, i *ill *i*e the clue fo* the fla**
fla* te*di*i f*om t*o *o*d*
fi*st *o*d is ayam,
second *o*d is *aka*,
the fla* is kedua kata di*isahkan den*an unde*sco*e

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 didapatkan hasil seperti berikut :

nice to meet you, where you been?


i could show you incredible things
magic, madness, heaven, sin
saw you there and i thought
oh my god, look at that face
you look like my next mistake
love's a game, wanna play?
for who can read this text, i will give the clue for the flag*
flag terdiri from two word*
first word is ayam,
second word is bakar,
the flag is kedua kata dipisahkan dengan underscore

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}.

Berikut kode secara lengkap yang digunakan :


#include <bits/stdc++.h>
using namespace std;

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;
}

Вам также может понравиться