Maker znany pod pseudonimem vimpo uruchomił serwer Minecraft na dziesięcioletniej drukarce laserowej Samsung C410W. Wykorzystał do tego błąd przepełnienia bufora w jej firmware, który pozwolił uruchomić na urządzeniu własny kod. Projekt opisał 20 sierpnia 2026 serwis Hackaday, a szczegóły techniczne przedstawia też TechEBlog.

Jak powstał serwer na drukarce

Według TechEBlog wybór padł na drukarkę po ankiecie wśród stałych odwiedzających, w której drukarki okazały się najpopularniejszym wyborem. Szukano urządzenia starego, ale wyposażonego w użyteczne narzędzia debugowania i na tyle nowoczesnego, by dało się je podłączyć do sieci Ethernet. Samsung C410W spełniał te wymagania: to niewielka kolorowa drukarka laserowa z połowy lat 2010., z modułem Wi-Fi i firmware z 15 grudnia 2015 roku (wersja V3.00.02.20).

Hackaday zaznacza, że samo włamanie wymagało otwarcia drukarki i dostępu do portów debugowania przez łącze szeregowe. Jak przypomina serwis, kto ma fizyczny dostęp do maszyny, ten w praktyce ją przejmuje, ale nie znaczy to, że było łatwo: autor musiał zrzucić firmware i samodzielnie znaleźć exploita. Według TechEBlog po otwarciu obudowy odnaleziono najwyraźniej pozostawiony przez producenta port debugowania, do którego podłączono konwerter USB-szeregowy i uruchomiono program terminala. Najpierw pojawiały się zwykłe polecenia, które niewiele pomagały, ale wciśnięcie klawisza Escape wywołało zrzut pamięci. Komunikaty przy restarcie opisywały układ sterty i stosu, a cała pamięć RAM o pojemności 23 megabajtów trafiła do dezasemblera.

Według Hackaday autor próbował zlecić całą tę pracę modelowi językowemu. Model pomógł zidentyfikować funkcje w zrzucie, ale ostatecznie włamanie i tak zależało od ludzkiej inteligencji, i to dopiero po zużyciu milionów tokenów. TechEBlog dodaje, że agent AI przez ponad 12 godzin etykietował funkcje i próbował ustalić, gdzie program się zawiesza, ale w końcu jedynie pomógł rozeznać się w kodzie, bo nie znalazł sposobu na obsługę drukarki. Skuteczne okazało się ręczne zbadanie innego, mało znanego protokołu, który pozostał w urządzeniu.

Drukarka miała wciąż otwarty port 7000, zarezerwowany dla LAN Test Protocol, czyli narzędzia produkcyjnego, które przyjmowało komunikaty XML niezależnie od ich rozmiaru. Ładunek umieszczono w komunikacie nieco za dużym, co według TechEBlog nadpisało bufor, nadpisało licznik programu i przekierowało wykonanie do znanej funkcji migającej diodami statusu. Gdy ten podstawowy krok się udał, według tej samej procedury dało się uruchomić na drukarce własny kod. Hackaday określa ten exploit jako staromodne przepełnienie UDP.

Serwer UCraft w 46 kilobajtach

Na przejętej drukarce autor uruchomił ulepszoną wersję swojego lekkiego serwera UCraft, stworzonego z myślą o urządzeniach z niewielką pamięcią i mocą obliczeniową. Według TechEBlog binarny plik serwera ma około 46 kilobajtów, a obsługa jednego gracza zajmuje około 50 kilobajtów pamięci. UCraft implementuje protokół na tyle, by klienci mogli dołączyć do gry, chodzić po proceduralnie generowanym terenie, uderzać w bloki i wysyłać wiadomości tekstowe, ale z założenia pomija wiele funkcji pełnej wersji gry. Serwer jest zgodny z nowszymi klientami Java Edition, a wcześniej działał na mikrokontrolerze w żarówce. Kod serwera i exploita jest dostępny na GitHubie.

Ograniczenia niecodziennego serwera

Projekt ma kilka praktycznych ograniczeń. Według TechEBlog po przejęciu drukarki jej diody zaczynają migać, a świat Minecrafta pojawia się pod lokalnym adresem IP urządzenia. Jedna osoba może wejść i się rozejrzeć, ale idzie to powoli, bo chunki ładują się długo, a mały procesor drukarki jest obciążony. Gdy dołączają kolejni gracze, gra zaczyna lagować, a zadania drukowania kończą się awarią z powodu przeciążenia procesora. Hackaday zaznacza z kolei, że po włamaniu drukarkę można nadal używać zgodnie z przeznaczeniem, tylko nie podczas gry w Minecrafta: próba wydruku powoduje wtedy awarię serwera.

Minecraft tam, gdzie nie powinien działać

Hackaday zauważa, że DOOM pozostaje niekwestionowanym mistrzem gier uruchamianych na każdym sprzęcie, ale rolę gry uruchamianej na wszystkim tylko dlatego, że się da, powoli przejmuje Minecraft. Serwer na drukarce to według serwisu kolejny serwer Minecrafta w miejscu, w którym nie powinien działać. Serwis przypomina, że ten sam autor uruchomił wcześniej serwer Minecrafta na żarówce, co jego zdaniem było prawdopodobnie jeszcze bardziej imponujące. Co autor uruchomi następnym razem, pozostaje według Hackaday kwestią domysłów.

Hackaday dodaje, że ktoś inny zrobił już wersję na układ ESP32-C3, a pod względem czystej niepraktyczności podejrzewa, że nic nie pobije implementacji na komputerze Univac z lat 60. Serwis przyznaje przy tym, że chętnie da się zaskoczyć.

Czy da się to powtórzyć

Według Hackaday exploit najpewniej zadziała tylko na identycznym sprzęcie: Samsungu C410W z firmware V3.00.02.20 z 15 grudnia 2015 roku. TechEBlog podkreśla, że każdy, kto ma taką drukarkę z tym samym oprogramowaniem, może powtórzyć cały projekt, bo exploit i kod serwera są publicznie dostępne, ale potrzebuje do tego odpowiedniego sprzętu i czasu na konfigurację. Efekt TechEBlog podsumowuje jako działający, choć dość problematyczny wieloosobowy świat wewnątrz urządzenia zaprojektowanego do drukowania tekstów i obrazów.

Jeśli wolisz zacząć od mniej ekstremalnego sprzętu, zajrzyj do katalogu serwerów Minecraft, a pliki gry znajdziesz w dziale pobierania Java Edition.

Źródła