Zelda savegame stack overflow: codice unsigned su Wii
Console tribe news - Zelda savegame stack overflow: codice unsigned su Wii
di: p4mIl lavoro congiunto di segher e bushing ha permesso, nelle ultime ore, l’esecuzione di alcune linee di codice assembly unsigned (in parole semplici: codice proprio e non verificato) in Wii mode.
La tecnica utilizzata implica la modifica del file di salvataggio di Zelda Twilight Princess in modo tale da generare un buffer overflow / stack smash nella memoria in uso dalla console.
Ciò è stato possibile anche grazie all’evolversi dell’opera di reverse engineering sul sistema di protezione del Wii.
A tale proposito bushing riporta gli ingredienti necessari:
Once the Wii decrypts the save game, it checks its signature. Every Wii has its own private key which is used to sign save games, and when you save a game, the Wii actually saves three bits of data:
- The encrypted save game
- The signature for the save game (using your console’s private key)
- A copy of your console’s public key, signed by Nintendo
La ricerca e l’utilizzo delle chiavi necessarie per fare in modo che il Wii validi e permetta al salvataggio modificato di essere caricato nel gioco è un “tantino” oltre le possibilità di un normale user, ma bushing stesso rende nota la buona intenzione di rilasciare un homebrew loader dal lavoro fatto:
Assuming we don’t run into a wall, it should be able to lead to a homebrew loader. I hope. No promises. 🙂
Alcuni screenshots mostrano il caricamento del savegame modificato, l’ eccezione generata e un dump della memoria che mostra il codice iniettato in esecuzione (PowerPC assembly):
History in the making, right here.
8054f8e0: 3e 80 34 56 lis r20,0x3456
8054f8e4: 82 b4 77 88 lwz r21,0x7788(r20)