UDPIH ist ein Exploit für die Wii U, welcher ein Versäumnis beim Parsen der USB-Deskriptoren ausnutzt, um unsignierten Code kurz nach dem Starten der Konsole auszuführen. In Verbindung mit dem Wii U Recovery Menu ideal zum Unbricking von bspw. Coldboot-Haxchi-Bricks!
Erklärung
Mit diesen Deskriptoren stellen USB-Geräte verschiedene Informationen über sich selbst bereit – bspw. die USB-Version, die Hersteller- und Produkt-ID, usw. Zuerst werden beim Start die Geräte-Deskriptoren vom USB-Host-Stack gelesen; anschließend folgen die Konfigurations-Deskriptoren. Diese Deskriptoren haben keine feste Größe, sondern lege diese selbst in einem vorgegebenen Feld fest. Zudem müssen einige Felder zusätzlich byte-geswapped werden, da diese nur in Little Endian vorliegen, aber in Big Endian benötigt werden.
Nintendo hat es versäumt, zu prüfen, ob die angegebene Größe der tatsächlichen Größe entspricht, was einen "out-of-bounds" Byteswap ermöglicht. Der Blogbeitrag von GaryOderNichts geht tiefer ins Detail.
Verwendung
Um den Bug auszunutzen, muss man also ein Gerät besitzen, welches USB-Geräte und somit beliebige USB-Deskriptoren emulieren kann. Die populärsten sind zweifelsohne der Raspberry Pi Pico, Pico 2 und der Raspberry Pi Zero, die alle sehr günstig zu haben sind. Eine genaue Anleitung stellt GaryOderNichts auf GitHub zur Verfügung – kurz gesagt muss der Pi Pico geflashed und beim Pi Zero ein Kernel-Modul integriert werden. Das Steam Deck funktioniert auch, benötigt aber noch ein paar zusätzliche Schritte. Eine hackbare Nintendo Switch funktioniert ebenfalls. Auf ESP32 S2 und S3 basierende Boards werden auch unterstützt.
Anschließend muss das Recovery Menu auf die SD-Karte der Wii U platziert und beim Start der Konsole (beim "Wii U" Logo) das USB-Gerät (Pi, Switch, …) eingesteckt werden.
Hinweise
- Kein anderes USB-Gerät darf verbunden sein
- Verwende nur die vorderen USB-Ports
- Falls der Standby-Modus aktiviert ist, ziehe vorher den Stecker und stecke die Wii U erneut an
Mal eine ganz bescheidene Frage. Wäre technisch gesehen möglich, einen Raspberry Pi Pico mit USB C Anschluss zu nutzen? Wäre ja eigentlich der Gleiche wie der normale Pico. Oder ist dem nicht so?
Haben die nicht nur microUSB? Welches Modell meinst du genau?
Kannst den Beitrag ja löschen. Aber hier mal ein Link
https://www.ebay.de/itm/227115189018
Ah das ist dann ein gemoddeter wenn er wirklich USB-C hat, der sollte auf jeden Fall funktionieren, wenn die Artikelbeschreibung richtig ist und das auch wirklich ein Pi Pico ist. Da ist dann egal was "drumrum" gemoddet wurde.
Ich bin da nämlich noch ein bisschen am strugglen. Vom rein technischen her, sieht der exakt aus wie der Pico mit Micro USB. Hätte jetzt auch kein Problem damit, den regulären zu kaufen.
In sachen Wii U passiert wieder mal was.
Ich weiß, dass es dafür wahrscheinlich noch keinen Artikel geben wird, dennoch dachte ich mir, dass es interessant sein könnte für die Experimentierfreudigeren.
Mittlerweile kann mithilfe von ISFShax auch der boot1 der Wii U exploited werden. Man könnte sagen, dass ISFShax der "Priiloader für die Wii U" ist. Es bietet etwas besseren brick-schutz, ermöglicht größeren MLC, kann sowohl Normal als auch im redNAND betrieben werden und kann über gängige methoden installiert werden (Via Tiramisu, Browser exploit oder UDPIH).
Allerdings gibt es natürlich auch das brickrisiko beim installieren, und es unterstützt den Standby-Modus / das Schnellstart menü nicht.
Ich bin da soeben drauf gestoßen und werde es heute abend mal auch selber ausprobieren.
Link zum thread: https://gbatemp.net/threads/how-to-set-up-isfshax.642258/
Danke für den Hinweis, das sieht echt interessant aus!
Bezüglich Bricks ist es lt. dem Thread wohl eher so wie BootMii, dass es immer ein gewisses Restrisiko gibt. Der Vorteil hält sich natürlich etwas in Grenzen, aber das ist ja klar.
Kannst dich dann gerne hier wieder zurückmelden wie es gelaufen ist!
Muss ich mal schauen, würde schon einen einplanen, aber (noch) nicht für normale Nutzer empfehlen. Bin zz. aber leider gesundheitstechnisch angeschlagen (erst andere Krankheit + jetzt noch Covid).
Ja, eher BootMii, hab die beiden verwechselt.
Installation war erfolgreich. Bin zwar jetzt noch am schauen, wie ich das mache mit redNAND, aber normal kann ich damit schon aroma booten. Die autoboot config von minute hab ich noch nicht gesetzt, aber das sollte auch kein problem sein.
Für redNAND interessierte noch: Die SD Karte muss hiermit nocheinmal neu partitioniert werden, wobei alle daten darauf verloren gehen. Mal schauen, ob ich das noch zum laufen bekomme samt OTP-Redirection (wo noch nirgens was zu steht bisher)
Gute Besserung
Geht das auch mit dem digispark attiny85 Board?
Alles was USB-Emulation unterstützt. Einfach nachgucken, ausprobieren und zurückmelden.