Giusto per creare un po' di conoscenza...
Aprendo il CB_A della slim noterete una cosa: alla locazione 0x3B0 ci sono 00 00 00 00. Questo è l'epic fail della MS.
Questi 4 bytes indicano: 1° byte=tipo di console (sulle retail è 1), 2° byte: sequenza, 3°e 4°: sequenza autorizzata. Ecco come si calcola:
Esempio di fuseset:
FS02: 0000f00000000000
Bytes a 3B0= 01 07 50 (sulla mia xbox)
1) Contatore a 16. Si cerca la prima "f". In questo caso si trova da destra alla posizione 11. Si compara quindi 16-11 al byte di sequenza, in questo caso 7. Non è uguale. Quindi fallito il primo controllo.
2) Lo compara anche a 0 o minore, in questo caso era 5 quindi secondo controllo fallito.
3) Prende 5 ci sottrae 1 e shifta il 5 di 4, ottenendo 80 che è uguale a 50 esadecimale! Quindi passa questo check e infatti va correttamente avanti!
Sulle slim (FS02= f000000000000000):
1) Contatore a 16: la prima "f" è a 16 da destra. 16-16=0 byte di sequenza=0.. Bingo!
E voi direte, beh e se viene bruciato un fuse.. vediamo:
FS02=0f00000000000000
1) Contatore a 16: la prima "f" è a 15 da destra. 16-15=1 byte di sequenza=0 .. argh.. non va..
2) 1 non è uguale a 0... non va
3) 1 ci sottrae 1=0 shifta 0 di 0 ottenendo 0 che è uguale a 00 della sequenza autorizzata... Bingo!!
però se brucia due fs?
FS02=00f0000000000000
1) Contatore a 16: .... etc... 16-14=2 .. niente
2) 2<>0 Niente
3) 2 ci sottrae 1 shifta 1 di 1 che non è 0! Quindi blocco.
Ora io NON so se il CB_A contenga o meno il codice del controllo degli efuse. Se lo contiene e vengono bruciati due efuse fine RGH. Altrimenti EPIC FAIL. *** ORA SONO CERTO CHE IL CB_A NON LO FA PROPRIO***
Il porting del CB_A su fat... se il CB_A non contiene il codice del controllo degli efuse e non controlla il FUSE01 (tipo console!!) allora potrebbe essere... altrimenti nada. *** ORA SO CHE SI FARA' ***
Grazie per aver letto...
Segnalibri