Jak rozwiązałem zagadkę z okazji 500 obserwujących konto @rafalski
Kolega @rafalski przygotował świetną łamigłówkę z okazji zdobycia pół tysiąca followersów, a ja opiszę pokrótce jak to się stało, że udało mi się przelać zwycięskie 10 SBD na swoje konto.
Chciałbym także od razu zaznaczyć, że jestem programistą i spotkałem się już z podobnymi koncepcyjnie zagadkami, więc prawdopodobnie miałem zdecydowanie łatwiej niż inni Steemianie. Postaram się przybliżyć mój tok rozumowania podczas rozwiązywania zagadki oraz naprowadzić może kogoś na rozwiązanie kolejnej tego typu łamigłówki w przyszłości :)
Postaram się także, żeby zdobyte SBD zostały pożytecznie wykorzystane ;)
1. Szybkie rozpoznanie
Treść wpisu nie była zbyt rozbudowana i najwięcej miejsca zajmowało zdjęcie, które w dodatku posiadało podane źródło. Wiedząc, że @rafalski jest autorem serwisu steemweb.pl można się było domyślić, że to źródło nie znajduje się tam bez przyczyny, przecież nie wrzucałby informacji o źródle zdjęcia, gdyby to było jego zdjęcie, bo i po co?
Postanowiłem więc szybko przejść pod wskazany adres i pobrać plik, mając nadzieję, że jest to integralny element zagadki. Okazało się, że miałem rację. Pobranie pliku i sprawdzenie jego właściwości pozwoliło poznać jedną z podpowiedzi / przejść na kolejny etap łamigłówki.
![Właściwości pliku 'head.png' to element zagadki](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmfTLCMScmKidQxhoFFB7R4WEi6NhvcJyHDBhUmiR3Uaju/Screenshot%20from%202018-05-28%2020-07-53.png)
2. Poszukiwanie nagrody
Pole Description
pliku graficznego prowadziło pod link http://steem.swhost.pl/konkurs
, który z kolei przekierowywał na https://steemweb.pl/konkurs
, a tam przywitała mnie informacja z gratulacjami i kolejne zadanie do wykonania.
![Szukamy nagrody na stronie steemweb.pl](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmeZk9eP7HRN5xT1cVH8aTWPhXW5nFGen5ny3UbHTLHmj7/Screenshot%20from%202018-05-28%2020-12-50.png)
Rozpocząłem więc poszukiwania na stronie. Pierwsze o czym pomyślałem, to ukrycie rozwiązania za pomocą białego tekstu. Zaznaczenie wszystkiego (CTRL+A
) nie ujawniło jednak żadnych dodatkowych informacji. Przyszedł czas na spojrzenie w źródło strony. Standardowo kliknąłem sobie prawym przyciskiem myszy na stronie i wybrałem opcję Zbadaj
(w przeglądarce Chrome), która pozwoliła mi ujrzeć co ten @rafalski tam nakombinował. Po chwili udało się zlokalizować małą podpowiedź:
![Gdzie ta nagroda?](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmViY9dzbDyAv12WRgb9HzFmwWKZaoyyqRQXEcPF3qyWKp/Screenshot%20from%202018-05-28%2020-20-22.png)
Szukałem więc dalej. Rozwinąłem wszystkie tagi HTML dostępne w podglądzie, w poszukiwaniu czegoś nienaturalnego. Sprawdziłem jakie skrypty są załączane do strony i czy nie występuje jakiś z nazwą nawiązującą do konkursu. Zerknąłem także na zakładkę Console
, która służy zazwyczaj do wyświetlania różnych informacji przydatnych deweloperom, ale była ona pusta. Szczerze mówiąc niewiele mi ta podpowiedź pomogła i po kilku minutach dałem sobie spokój z szukaniem czegoś w treści strony. Skoro więc nie było niczego na tej podstronie
, to znaczy, że musimy iść gdzieś indziej, gdzieś dalej.
Pomyślałem sobie:
Skoro szukam nagrody na
stronie
w rozumieniu całego steemweb.pl, to może trzeba coś wykombinować z adresem URL strony? Mamy w końcukonkurs
, to może i w ten sam sposób znajdziemynagrodę
?
Szybko więc zmieniłem lekko adres URL strony na https://steemweb.pl/nagroda
i znalazłem... nagrodę! A przynajmniej taką miałem nadzieję ;)
3. Rebus
Rozwiązanie tego obrazka zajęło mi najwięcej czasu. Od początku próbowałem go rozwiązać jako jakieś nietypowe równanie, gdzie coś trzeba do siebie dodać i pomnożyć. Tabela ASCII podpowiedziała mi, że 0x40
w systemie szesnastkowym odpowiada znakowi @
. Próbowałem na najróżniejsze sposoby zliczać ilość liter występujących w nazwach przedmiotów na obrazku, dodawać je, mnożyć i zamieniać na znaki ASCII, żeby utworzyć link do jakiegoś nieznanego mi konta na steemit. Niestety nic z tego nie wychodziło.
Próbowałem więc sprawdzić, czy obrazek nie kryje w sobie jakichś dodatkowych informacji, tak jak ten z konkursowego postu na steemit. Niestety nic z tego, obrazek był "czysty". Nie pomogły nawet internetowe narzędzia do steganografii, która jest często wykorzystywana w takich łamigłówkach.
Zacząłem się więc zastanawiać co może tak naprawdę oznaczać ostatni obrazek, bo wcześniej zwracałem uwagę tylko na liczbę na nim. Po chwili do mnie dotarło: to baza
! A ile to 0x40 w systemie dziesiętnym? 64 :) Wiedziałem już, że jestem w domu, bo znam coś takiego jak kodowanie Base64.
Narzędzia pozwalające kodować i dekodować tekst w tym systemie są bez problemu dostępne w sieci. Szybkie wyszukiwanie pozwoliło przejść na jedno z nich. Domyśliłem się także, że znak *
na obrazku wcale nie oznacza mnożenia, więc prawdopodobnie plusy nie oznaczają jako tako dodawania liczb.
Postanowiłem sprawdzić co wyjdzie, gdy spróbuję zakodować nazwy rzeczy z obrazka za pomocą systemu base64:
Przypomina wam to coś? Bo według mnie wygląda to jak typowe hasło do konta Steem ;)
4. Gdzie tu się włamać
@rafalski obiecał 10 SBD, jako formę nagrody, więc pierwsza rzecz jaka mi przyszła na myśl, to... sprawdzić, czy go stać ;) Nie było to szczególnie trudne, wystarczyło wejść na jego konto na Steemit i sprawdzić, czy posiada płynne SBD w portfelu. Okazało się, że środków miał wystarczająco dużo, na tyle dużo, że zdziwiłbym się, gdyby podał gdziekolwiek swój active key
albo hasło (zresztą i tak bym się zdziwił, nawet jakby nie miał środków płynnych ;) ).
Postanowiłem więc spojrzeć w historię jego transferów. Daleko nie trzeba było szukać:
Mam Cię ;)
Jednak szybka próba zalogowania niestety okazała się porażką :/ Nie zwątpiłem jednak, że jest to dobra droga do rozwiązania zagadki, więc spróbowałem skorzystać z angielskich słów house mouse guitar steem
, które po zakodowaniu w base64 ostatecznie pozwoliły mi na zalogowanie się na konto @iamyourreward ;) Wystarczyło więc tylko wykonać przelew na swoje konto, aby odebrać nagrodę w postaci 10 SBD :D
5. Podsumowanie
Dziękuję koledze @rafalski za przygotowanie tej przyjemnej łamigłówki i odciągnięcie mnie na jakiś czas od pracy ;) Pomysł jest dość znany i jeśli ktoś ma ochotę spróbować swoich sił w podobnej rozrywce, to jest przynajmniej kilka takich gier. Jeśli macie wystarczająco dużo czasu, spróbujcie swoich sił w:
To bardzo krótka lista przykładów, ale wszystkie to prawdziwe pożeracze czasu, więc weźcie sobie to ostrzeżenie do serca :) W powyższych grach będziecie musieli się wykazać jeszcze większą kreatywnością, więc pozostaje mi tylko życzyć wam powodzenia!
Ja byłem bardzo blisko z tym rebusem. Konto z nagrodą znalazłem na początku więc domyśliłem się, że szukać trzeba klucza. Rozpisałem sobie te słowa w różnych kombinacjach (z plusami, ze spacjami, łącznie itp, itd). Nie mogłem tylko wpaść na Base64, bo pisałem:
i kombinacje.
Miałem i przez chwilę zapisane
64 base
, ale nie zaskoczyło. Gdyby obrazek był inaczej narysowany (np. napis byłby pod bazą albo z jej prawej strony) - to znacznie łatwiej bym na to wpadł. To jest właśnie najgorsze w takich zagadkach, że czasem by skojarzenie się zbudowało potrzebujesz naprawdę niewiele, a czasem masz obok siebie dwie rzeczy, którym wystarczy zmienić kolejność i tego nie widzisz.Mnie długo przetrzymał sam fakt, że 64 to w ASCI znak
@
, więc próbowałem skombinować z tego jakieś konto, ale nic sensownego mi nie wychodziło ;) Ale po pewnym czasie zaskoczyła właśnie ta baza :)Też byłem w tych krzakach. W pewnym momencie doszedłem do wniosku, że nie patrzę na klucz a na wskazówkę gdzie klucz jest ukryty. No bo
Steem * (@ jest bazą/podstawą)
to przecież wskazówka, że chodzi o jakieś konto. Najgorzej, że na prawie wszystkie te wyrazy już są konta (ale za stare).Potem zacząłem kombinować z
@ base
znaczyat base
czyli w bazie danych (no bo przecieżsteemweb.pl
korzysta z bazy SQL). Czyli strukturę bazy też sobie obczaiłem :-).Potem wróciłem do pomysłu, że to jednak hasło i zacząłem się zastanawiać co to było za narzędzie do bruteforce'u, które pracuje na zadanym słowniku i testuje wszystkie kombinacje. Jeśli to narzędzie robi też na próbkach kodowanie w różnych systemach (a chyba robi) - to najśmieszniejsze, że pewnie by znalazło rozwiązanie :-D. Ale nie zdążyłem sobie tego narzędzia przypomnieć.
Jeśli chodzi o zagadkę samodzielnie doszedłem tylko do etapu kodu strony, no cóż jestem nobem.
Pierwsza myśl to było że wezmę zdjęcie i pobawię się krzywymi - zobacze może jakiś napis w postaci innego lub kompletnego braku szumu. Ale zapytałem na czacie i stwierdziłem ze najpierw otworze w notatniku.
Tam był link i szukałem w kodzie, niestety tam nic nie było.
To też częste podejście - ukrywanie dodatkowych informacji w pliku w taki sposób, żeby na pierwszy rzut oka nie było widać. Gdyby właściwości obrazka nic nie wykazały, to szukałbym właśnie za pomocą notatnika lub podobnego programu, który pozwoliłby na wyświetlenia obrazka w "formie tekstowej" ;)
Pisałeś na czacie coś o + oraz * więc szukałem dodatkowych informacji właśnie w pobliżu tych znaków w notatniku. Miejscami nawet zdawało mi się że widzę jakiś klucz, innymi ze 2-3 litery z słowa :D
Gratulacje, fajny opis, fajnie się to czyta :)
Dzięki :) Fajnie przygotowana łamigłówka, oby więcej takich :)
Łamigłówka raczej dla ogarniętych bardziej😀eee wole sportowe i kulinarme konkursy😀
Bravo WY!👏👏👍
A ja myślałem, że 0x40 to 1000000 w systemie dwójkowym, co wydawało mi się "pewniakiem", bo liczba kont na Steem przekroczyła milion :O
Niesamowite ile może być interpretacji
Każdy widzi to co chce
Też kombinowałem naprawdę na różne sposoby. Tekst o tym etapie nie jest jakiś super długi, ale w rzeczywistości sporo czasu mi zajęło zastanawianie się nad rebusem ;)
Cicada 3301. :D
Na trochę mniejszą skalę ;)
Dzięki, to dobry test na to "czy nadaję się na programistę". W ten sposób można zaoszczędzić trochę czasu i pozbawić się złudzeń.