The Game – TryHackMe (PL)

„The Game” na TryHackMe to proste zadanie polegające na zhakowaniu kopii Tetrisa zrobionej na silniku Godot. Niestety, dostępna jest jedynie wersja na Windowsa.

Jeżeli nigdy wcześniej nie miałeś styczności z cheatowaniem, czy też hakowaniem gier, to jest to świetny pokój na początek :)

Okno kopii Tetrisa z pokoju The Game na TryHackMe
Zrzut ekranu przedstawiający okno gry

Znalazłem dwa banalne rozwiązania.

Rozwiązanie klasyczne

Pierwsze co rzuciło mi się w oczy to cel gry: Score more than 999 999 – „Zdobądź więcej niż 999 999 punktów”. Używając (chyba) najbardziej znanego edytora pamięci, jakim jest Cheat Engine, przyznałem sobie adekwatną ilość punktów.

Wybacz moje okropne umiejętności grania w Tetrisa :(

Na początku przeskanowałem pamięć procesu, żeby znaleźć wszystkie 32-bitowe (4-bajtowe – rozmiar zgadywałem) wartości równe 0.

Po zdobyciu 100 punktów, ponownie przeszukałem pamięć. Na tym etapie Cheat Engine nie przeszukuje całej pamięci, tylko sprawdza, które znalezione wcześniej adresy mają wartość, którą wskazaliśmy.

Na końcu został mi jeden adres, mający wartość 200, którą zmieniłem na 999 999. Kolejne 100 punktów przeniosło mnie nad próg wymagany przez grę, dzięki czemu dostałem flagę.

Rozwiązanie „meta”

Znaczna większość flag w pokojach na TryHackMe (pewnie jakieś 99,99%) jest w następującym formacie:

THM{....................}

Zakładając, że autor gry nie zaszyfrował flagi, możemy przeskanować pamięć aplikacji właśnie pod kątem ciągu znaków. Na szczęście Cheat Engine to obsługuje:

Zrzut ekranu przedstawiający okno gry i programu Cheat Engine. Wyszukany string THM{.
Zrzut ekranu przedstawiający okno gry i programu Cheat Engine. Wyszukany string THM{.

Po ustawieniu kodowania na UTF-16, Cheat Engine znalazł dwa miejsca, w których znajduje się ciąg znaków o przedrostku THM{.

Wyświetlając region pamięci, w którym znajduje się którykolwiek z adresów, możemy odczytać całą flagę – bez grania w Tetrisa:

Zrzut ekranu przedstawiający opcję, która umożliwia wyświetlenie region pamięci wokół adresu.
Zrzut ekranu przedstawiający opcję, która umożliwia wyświetlenie region pamięci wokół adresu.
Zrzut ekranu przedstawiający region pamięci i ocenzurowaną flagę.
Zrzut ekranu przedstawiający region pamięci i ocenzurowaną flagę.