HomeForum
Best View on: Firefox Chrome Opera Edge

[INFO] Comprendere la sequenza di avvio della Wii

QUESTO POST TI E/' PIACIUTO? DILLO A TUTTI I TUOI AMICI!

Condividi su Facebook Facebook Condividi su Twitter Twitter Condividi su Orkut Orkut Condividi su MySpace MySpace Condividi su Delicious Delicious Condividi su Technorati Technorati
Avatar utente
Wii User
Wii User
    Windows XP Firefox
Messaggi: 310
Iscritto il: 08/01/2011, 15:52
Grz inviati: 4 volte
Grz ricevuti: 103 volte
Sesso:
Comprendere la sequenza di avvio della Wii
by IceEyes

Premessa:
Qualche giorno fa mi sono trovato nel bel mezzo di una discussione con un mio amico e mi sono reso conto che, pur essendo abbastanza ferrato sulla gestione degli homebrew e degli IOS, non aveva ben chiaro quale fosse l’esatta sequenza della procedura di avvio di una Wii.
Ho iniziato a spiegarglielo, ma mi sono reso subito conto che usare termini strettamente tecnici non avrebbe portato a nulla di buono per cui ho cercato di usare terminologia ed esempi, diciamo “poco ortodossi” o per meglio dire “terra terra”. Alla fine, almeno apparentemente, credo di avere ottenuto il risultato voluto…
Premesso questo, rendo partecipi tutti quelli del forum che si trovano nella stessa condizione del mio amico e mi scuso nuovamente per il linguaggio, sicuramente (ma volutamente) poco tecnico.

Introduzione:
La wii, come tutte le console, ha un “software” interno che ne consente l’inizializzazione dell’hardware, cioè la configurazione per l’uso dei componenti esterni (periferiche usb, controller, ecc…) e la gestione del sistema operativo vero e proprio.
Gli IOS, per chi non lo sapesse, non sono altro che parte di questo “software” e consentono l’input e l’output dei dati rispettivamente verso e dalla console. Detto in parole povere, gli IOS consentono di usare il wiimote, di usare gli hard disk o i microfoni, consentono di gestire il sistema operativo, ecc… i cIOS sono versioni modificate di questi IOS e aggiungono funzioni supplementari agli IOS originali (ad esempio il cIOSx di Waninkoko e i cIOS di Hermes).

Il boot della Wii:
Per boot della wii si intende l’insieme di procedure che consentono l’avvio della console. Il boot è suddiviso in tre parti: il boot0, il boot1 ed infine il famoso boot2, di cui tutti hanno capito l’importanza, ma pochi hanno capito perché.

Boot0
Il boot0 è una parte di codice che risiede dentro ad un chip chiamato Hollywood ed è la prima cosa che viene eseguita quando accendiamo la wii. E’ stato impostato in fabbrica in modo che possa essere letto ma non sovrascritto e la sua funzione principale è quella di inizializzare il sistema.

Boot1
Il boot0 carica il boot1, che si trova nella parte iniziale della NAND (software interno alla wii), lo decripta (lo rende leggibile) e lo esegue. Il boot1 a differenza del boot0 è modificabile, è scritto cioè su una memoria accessibile sia in lettura che in scrittura, ma la sua modifica comporta la morte della wii in quanto il boot0, se il boot1 viene modificato, “se ne accorge” e blocca la procedura di avvio della console.

Boot2
Il boot1 carica il boot2, che si trova in una parte della NAND indipendente dal sistema operativo, lo decripta (lo rende leggibile) e lo esegue. Il boot2 quindi è scritto anch’esso su una parte di memoria accessibile sia in lettura che in scrittura ed è su questo che noi agiamo, quando possibile, per “manomettere” l’avvio della wii.

Perché hai detto: “quando possibile”? Mi ha chiesto l’amico.
E’ presto detto: come avviene per il boot0, che si accorge se il boot1 è stato “taroccato”, anche il boot1 si accorge se il boot2 è stato “taroccato”, ma in alcuni casi (a seconda della versione del boot1) noi possiamo far credere al boot1 che il boot2 non è stato modificato, ma che è ancora quello originale della Nintendo. Questo è possibile tramite un bug (“errore”) nel codice del boot1, chiamato trucha bug, che ci consente, come ho detto, di “aggirare” il controllo dell’autenticità del boot2 (a questo punto all’amico fumavano le orecchie, ma credo avesse capito, più o meno… : Chessygrin : ).

Le versioni che consentono di modificare il boot2, senza che la wii s’inchiodi (per i motivi appena detti), sono:
Il boot1a, presente nelle Wii più vecchie e poco comune;
Il boot1b, presente nelle maggior parte delle Wii più vecchie dal momento del lancio della console sul mercato.

Le versioni che NON consentono di modificare il boot2, perché è stato corretto il bug per la verifica della firma, invece sono:
Il boot1c, prima versione (sembra sia stato usato per la prima volta nel 2008);
Il boot1d, relativamente recente.

Cosa facciamo in pratica: andiamo a modificare il boot2 installando un software che si chiama BootMii che ci consente di:
  1. Ingannare il boot1, in modo che questo non si accorga che la sequenza di avvio è stata modificata;
  2. Avviare, se richiesto, il codice del BootMii (con cui possiamo gestire la NAND o avviare l’Homebrew Channel);
  3. Avviare il sistema operativo originale della wii.

“Ma cosa facciamo se il boot1 non è del tipo a o b?”, mi ha chiesto l’amico.
Beh!!! In quel caso, purtroppo per noi, abbiamo un’unica possibilità e cioè installare il BootMii come IOS aggiuntivo che, in quanto tale, non ci protegge in modo totale dai brick della Wii, come avviene se installato nel boot2, ma ci consente comunque di gestire la NAND (ad esempio per farne un backup per eventuali ripristini futuri).

Riassumendo:
Il boot1, del tipo a e b, è affetto dal trucha bug e quindi è possibile modificare il boot2 a piacimento in modo da avviare un nostro codice (BootMii o in teoria qualunque altra cosa) prima dell’avvio del sistema operativo. Questo significa che, se facciamo casini sugli IOS o installiamo wad corrotti, abbiamo la possibilità di ripristinare il tutto avviando gli homebrew adeguati al ripristino.
Il boot1, del tipo c e d, NON è affetto dal trucha bug, per cui non possiamo modificare il boot2 senza che la wii si blocchi in fase di avvio (brick). In questo caso possiamo installare il BootMii esclusivamente come IOS aggiuntivo, che dovrà essere avviato tramite altro software (ad esempio l’HomeBrew Channel).
E’ importante ripetere che il BootMii installato come IOS non fornisce alcuna protezione dai brick, per cui è essenziale installare altri programmi (ad esempio il PriiLoader) che seppur non come il BootMii su boot2 (che ripeto, fornisce una copertura quasi totale) consentono di avviare le procedure per il recupero, prima dell’avvio del sistema operativo. In questo caso però, se ci sono danni all’IOS del sistema operativo stesso… o usiamo la wii come fermacarte oppure la mandiamo in assistenza!!! : Wink :

Conclusione:
Un modo per capire la versione del boot1 sembra essere quello di leggere il "date code" sul chip Hollywood interno alla console. Se questo risulta essere inferiore a 0830 allora molto probabilmente la Wii contiene un boot1a o un boot1b.
Per chi, come è comprensibile, non vuole smontare la wii, esiste un software che si chiama WiiNand. Questo software ci mostra la versione del boot1 e le varie keys (chiavi di codifica, ecc..) incluse nella NAND. La versione 0.2 (l’ultima), sembra avere problemi con il riconoscimento delle versioni superiori alla 1b ma in quel caso sapremmo in automatico che si tratta di boot1 senza trucha bug. Esistono ovviamente metodi più complicati per essere sicuri via software di che tipo di boot1 si ha nella propria Wii, ma qui andremmo a finire troppo sul complicato (uno di questi è la lettura tramite editor esadecimale del backup della nand…)

Note:
Questo post non è finalizzato alla risoluzione dei problemi che possono insorgere durante l’avvio della wii, per questo ci sono le apposite guide e il forum. Serve invece a rendere più chiaro cosa andiamo a modificare nella sequenza di avvio della wii quando installiamo una softmod e a chiarire l’importanza del BootMii come Boot2 e del PriiLoader se il BootMii viene installato come IOS aggiuntivo.

Spero di essere stato d’aiuto. Se il post è di vostro gradimento, fatemelo sapere. Un : Thanks : è sempre gradito!!!

Guide di riferimento:
Registrati o effettua il Login per visualizzare il link!.
Registrati o effettua il Login per visualizzare il link!.
Registrati o effettua il Login per visualizzare il link!.

AVVISO
LA GUIDA E' STATA REDATTA DAL SOTTOSCRITTO , QUINDI E' ASSOLUTAMENTE VIETATA LA COPIA PARZIALE O TOTALE DEL CONTENUTO, SALVO PREVIA AUTORIZZAZIONE DELLO STAFF DI HACKWII.IT
System Menu 4.2E - Priiloader 0.6
HBC 1.08 su IOS58 (6176) - HackWiiFlow - CFG USB Loader - WiiExplorer - WiiMC
cIOSX rev21 d2x - cIOS HERMES rev5.1

Le mie guide:
Far comprendere la sequenza di avvio della wii ai meno esperti
BootMii e backup della NAND

Per questo messaggio l' autore IceEyes ha ricevuto 28 "Thanks":
Actar (27/04/2011, 21:18) • engy65 (05/04/2011, 22:39) • fabaf (24/03/2011, 12:19) • hpbrio (11/02/2012, 20:39) • marinaio67 (08/04/2011, 19:17) • ModMii (06/05/2011, 16:50) • pablo131057 (13/04/2011, 23:58) • RXSlore (02/08/2011, 22:36) • zanzarina287 (28/03/2011, 9:02) • zui (25/07/2011, 9:57) e ancora 18 utenti
Rating: 7.22%
 
Avatar a caso
Noob User
Noob User
    Windows 7 Firefox
Messaggi: 2
Iscritto il: 19/04/2011, 21:54
Grz inviati: 0 volte
Grz ricevuti: 0 volte
Sesso:
Finalmente comincio a capirci qualcosa, grazie
Avatar utente
Wii User
Wii User
    Ubuntu Firefox
Messaggi: 107
Iscritto il: 31/05/2010, 14:42
Grz inviati: 14 volte
Grz ricevuti: 6 volte
ottima guida, solo una cosa: mi pare che il bug dei boot1a e b non sia il trucha bug, quello è un altro, mi pare che quel bug si chiami "strncmp"
NON accetto mp per aiuto. scrivete in Aiuto e Richieste
Wii 4.2 bianca brick full con Bootmii as IOS,, cIOS38 rev18 slot 249 by Waninoko, cIOS 202/222/223/224 v5 by Hermes, NeoGamma r9 b44, SNEEK, Backup della nand, cMIOSv5,e Wode Jukebox
Immagine
avatar by snuntipook
Immagine<--- by snuntipook
Avatar utente
Wii User
Wii User
    Windows XP Firefox
Messaggi: 310
Iscritto il: 08/01/2011, 15:52
Grz inviati: 4 volte
Grz ricevuti: 103 volte
Sesso:
Stai facendo un po' di confusione.
Quella funzione a cui ti riferisci serve a comparare due stringhe ed è su quella funzione che si basa il trucha bug.

Mi spiego meglio: quella funzione causa il bug, ma il bug stesso ha preso il nome di trucha bug...

Ho evitato di trattare questo argomento perchè presume la conoscenza di nozioni di programmazione, ma funziona più o meno così:
Prima che i dati vengano eseguiti, la wii usa una funzione matematica che restituisce un numero noto come hash. Questo numero viene caricato in memoria e confrontato, tramite la funzione strncmp, con un altro numero nella firma dei dati (signature). Se i due numeri sono uguali, i dati vengono eseguiti.
La funzione strncmp compara i due valori in memoria come se fossero due stringhe, byte per byte fino al raggiungimento della fine identificata con un byte nullo (valore 0). In pratica quando la funzione trova il byte nullo sa di aver raggiunto la fine della stringa da confrontare e se la parte precedente allo 0 è uguale allora le stringhe vengono considerate uguali.
Il trucco consiste nel trovare una firma valida lunga un solo byte, impostando il secondo a 0. Poichè un byte può assumere 256 valori diversi, per trovare una firma fasulla (fake signature) si possono facilmente provare tutte le 256 combinazioni. Cosa che può essere fatta in pochissimi centesimi di secondo....
System Menu 4.2E - Priiloader 0.6
HBC 1.08 su IOS58 (6176) - HackWiiFlow - CFG USB Loader - WiiExplorer - WiiMC
cIOSX rev21 d2x - cIOS HERMES rev5.1

Le mie guide:
Far comprendere la sequenza di avvio della wii ai meno esperti
BootMii e backup della NAND

Per questo messaggio l' autore IceEyes ha ricevuto un "Thanks" da
ModMii (06/05/2011, 16:50)
Rating: 0.26%
 
Avatar a caso
Noob User
Noob User
    Windows XP Firefox
Messaggi: 12
Iscritto il: 06/05/2011, 16:44
Grz inviati: 7 volte
Grz ricevuti: 1 volte
Sesso:
Finalmente ho trovato un forum dove quelli più esperti parlano chiaro e non danno tutto per scontato. Grazie IceEyes, sei un grande!!!!
Avatar utente
Wii User
Wii User
    Windows XP Firefox
Messaggi: 310
Iscritto il: 08/01/2011, 15:52
Grz inviati: 4 volte
Grz ricevuti: 103 volte
Sesso:
Sei hai bisogno, sono a tua disposizione.
System Menu 4.2E - Priiloader 0.6
HBC 1.08 su IOS58 (6176) - HackWiiFlow - CFG USB Loader - WiiExplorer - WiiMC
cIOSX rev21 d2x - cIOS HERMES rev5.1

Le mie guide:
Far comprendere la sequenza di avvio della wii ai meno esperti
BootMii e backup della NAND

Per questo messaggio l' autore IceEyes ha ricevuto un "Thanks" da
crix.crix (27/05/2011, 23:16)
Rating: 0.26%
 
Avatar a caso
Noob User
Noob User
    Windows XP Chrome
Messaggi: 2
Iscritto il: 27/05/2011, 22:28
Grz inviati: 2 volte
Grz ricevuti: 0 volte
Sesso:
Salve a tutti, ho letto la tua guida, e finalmente dopo tanto girovagare per la rete, ho trovato qualche cosa di serio e leggibile!
Ho capito abbastanza bene il funzionamento della boot..
però non riesco a capire bene una cosa... aiutatemi per favore, una volta eseguita la modifica la wii è riportabile diciamo.. a default, cioè "in originale", se ho capito bene si, perchè il software si carica ad ogni avvio wii ??
Grazie per la pazienza
: Blink :
Avatar utente
Wii User
Wii User
    Windows XP Firefox
Messaggi: 310
Iscritto il: 08/01/2011, 15:52
Grz inviati: 4 volte
Grz ricevuti: 103 volte
Sesso:
Dopo aver installato l'Homebrew Channel e BootMii tramite l'hackmii installer, normalmente (i più smaliziati lo fanno) si esegue il backup della nand. Tramite il ripristino della nand, la wii può essere riportata allo stato in cui si trovava in quel momento. Dopo aver fatto questo, ovviamente, si elimina anche l'Homebrew Channel e BootMii e la Wii torna esattamente allo stato "vergine". Alcuni dicono che dopo queste procedure è meglio anche riformattare la Wii e in effetti io lo faccio, ma non è strettamente indispensabile...
Leggi Registrati o effettua il Login per visualizzare il link!. guida, potrebbe esserti utile.

P.S.: Sul forum trovi guide specifiche che ti spiegano come riportare la Wii allo stato "vergine" anche senza avere il backup della Nand. : Wink :
System Menu 4.2E - Priiloader 0.6
HBC 1.08 su IOS58 (6176) - HackWiiFlow - CFG USB Loader - WiiExplorer - WiiMC
cIOSX rev21 d2x - cIOS HERMES rev5.1

Le mie guide:
Far comprendere la sequenza di avvio della wii ai meno esperti
BootMii e backup della NAND

Per questo messaggio l' autore IceEyes ha ricevuto un "Thanks" da
crix.crix (29/05/2011, 14:37)
Rating: 0.26%
 
Avatar utente
Noob User
Noob User
    Windows 7 Firefox
Messaggi: 18
Iscritto il: 17/06/2011, 11:42
Grz inviati: 5 volte
Grz ricevuti: 0 volte
Sesso:
Una domanda da ignorante: Ma se ho la wii vergine acquistata nel 2008 e aggiornata a 4.3E, si è aggiornato anche il boot1 eliminando il trucha bug?? Così mi regolo per la modifica che mi sto apprestando a fare... : Chessygrin :
Avatar utente
Developer
Developer
    Windows 7 Chrome
Messaggi: 366
Iscritto il: 16/02/2010, 9:46
Grz inviati: 15 volte
Grz ricevuti: 78 volte
A quanto mi risulta il boot1 non può assolutamente essere riscritto...tanto è vero che ios e robe varie stanno nel boot2 : WinK :
Se non ricordo male viene scritto solo una volta dalla Nintendo e non può più essere riscritto...
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Chrome
Messaggi: 7160
Iscritto il: 10/01/2010, 18:52
Località: Sassari
Grz inviati: 163 volte
Grz ricevuti: 791 volte
Sesso:
Ricky ha scritto:A quanto mi risulta il boot1 non può assolutamente essere riscritto...tanto è vero che ios e robe varie stanno nel boot2 : WinK :
Se non ricordo male viene scritto solo una volta dalla Nintendo e non può più essere riscritto...

IOS sta nel chip Starlet, e boot1 come hai detto non può essere riscritto
QUI TROVERETE I LINK DEI GIOCHI PER WII!!!

Lista completa delle guide


ImmagineImmagine
http://www.pikky.net/images/1251107544107.gif
http://i40.tinypic.com/2zovpl1.gif

http://img828.imageshack.us/img828/1003/hni0027h.jpg

Immagine
Se uno vuole aiutare lo fa perchè vuole farlo non solo per ricevere un thanks.
Immagine
Avatar utente
Moderatore
Moderatore
    Windows XP Firefox
Messaggi: 7168
Iscritto il: 12/01/2010, 14:00
Grz inviati: 373 volte
Grz ricevuti: 2727 volte
In realtà boot1, boot2, ios e system menu risiedono fisicamente tutti sulla nand.
Solo che:
- boot 1 è nel blocco 0 della nand e viene eseguito sull'ARM
- boot 2 è nei blocchi 1-7 della nand e viene eseguito sull'ARM
- ios può essere in qualunque blocco e viene eseguito sull'ARM
- system menu può essere in qualunque blocco e viene eseguito sul PPC

dove il processore ARM è noto come Starlet e il processore PowerPC come Broadway.

Il boot 0 invece risiede in una rom sull'ARM ed è eseguito dal medesimo.

Quindi l'unico realmente non scrivibile è il boot0.
Il boot1 invece è tecnicamente scrivibile ma viene verificato dal boot0 e se la firma non torna la sequenza di boot viene abortita.
Anche il boot2 è tecnicamente scrivibile ma viene verificato dal boot1 e come prima se la firma non torna il boot viene segato. Questo spiega perchè solo i vecchi boot1 con trucha bug permettono il caricamento di un boot2 alterato.

Indice delle Guide di Hackwii per categorie


Immagine
L'angolo delle... (C) (A) (Z) (Z) (Agc)Immagine
Immagine

Le idee sono come le tette: se non sono abbastanza grandi si possono sempre gonfiare.

La vita è come la scaletta del pollaio: corta corta e piena di merda.

Per questo messaggio l' autore davebaol ha ricevuto un "Thanks" da
zui (19/08/2011, 21:02)
Rating: 0.26%
 
Avatar utente
Noob (active) User
Noob (active) User
    Windows 7 Firefox
Messaggi: 38
Iscritto il: 07/12/2010, 22:38
Località: Svizzerlandia
Grz inviati: 32 volte
Grz ricevuti: 3 volte
Sesso:
Grazie mille per la chiarissima spiegazione : Wink :
Una curiosità a questo punto (scusate il linguaggio poco tecnico): ma il boot0 anche a livello di hardware riesiede in una "zona" separata? Se sÌ IN TEORIA sarebbe possibile "prenderlo" da una wii "vecchia" e, insieme a un "Boh" dove risiede il boot1 di quelli vecchi col bug e quindi poter modificare il boot2 su una nuova Wii?


EDIT: ok,l'ho riletto e non c'ho capito nulla o meglio, credo che mi sto rispondendo (se è giusto): sarà impossibile perché la NAND sarà unica (keys.bin) x ogni Wii?

Mettiamola così: la NAND della wii a livello hardware è un chip solo o diversi? se lo stacco fisicamente da una wii e lo saldo su un altra, si può programmare tipo con infectus?


Scusate se approfitto della vostra conoscenza, ma sono curioso e sulla Wii non ne so tantissimo, ma mi va di strusarci un po' : Blink : : Lol : : Lol : : Lol :
My Wii: 4.3e bianca # Lettore non antimod # Bootmii as Ios # Hbc 1.0.8 (IOS58) # Priiloader 0.7 (r137) # cIOSx Rev21 d2x v6 (247<37> | 248<38> | 249<56> | 250<57> | 251<58>) - cIOS Hermes v5.1 (202|222|223|224) # HackWiiFlow v2.0 r56.3 # Pimp my wii v2.24 # Neogamma r9 b44
Venflon is the i/v way : Nurse :
Spoiler: Mostra
Immagine

Immagine

Sponsor

Sponsor
 


Torna a Wii Hacking

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron