Originariamente Scritto da
freelancer
Ma precisamente qual'è il tuo scopo? Capire come funziona il glitch o cercare di migliorarlo?
Nel primo caso, il funzionamento del glitch è estremamente semplice, al punto da risultare quasi banale. Inviando un impulso di reset alla CPU (ossia un reset molto breve) si possono azzerare parzialmente i registri della CPU (in particolare il registro delle condizioni) senza far ripartire il program counter. Il risultato è che un test che normalmente fallirebbe per via della mancata autenticazione non fallisce e codice non firmato viene eseguito. Quindi in sostanza devi abbassare il reset (che è attivo-basso) al momento opportuno. Se cerchi nella sezione reversing di questo forum c'è un vecchio post sul DGX, nella prima parte è spiegato con un po' più di dettagli.
Nel secondo caso la cosa è più complicata. Ci sono varie teorie sui possibili miglioramenti del glitch, ma si parte dal presupposto che bisogna abbandonare il coolrunner II, muoversi su hardware più avanzato e considerare il lato "analogico" del problema. In particolare si potrebbe aggiungere un processore/microcontrollore che implementi qualche algoritmo tipo "learning" per adattare il timing alla particolare console, magari interfacciandosi via usb. Oppure mettendo ad esempio un potenziometro digitale in serie al condensatore si portebbe variare la frequenza di taglio di quel filtro utilizzando il codice che gira sul processore, o eventualmente terminare correttamente la linea per evitare problemi di ringing. Oppure utilizzando un FPGA si potrebbe far salire la frequenza di clock del chip fino ad 800MHz e vedere di nascosto l'effetto che fa
Ovviamente per queste prove sarebe bene disporre di un oscilloscopio.
Segnalibri