Nagradna igra na sys.tracku ovogodišnjeg CUC-a
Ove godine na CARNetovoj korisničkoj konferenciji u Rijeci polaznici sys.tracka imali su priliku susresti se s neobičnim izazovom. S privjeska za ključeve, prateći QR poveznicu, mogli su doći do stranice http://sys.carnet.hr. Na toj stranici pronašli bi dva nova QR koda koji prekrivaju cijeli zaslon. Skeniranjem svakog od ta dva koda preusmjeravani su na isti poslužitelj, na stranicu koja ponovo sadrži samo dva QR koda. I tako u krug sa svakim novim skeniranjem.
Kao što to obično biva, nešto tako mistično predstavljalo je zagonetku i nekolicina sudionika uspjela je dohvatiti rješenje i nagradu!
U nastavku članka opisati ću kako je nagradna igra osmišljena i koji su bili mogući putovi ka rješenju.
Na privremenom poslužitelju sys.carnet.hr u mapi koju smo posluživali na web kopirali smo 2049 html datoteke te 4094 png datoteka. Sve osim jedne html datoteke sadržavale su dvije slike koje su poveznica na druge dvije html datoteke kroz QR kod.
Jedina html datoteka koja ne sadrži dvije slike sadrži poruku da je nagradna igra riješena. I zaista, korisnik koji je prvi došao do te datoteke i poslao njenu poveznicu elektroničkom poštom kao što piše u njenom sadržaju, dobio je vrijednu nagradu!
Opišimo mapu ovog čudnovatog web-a. Datoteka index.html je početan čvor i iz njega imamo poveznicu na dvije stranice kroz lijevu i desnu sliku, nazovimo ih P(0) i P(1). Svaka novo-otkrivena stranica P(n) ima dvije poveznice na stranice P(n*2) i P(n*2+1). No, stranice koje imaju redni broj iznad 2047 imaju samo dvije poveznice na početnu stranicu index.html. Na primjer, do stranice s oznakom 12, možemo doći skenirajući desnu poveznicu dvaput, pa lijevu poveznicu dvaput.
-
Na početnoj stranici, sys.carnet.hr pratimo desnu poveznicu
-
P(1), pratimo desnu poveznicu i dolazimo u P(1*2 + 1)
-
P(3), pratimo lijevu poveznicu i dolazimo u P(3*2)
-
P(6), pratimo lijevu poveznicu i dolazimo u P(6*2)
-
P(12), došli smo do stranice koja predstavlja broj 12
Ako nastavimo pratiti uvijek desnu poveznicu, u 12 koraka doći ćemo do početne stranice.
Gdje je nagrada? Pošto je ovo bio CUC 2012, nagrada se krije u stranici s rednim brojem P(2012).
Neka od mogućih rješenja slagalice
Grubom snagom
Slijediti svaki mogući link koristeći skriptu i detektirati stranicu koja nema dvije slike. Ako skripta dođe do takve stranice ispiše njen sadržaj na izlaz. Potrebno je paziti da se skripta ne vrti u beskonačnoj petlji pošto je graf cikličan. Preporučeni pristup je BFS obilazak. Dodatno olakšanje je što u svakoj "X.html.png" datoteci, podaci koji su predstavljeni s QR kodom predstavljaju link na točnu "X.html" stranicu, i stoga nije bilo potrebno koristiti neki paket za čitanje QR koda iz slike kao što je zbar-tools već je dovoljno odstraniti posljednju ekstenziju slike.
Koristeći pomoć u izvornom kodu svake HTML stranice
<!-- CUC 2012::sys track, nagradna pitalica! Lijevo 0, desno 1. -->
Rastavljanjem broja 2012 na binarne znamenke (11111011100) i skenirajući QR kodove redoslijedom kao što je navedeno u izvorniku HTML stranice dolazimo do nagradne stranice u 11 koraka! Dakle, na početnoj stranici skeniramo desnu sliku i na stranici koju dobijemo ponovno pratimo desnu sliku. Tako pet puta, pa lijevo, pa tri put desno i dvaput lijevo i nagradna igra je riješena! Ovo je moguće napraviti u jednoj minuti koristeći dva pametna telefona za skeniranje naizmjenice :)
Od srca čestitamo sretnim dobitnicima koji su zagonetku brzo riješili i vidimo se sljedeće godine s novim izazovom!
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version
Komentari
Mala napomena
Zahvaljujem Antonu na objašnjenju, no zaboravio ja naglastiti da je upravo on autor ovog zadatka, pa evo ja na ovaj nacin ispravljam "nepravdu" :)