-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

Coś dla prawdziwych twardzieli – OS command exec na żywo w Super Mario World – przez odpowiednią manipulację kontrolerami

14 stycznia 2014, 22:34 | W biegu | komentarze 2

Grupa hobbystów zaprezentowała ostatnio pewien nietypowy trick. Przeprogramowali na żywo grę Super Mario World, tak aby wykonała dowolny kod. Kodem tym była stworzona przez nich gra, która pozwalała np. grać głową Mario w ponga czy snejka (dla tych którzy nie wiedzą o co tu chodzi, polecam w filmie poniżej przejście do ok.: 1:35), a bytecode został podany przez … odpowiednie wciśnięcie przycisków na kontrolerach.

Na czym całość dokładniej polega? Po pierwsze chcemy znaleźć buga, który umożliwi niekontrolowany skok aplikacji (gry) pod wskazany przez nas adres pamięci (technika wykorzystywana np. w exploitach podatności  buffer overflow). Można skorzystać tutaj z wielu błędów,  które wizualnie sprowadzają się np. do możliwości wzięcia jednorazowo dwóch przedmiotów czy jeździe na wielu Yoshi jednocześnie. Historycznie ciąg tego typu operacji był wykorzystywany np. do ustawienia adresu skoku gry do miejsca gdzie były załadowane napisy końcowe i efektywne ukończenie gry w kilka minut :)

Autorzy hacka zrobili więcej – skoczyli do kodu, który może być ustawiany za pomocą kontrolerów (naciśnięcie odpowiednich przycisków ustawia pewne bajty w pamięci, które w normalnej sytuacji są odczytywane przez grę aby sterować całą zabawą), a w tym kodzie doładowali już…własną grę! Autorzy hacka piszą tak:

 So let’s just jump to the controller input data and execute from there. The input is at $4218 so we need a JMP $4218 which is 4C 18 42.

Czyli potrzebują wykonać instrukcję procesora: 4C 18 42. Skąd biorą te bajty? Jak się okazuje są to kody pewnych sprajtów (np. 42 to p-switch). Korzystając więc z wielu bugów ustawiają pewien adres w pamięci zgodny z wybranymi sprajtami (zauważcie np. w filmie powyżej, w 1:38 widoczny jest 'przycisk p’; całe to 'ustawianie’ trwa właśnie mniej więcej 1:40), a następnie korzystając z kontrolerów do gry przesyłają dowolny kod do wykonania. Proste co?

Cała akcja z komentarzem autorów:

oraz dość entuzjastycznym komentowaniem na reddicie.

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Grzechooo
    Odpowiedz
  2. Pomysłowe. Szacunek.

    Odpowiedz

Odpowiedz