Wyniki drugiego konkursu z maliną

Wyniki drugiego konkursu z maliną

przez -
6 1101
OSWorld - logo kwadratowe
W ubiegłym tygodniu rywalizowaliście w serii łamigłówek i zagadek o główną nagrodę, czyli platformę Raspberry Pi. Zadania były zróżnicowane, części osób wystarczyła chwila na ich rozwiązanie, innym główkowanie zajmowało całe popołudnie. Dyskusja była zawzięta a całości dopełniało liczne grono uczestników. Po prawie 7 dniach nieustannego myślenia czas ogłosić wyniki drugiego konkursu z maliną.

Zwycięzcą malinowego konkursu, z czasem 21 minut dla końcowego zadania zostaje: Aleksander Wałęski. Ale to nie wszystko, gdyż zgodnie z informacją jaka była zawarta w “wiadomym pliku” nagrody wędrują również do:

  • Grzegorz Graczyk
  • mrówki
  • Tomasz Cebula
  • lkslawek

Pozostałym bardzo dziękujemy za udział. Mamy nadzieję że dobrze się bawiliście (my na pewno ;) ) oraz dowiedzieliście się czegoś nowego w trakcie rozwiązywania łamigłówek. Poniżej znajdziecie odpowiedzi na każdy z etapów oraz garść statystyk z czasu trwania konkursu.

Poniedziałek – Zagadka matematyczna

Przy użyciu telefonu komórkowego z aplikacją do skanowania kodów QR lub internetowe aplikacji (goo.gl/TKXhw) należało odczytać ukrytą wiadomość. Zawierała ona ciąg znaków zakodowany algorytmem Base64 oraz e-mail z niespodzianką. Wystarczyło rozkodować szyfr by uzyskać URL do następnej części zadania.

Iloczyn pierwszych dwóch cyfr jest równy 24.
Czwarta cyfra jest o polowe mniejsza od drugiej cyfry.
Suma dwóch ostatnich cyfr jest taka sama jak suma pierwszej i trzeciej cyfry.
Suma wszystkich cyfr to 26.
Suma drugiej i trzeciej cyfry równa się cyfrze ostatniej.

Następnie, z każdego paragrafu należało wyłonić część matematycznej zagadki której rozwiązaniem było 5 zmiennych składających się na końcowe hasło. Najprostszym sposobem było zapisanie zagadki w postaci równania oraz znalezienie rozwiązań w oparciu o Wolfram Alpha.
Odpowiedź – 64529.

Wtorek – Najciemniej pod latarnią

Na zagadkę składało się kilka elementów. Najpierw należało odnaleźć na zdjęciach podpowiedzi – tcp/22 na książkach, adres IP zapisany w postaci szesnastkowej na płytach, tcp/80 na zabawkach Clonezilli oraz wiadomość zakodowaną ROT-13 na laptopie. Po wejściu na adres IP przy użyciu przeglądarki ukazywał się prywatny klucz GPG z hasłem tove – imieniem żony Linusa Torvaldsa.

Ukryte słowa w biurze

Port tcp/22 oznaczał iż należało się połączyć do serwera aplikacją wspierającą SSH (np. Putty) gdzie znajdowała się zaszyfrowana GPG wiadomość dla użytkownika. Instrukcje odnośnie użytkowania kluczy GPG można było znaleźć w artykule z poprzedniego konkursu. Po rozkodowaniu użytkownik otrzymywał URL do następnego etapu.
Odpowiedź – http://osworld.pl/xbaxhef/khwefdmf

Środa – Stereogram

Z uwagi na święto daliśmy coś prostszego. Stereogram można rozwiązać jednym ze sposobów opisywanych na portalach temu poświęconych, bądź przy użyciu jednego z programów dekodujących. Najtrudniejszym elementem tej zagadki była umiejętność poszukiwania informacji (lub korzystania z Google).

Stereogram - rozwiązanie

Odpowiedź – K59L

Czwartek – Kolorki

Zadanie które większości sprawiło najwięcej problemów. Przeszkodą było tutaj zbytnie “kombinowanie” oraz próbowanie wszelkich, nawet najbardziej dziwacznych rozwiązań. Przykładowo część użytkowników uznała kolor tabelki oraz ilość powtórzeń malin tego samego koloru za istotny. Inni wpisywali odpowiedź w osworldową szukaję. Jeszcze inni decydowali się na atak Brute Force pisząc skrypt, który próbował wszelkich możliwych kombinacji. A wystarczyło odwrócić kolor obrazka w programie graficznym i sprawdzić która z wartości RGB z tabelki nie odpowiadała kolorom malin.

Kolorki

Mając to, szybko można było zauważyć że kolory nie zgadzają się dla 4 malin, z czego jedną od razu można było wyeliminować z uwagi na 5 znakowy kod z nią skojarzony (hasło końcowe miało 8 znaków). Dawało nam to 6 możliwych kombinacji (3*2*1), które wystarczyło przetestować ręcznie w przeglądarce.

Padały bardzo ciekawe odpowiedzi. Wybraliśmy najlepsze z nich:

  • alezemnieciumok.txt
  • bezsensu.txt
  • cokolwiek.txt
  • czerwony.txt
  • doszed%C5%82em
  • japierdole.txt
  • Jonasz
  • pomocnik.php?l=Lol
  • pomocnik.php?l=Zielona+G%F3ra
  • pomocnik.php?l=ul.+%A3%EA%BFycka

Odpowiedź: http://176.34.215.204/8a7RR7Wp.txt

Piątek – 3 kroki do maliny

Część użytkowników zasmucił fakt, że zadanie końcowe miało by się pojawić w piątek o godzinie 20:00 kiedy większość z nas ma zwyczaj wyjść poza dom i odpocząć ze znajomymi. Nie znaczyło to jednak że zadanie będzie można rozwiązać od razu. Należało odgadnąć z zagadki o jakiej porze dnia następnego pojawi się kolejne zadanie, aż do niedzieli kiedy pojawiło się zadanie ostatnie.

Piątkowym zadaniem był obrazek ziemi oraz słońca i księżyca znajdującej się wokół niej. Rakieta z maliną była w tym zadaniu jedynie elementem ozdobnym. Należało zastosować się do wskazówek i podążyć za słońcem (a konkretnie wokół niego) by znaleźć się po jego drugiej stronie. Innymi słowy, należało odwrócić obrazek o 180 stopni by zauważyć że ciąg cyfr na słońcu układa się w wyraz – helios.

Helios

Wystarczyło wygenerować sumę kontrolną md5 z wyrazu helios oraz przejść pod odpowiedni adres. Istotna uwaga – plik zgodnie z drugą z podpowiedzi pojawił się dopiero w południe, w sobotę o godzinie 12:00.
Odpowiedź http://osworld.pl/b43b1c8ba7e211d86b90c354a60d96c3.zip

Sobota – Pliki

Pobrane archiwum zawierało dwa pliki – readme.txt, w którym za pomocą spacji zakodowane było hasło oraz drugie archiwum zabezpieczone hasłem. Wystarczyło zaznaczyć tekst, lub zamienić spacje na inne znaki by zobaczyć hasło.

Literki

Po rozszyfrowaniu użytkownik otrzymywał 100 plików o losowych nazwach w których były zakodowane, ponownie algorytmem base64, adresy URL do portalu. Tylko jeden z nich był poprawny – należało napisać skrypt który rozkoduje każdy z plików oraz sprawdzi czy znajdująca się w nim fraza rożni się od “próbuj-dalej”. Przykładowo można było użyć polecenia

cat * | base64 -d -i | grep -v probuj

Alternatywnym podejściem rzecz jasna było zrobienie wszystkiego ręcznie.
Odpowiedź: http://osworld.pl/xbaxhef/bramki-logiczne/

Niedziela – bramki logiczne

W zadaniu końcowym zwycięzcą była osoba która jako pierwsza wysłała odpowiedź zgodną z wytycznymi na adres mailowy redakcji. Czas pojawienia się tego zadania również był zagadką – był to moment kiedy dwie wskazówki zegara miały się zrównać oraz suma wskazywanych przez nie wartości równała się odpowiedzi na życie, wszechświat i całą resztę. Rzecz jasna chodziło tutaj o godzinę 3:15 (obie wskazówki wskazują cyfrę 3, ich suma równa się 6 i powielona 7-krotnie daje 42). Mały błąd z naszej strony – nie chodziło o 3:15 w nocy tylko 15:15 (po południu). Jeśli jesteśmy powodem dla którego mieliście nieprzespaną noc bardzo z tego powodu przepraszamy ;-)

Bramka logiczna - rozwiązanie

Zadaniem końcowym była bramka logiczna. Zadanie to można było rozwiązać dwojako. Należało odkryć znaczenie każdej z malin sprawdzając jakiemu znakowi w ASCII odpowiada wartość dziesiętna podana nad bramkami. Następnie, przy pomocy metody prób i błędów, sprawdzić dla jakich danych wejściowych (litery zapisanej w formie binarnej, również odwołanie do tablicy ASCII) generowany jest znak na wyjściu. Można było w tym celu użyć pomocnika – skryptu php do którego link (zakodowany hexadecymalnie) znajdował się w podpowiedzi. Skrypt przyjmował wartość dziesiętną ASCII z przedziału 0-255 oraz zwracał wartość którą normalnie zwróciła by bramka logiczna (również dziesiętną ASCII). Skrypt pełnił tutaj rolę automatu, którym można było się posłużyć, lub nie (pisząc własny skrypt lub rozwiązując zadanie na kartce).

Innym podejściem było wygenerowanie wszystkich możliwych rozwiązań dla wszystkich możliwych kombinacji (utworzyć tęczową tablicę dla danej bramki). Ponownie można było się tutaj posłużyć skryptem pomocnika, przekazując mu wartości poprzez parametr GET. Przykładowo, można było użyć polecenia:

[kamil@muszelka ~]$ for i in `seq 65 126`; do echo -n "IN $i. OUT: "; curl http://176.34.215.204/pomocnik.php?l=$i; echo""; done
IN 65. OUT: 103
IN 66. OUT: 100
IN 67. OUT: 101
IN 68. OUT: 98
IN 69. OUT: 99

Można było tutaj posłużyć się wskazówką co do zakresu jaki należy przebadać – w przypadku pozostałych znaków mamy do czynienia z białymi znakami lub symbolami specjalnymi. Sama bramka również nie jest doskonała i jak zapewne część z Was zauważyła – występują kolizje dla pełnego zakresu 0-255, stąd podpowiedź co do odpowiedniego zakresu.

Tak czy inaczej, należało przebadać dla jakich wartości dziesiętnych otrzymujemy wartości odpowiadające numerom ASCII znaków podanych w zadaniu oraz ułożyć z nich hasło. W tym przypadku była nim fraza GraTUlAcjE (konkretnie w tym ułożeniu). Część z Was pomyliła się przy wielkości liter przez co nie mogliśmy zaakceptować waszej odpowiedzi.

Kolejny konkurs już za tydzień!

  • Greg

    Mega gratulacje dla wygranego! Szybko to rozwiązałeś. JAK?!?!?!

    Dzięki za rozwiązanie zadań. Widzę jak za bardzo kombinowałem :P

    • Aleksander

      Dzięki, malina już jest u mnie :D
      Jak to rozwiązałem to byłem przekonany, że straciłem dużo czasu ale miałem nadzieję, że załapie się jeszcze na jakiś kubek albo koszulkę.
      Od początku w miarę wiedziałem o co chodzi – konwersja binarnego ASCII przez bramkę. Na początku zacząłem układać tą bramkę w odpowiedniej aplikacji, żeby mieć jej interaktywny model (tu straciłem sporo czasu). Potem zorientowałem się, że pomocnik.php robi dokładnie to czego potrzebowałem. Pierwsze dwie litery zdekodowałem brute-force (ale ręcznie!) za pomocą skryptu. Moje szczęście chyba polegało na tym, że po nich domyśliłem się o jakie słowo może chodzić i sprawdzałem tylko wielkie/małe litery (które z resztą były dokładnie przeciwne pod względem wielkości tym w postaci "przetworzonej"). Treść maila z opisem rozwiązania wcześniejszych zadań miałem przygotowaną wcześniej :P

    • Karol

      Masz pomysł jak ją wykorzystać?

  • LOL

    W pierwszej zagadce nie trzeba było rozwiązywać równania :D Ja się tyle z nim męczyłem, ale jak zaczęły mi wychodzić złe liczby to kliknąłem po prostu na przycisk i przeniosło mnie do następnej strony :D Także taki mały bug :D

  • Pingback: Konkurs: Malinowe rywalizacje | OSWorld.pl()

  • rozie

    Bardzo fajny konkurs (zadania). Osobiście dla mnie za duża presja czasowa. Możecie podać, ile osób rozwiązało poszczególne etapy? Ew. przynajmniej ile osób rozwiązało etap minimalnie i maksymalnie?

    Zwycięzcy gratuluję.