www.dedoshop.com
Risultati da 1 a 4 di 4
Like Tree12Likes
  • 12 Post By carloss

Discussione: Winbond unlock di geremia, analisi tecnica

  1. #1
    Open Member L'avatar di carloss
    Data Registrazione
    Jul 2011
    Località
    Altamura(BA)
    Messaggi
    997

    Winbond unlock di geremia, analisi tecnica

    Il winbond unlock di Geremia è un hack che attraverso un tool e un intervento hardware da effettuare sul chip MT è in grado di sbloccare i lettori liteon 0225, 0272 e 0401 con flash Winbond.

    Il tool si chiama unlockSPI.exe e qui trovate la guida pratica per usarlo.
    Leggendo la guida avrete capito che affinchè il tool funzioni bisogna forare il chip MT fino a tagliare un collegamento interno.

    Cerchiamo di capire perchè tagliare quella pista interna e cosa fa il software.

    NB: L'articolo è puramente indicativo e le informazioni sono state tratte dai datasheet della STMicroelectronics.


    Status Register

    Le flash winbond sono dotate di uno status register di 8 bit. Ogni bit ha un determinato scopo e in base al loro settaggio possono essere attivati due tipi di blocchi della memoria, uno software e uno hardware.

    La struttura dello status register è la seguente

    Winbond unlock di geremia, analisi tecnica-statusregister.jpg


    Write in Progress Bit e Write Enable Bit

    Il bit b0 Write in Progress Bit (WIP) se settato a 1 indica che è in corso un operazione di scrittura bloccando temporaneamente altre operazioni sulla flash.
    Il bit b1 Write Enable Latch Bit (WEL) viene settato dall'istruzione Write Enable che deve precedere ogni istruzione di scrittura o cancellazione. Se il bit WEL non equivale a 1 ogni operazione di scrittura o cancellazione viene inibita.
    Questi due bit sono di tipo volatile e vengono resettati ad ogni riavvio o ad ogni completamento di un operazione di scrittura o cancellazione.

    WIP e WEL non hanno molto a che vedere con l'hack di geremia ma servono più che altro ad una corretta gestione della flash per evitare errori di sovrascrittura mentre sono in corso altre operazioni.


    Protezione software

    La protezione software viene attivata settando gli indici b2 e b3 dello StatusRegister. Questi due bit chiamati BP0 e BP1 (Block Protection Bits ) sono di tipo non volatile e hanno lo scopo di bloccare via software i banchi di memoria della flash in sola lettura.
    Prima di essere effettuata una qualsiasi operazione di scrittura o cancellazione vengono controllati questi due bit e a seconda di come sono settati viene consentita o meno la scrittura dei banchi di memoria.

    Le combinazioni che ci interessano sono due:

    Winbond unlock di geremia, analisi tecnica-tabella.jpg

    Per i settaggi [BP0=0, BP1=1] e [BP0=1, BP1=0] dovrebbero essere abilitati i permessi di scrittura solo su due banchi, ma non ho dati certi. Poco importa,il firmware occupa 4 banchi di memoria, ci interessano solo le combinazioni mostrate nella tabella.

    Dalla tabella si può osservare che se i bit BP0 e BP1 sono settati entrambi a 1 la flash è bloccata in sola lettura. E' il caso specifico dei lettori 0225, 0272 e 0401 su cui è possibile solo leggere il firmware e non scriverlo. Per sbloccare la flash si devono cambiare i valori di questi due bit in 0. ma purtroppo questa operazione non è consentita a causa di un'ulteriore protezione hardware.


    Protezione hardware

    La protezione hardware viene attivata dalla combinazione del segnale Write Protect (W) e dal bit Status Register Write Disable (SRWD) dello status register. La protezione hardware blocca qualsiasi modifica ai bit non volatili dello Status Register (SRWD-BP0-BP1).

    Winbond unlock di geremia, analisi tecnica-hardware.jpg

    Dalla figura si può intuire il funzionamento. Il segnale Write Protect viene negato e confrontato attraverso una porta AND con il bit SRWD. La protezione hardware viene attivata esclusivamente quando SRWD viene settato a 1 e W si trova allo stato logico basso ( collegato a GND ).

    Nei lettori xbox360 bloccati il pin Write Protect della SPI flash è collegato a GND e lo status register è così configurato: 10001100 ( 0x8C )

    Winbond unlock di geremia, analisi tecnica-statusregister0225.jpg

    I bit BP0 e BP1 settati a 1 bloccano i banchi di memoria in sola lettura mentre il bit SRWD=1 con il pin W= 0 non consentono di modificare lo Status Register.

    Per sbloccare lo status register e modificare i bit BP0 e BP1 basterebbe portare il pin Write Protect allo stato logico 1. Purtroppo non è così semplice farlo in quanto W è collegato internamente a GND ed è quindi perennemente tenuto allo stato logico 0 senza nessuna possibilità di modificarlo.


    Hack di Geremia

    Come detto lo status register delle SPI flash dei lettori xbox360 è configurato come 10001100 e il pin Write Protect è collegato internamente a GND.
    L'hack di geremia consiste nel lanciare il programma unlockSPI (che prova di continuo a modificare i bit dello status register e a controllarne i valori) e nell'interrompere il collegamento a massa del pin Write Protect portandolo allo stato logico 1 attraverso la punta del dremel che a sua volta è collegata a una tensione di 3,3V.
    Appena il pin W viene portato allo stato logico 1 la protezione hardware viene disabilitata e il programma di geremia modifica lo Status Register che assume il valore 00000000.
    A questo punto tutti i bit di stato sono settati a 0 e sia la protezione hardware che software vengono disabilitate. Anche se il pin W rimane scollegato e quindi allo stato logico 0 si potranno ancora modificare i bit dello status register in quanto il bit SRWD è settato a 0.

    Per poter riabilitare le protezioni hardware e software bisogna riscrivere il valore 10001100 (0x8C) nello Status Register.
    Ultima modifica di carloss; 06-08-11 alle 20: 29

  2. #2
    Open Member L'avatar di brundu
    Data Registrazione
    Jul 2011
    Località
    pordenone
    Messaggi
    696

    ottima spiegazione Thanks
    xbox360 slim rgh freeboot 15574+led rol blu + hd 500gb

  3. #3
    Agent Provocateur
    Data Registrazione
    Jul 2011
    Messaggi
    47
    Perfetto, semplice, preciso, tecnico, inequivocabile, abbiamo un 2, un +, un altro 2, un = e un 4 di risultato.

    Avevo sentito dire però di gente che si agganciava con una interfaccia jtag spi (tanto è la solita cosa no?) a certi pin, e riusciva quasi a leggere e scrivere parte del fw con un 486 olivetti®, bah!

    Credo che questa tua spiegazione possa togliere ogni ragionevole dubbio

  4. #4
    God L'avatar di Titty
    Data Registrazione
    Jul 2011
    Messaggi
    7,087
    Come tutti i tutorial Chiudo.

    Bravo, bella spiegazione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  

realizzazione siti internet ed e-commerce mugello

elettricista barberino di mugello />
</a>
</div>

<div id=