Home Homebrew Rilasciato USB Descriptor Parsing Is Hard (UDPIH) v2

[Scena Wii U] Rilasciato USB Descriptor Parsing Is Hard (UDPIH) v2

541
0

Pubblicato un primo aggiornamento per USB Descriptor Parsing Is Hard (meglio noto come UDPIH), l’exploit elaborato dal developer GaryOderNichts sfrutta una svista nello stack host USB della console Wii U per eseguire codice all’avvio.

L’exploit utilizzato insieme al menu di ripristino ci permette di riparare i mattoni di Coldboot Haxchi o simili.

A partire da questa versione il programma si spegnerà qualora non sia possibile caricare il menu di ripristino dalla scheda SD. Tra l’altro ora i gadget supportano sia la modalità a piena velocità che quella ad alta velocità, per supportare più sistemi Linux.

Requisiti

  • Una console Wii U.
  • Un Raspberry Pi Pico o Zero.

[stextbox id=’info’]Nota: Potrebbe funzionare anche qualsiasi altro dispositivo Linux in grado di emulare un dispositivo USB. Le versioni predefinite sono disponibili solo per Pico e Zero. Verranno aggiunti altri dispositivi di seguito che sono confermati per funzionare.[/stextbox]

In particolare, questa è un’omissione nell’analisi dei descrittori USB. Con questi descrittori, i dispositivi USB saranno in grado di fornire varie informazioni su se stessi, ad esempio la versione USB, il fornitore e l’ID prodotto.

Innanzitutto, i descrittori del dispositivo vengono letti dallo stack host USB all’avvio; quindi seguono i descrittori di configurazione. Questi descrittori non hanno una dimensione fissa, è comunque possibile impostarlo all’interno di un determinato campo.

Inoltre, alcuni campi devono anche essere scambiati in byte, poiché sono disponibili solo in Little Endian, ma sono obbligatori in Big Endian.

Nintendo non è riuscita a verificare che la dimensione pubblicizzata corrisponda alla dimensione effettiva, consentendo uno scambio di byte “fuori limite”. Il post sul blog di GaryOderNichts spiega l’exploit più nel dettaglio.

Per sfruttare il bug, è necessario disporre di un dispositivo in grado di emulare dispositivi USB e quindi qualsiasi descrittore USB. I più popolari sono senza dubbio il Raspberry Pi Pico e il Raspberry Pi Zero, entrambi molto convenienti.

In breve, il Raspberry Pi Pico deve essere aggiornato, mentre nel Raspberry Pi Zero bisogna andare ad integrare un modulo del kernel.

Il menu di ripristino deve quindi essere posizionato sulla scheda SD della Wii U e il Raspberry Pi deve essere inserito all’avvio della console (in corrispondenza del logo “Wii U”).

Nel menu di ripristino, è possibile ripristinare il titolo di avvio a freddo nel menu della Wii U, scaricare OTP + SEEPROM, visualizzare il PIN del GamePad e molto altro.

Questo dovrebbe riportare in vita un certo numero di console Wii U che sono state bloccate da un uso improprio di Coldboot Haxchi.

Istruzioni

Raspberry Pi Pico

  • Scarica l’ultima versione del file udpih.uf2 da questo indirizzo.
  • Tenere premuto il pulsante BOOTSEL sulla scheda e collegare il Raspberry Pi Pico al PC.
  • Il PC rileverà il Raspberry Pi come dispositivo di archiviazione.
  • Copia il file .uf2 sul Raspberry Pi Pico. Si disconnetterà dopo pochi secondi.

Il Pico è ora flashato e può essere utilizzato per udpih. Continuare con il boot da Recovery Menu in basso.

Raspberry Pi Zero (Linux)

  • Installare le dipendenze richieste:

sudo apt install build-essential raspberrypi-kernel-headers

  • Clonare la repository:

git clone https://github.com/GaryOderNichts/udpih.git
cd udpih

  • Scaricare l’ultima versione del file arm_kernel.bin.h da questo indirizzo e copiarlo nella directory arm_kernel.
  • Costruire il modulo del kernel:

cd linux
make

  • Ora è possibile eseguire sudo insmod udpih.ko per inserire il modulo del kernel nel kernel.

Ora è possibile utilizzare il Raspberry Pi Zero con udpih. Nota che dovrai inserire nuovamente il modulo dopo aver riavviato il Raspberry. Avrai bisogno di 2 cavi USB, uno per alimentarlo e uno che può essere collegato alla console Wii U.

Nintendo Switch

  • Scaricare il payload su PC e iniettarlo sulla console Switch tramite Fusée Gelée, una volta fatto questo selezionare la voce “Run UDPIH gadget” premendo il tasto “POWER”.
  • Posizionare il menu di ripristino all’interno della scheda SD della console Wii U, accenderla, e appena vedrete apparire il logo Wii U, collegare la console Switch ad una delle porte USB anteriori della console.

Boot da Recovery Menu

[stextbox id=’alert’]Note importanti per farlo funzionare:

  • Assicurati che nessun altro dispositivo USB sia collegato alla console.
  • Utilizzare solo le porte USB sulla parte anteriore della console, le porte posteriori non funzioneranno.
  • Se la console ha la modalità standby abilitata, stacca la spina di alimentazione e accendila da uno stato di avvio a freddo completo.[/stextbox]
  • Copiare l’ultima versione di recovery_menu all’interno della scheda SD formattata FAT32.
  • Inserire la scheda SD nella console e accenderla.
  • Non appena si intravede il logo “Wii U” sulla TV o sul gamepad, collegare il dispositivo Zero/Pico.
    • Questo tempismo è importante. Se sei già nel menu, l’exploit non funzionerà..
  • Dopo alcuni secondi dovresti essere nel menu di ripristino.

Controllare il README del recovery_menu per maggiori informazioni su questo menu.

Changelog

  • La console ora si spegne se non è possibile caricare recovery_menu dalla scheda SD.
  • Il gadget ora supporta sia la modalità a piena velocità che quella ad alta velocità, per supportare più sistemi Linux.

Download: USB Descriptor Parsing Is Hard (UDPIH) v2 (arm_kernel.bin.h)

Download: USB Descriptor Parsing Is Hard (UDPIH) v2 (udpih.uf2)

Download: Source code USB Descriptor Parsing Is Hard (UDPIH) v2

Download: Recovery Menu v1

Download: Source code Recovery Menu v1

Fonte: wiidatabase.de