News

Zelda savegame stack overflow: codice unsigned su Wii

Console tribe news - Zelda savegame stack overflow: codice unsigned su Wii

di: p4m

Il 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)