Das ReSwitched-Team hat sich heute nach einigen Monaten Abwesenheit zurückgemeldet. So macht man die eigenen Projekte öffentlich und präsentiert ROhan, einen Work-In-Progress Exploit für Code-Ausführung im Userland.
So hat man das Exploit-Toolkit "PegaSwitch 3.0" für die Firmware 2.0.0 bis 3.0.0 und ein Open-Source Homebrew-SDK mit dem Namen "libtransistor" veröffentlicht. Dazu gesellt sich "Mephisto", ein hoch-performanter Emulator für Switch-Binarys. Unter "SwIPC" können Interessierte auch IPC-Spezifikationen finden.
Das Highlight ist aber definitiv ROhan. Dabei handelt es sich um einen Exploit für Code-Ausführung im Userland nur für die Firmware 3.0.0. Dazu wird u.a. ein Fehler im Service-Manager ("sm") des SwitchOS ausgenutzt, welcher mit der Firmware 3.0.1 behoben wurde. Das ist aber noch nicht alles: es wird auch ein kompromittiertes Sysmodul benötigt, mit dem ein Man-In-The-Middle auf die spl:-Services ausgeführt werden kann, welcher die Frage nach dem Debug-Mode immer mit "ja" beantwortet (IsDebugMode). Das wird eigentlich dazu benutzt, das Testen zu vereinfachen, kann aber hier dazu genutzt werden, die Signaturen-Checks zu überspringen.
Dem SwitchOS wird also vorgespielt, dass eine Binary im Entwicklermodus geladen wird, was die Signaturen (ob diese Binary von Nintendo stammt) nicht prüft.
Ein kompromittiertes Systemmodul wird benötigt, da der ReplyAndReceive-Syscall (der einen Service imitiert), im Internetbrowser nicht existiert – also übernimmt man kurzerhand einfach ein anderes Modul. Auf 3.0.0 enthält das sdb-Systemmodul, welches auch mit dieser Firmware eingeführt wurde, einige Fehler, was es zu einem attraktiven Angriffsziel macht.
Allerdings fehlt noch eine ROP-/JOP-Kette mit der arbiträre/"fremde" Funktionen aufgerufen werden können – das einzige, fehlende Stück zur Userland Code-Ausführung.
Das alles ist natürlich primär für Entwickler interessant, aber für Nutzer ist es interessant zu wissen, dass es vorangeht. Das Einzige, was wir euch mitgeben können, ist, dass ihr auf keinen Fall eure Switch auf 3.0.1+ aktualisieren solltet. Wer gezielt auf 3.0.0 aktualisieren möchte, kann dies bspw. mit Pokkén Tournament DX tun.
UPDATE: ROhan ausführlicher beschrieben.
Hi wollte mich auch bedanken bei Icon.
Du machst echt gute Arbeit und bist immer auf dem laufenden, echt tolle Arbeit.
Ich möchte mich für die Jahre lange Arbeit auf wiidatabase bedanken. Ihr habt mir und vielen Menschen geholfen und ihr hält uns immer auf dem neusten stand. Danke für alles! 🙂
Danke für das Kompliment 🙂
Kann ich nur zustimmen!
Besteht die Möglichkeit eine neue Switch zu kaufen und diese genau auf 3.0.0 upzudaten?
Letzer Absatz => Geht mit Pokkén Tournament bspw., das hat die FW 3.0.0
Sorry iCon habe es nur überflogen! Soll ich jetzt zuschlagen? Oder noch abwarten auf ein Angebot und hoffen das es für neuere fw einen exploit geben wird?
Diese Fragen beantworte ich nicht, sorry. Musst du selbst wissen. Das ist ein ziemlich gravierender Bug, wer weiß, wann man wieder so einen findet.
Was ist den mit dem bug alles möglich?
Einfache Userland-Homebrews und Emulatoren. Also leider keine tiefen Eingriffe, aber von da aus kann man sich weiter vor arbeiten.
Ich kaufe sie mir jetzt mal und lass sie mal liegen. Kann Ich die Konsole auch in nem halben Jahr auf die Firmware updaten?
Gibt es die Konsole grad im Angebot?
Per Spiel, klar.
Gibt es den auch alternativen zu dem Pokken Tournament DX Spiel? Kann ich eigentlich mit der FW 1.0.0 oder 3.0.0 auch Online spielen? Ich kriege derzeit ganze zeit die Meldung ich soll updaten.
Bestimmt, allerdings hab ich keine genaue Liste.
Online-Spielen geht nicht
Mario Odyssey wird übrigens mit 3.0.1 kommen: https://gbatemp.net/threads/speculation-super-mario-odyssey-uses-v3-0-1-gamecrypto.485675/#post-7610006
Ist das Spiel dann nicht spielbar wenn ich meine Switch auf 3.0.0 habe?
Exakt, das Spiel wird beim Start ein Update einfordern und es von der Cartridge installieren.
Ok danke und welche Firmware brauche ich für Mario Kart Deluxe?
2.2.0
Gebraucht oder neu? Neue sollten mit <= v3.0.0 (oder sogar < 3.0.0) kommen, allerdings wird genau v3.0.0 benötigt.
… Jetzt habe ich meine von 2.5 auf 3.0.2 geupdatet …. Geil… Hoffentlich gibt es irgendwann etwas für neuere Firmwares
Na ja, es ist ja sowieso die Frage ob für "alle" überhaupt was kommt und wann es ist. Wenn man wirklich damit irgendwas besonderes machen möchte. Kauft man eine und legt sie in den Keller. 🙂
Wenn man damit basteln möchte etc. hat man sowieso mehr als ein Gerät.
Kann man eigentlich Spiele Updaten ohne Firmware Update? 🙂
Hier steht was: https://gbatemp.net/threads/guide-how-to-uodate-your-games-without-updating-the-device.466262/
Schau ich mir mal an, dankeschön! 🙂