Discussione Aiuto Primo blocco M**ey CoXXs / CRC

KushMarco

Utente Bronze
9 Ottobre 2019
70
1
18
30
Salve a tutti da alcuni giorni sto avendo delle chiavi che danno errore CRC.
Ho provato a riscrivere un dump con nfc-st-srx ma il primo blocco che dovrebbe essere FF FF FF FF assume valori diversi ad ogni riscrittura, e comunque non mi lascia riportarlo a FF FF FF FF.
In cambio offro assistenza per chiavi bloccate a 99€ con data ff, o su come far funzionare il pn532 rosso.
 

Ciao,
come si evince dal datasheet, i primi 5 blocchi sono OTP resetable, quindi i bit possono andare da 1 a 0 per una sola volta, non potrà mai più tornare a 1, perchè la cella
di memoria viene bruciata.
Conclusione: si potranno scrivere valori più bassi di FF , e non più ripristinabili. anzi, ad essere più precisi, valori più bassi dell'ultimo scritto.
Quando sarà a 00 non si potrà fare più nulla.
 
Ultima modifica:
Ok ero rimasto al fatto che il blocco OTP fosse solo il sesto, in ogni caso fin che quel blocco non arriva completamente a 0 dovrebbe funzionare la chiavetta giusto?
The SRIX4K memory is organized in three areas, as described in Figure 12. The first area is a resettable OTP (one time programmable) area in which bits can only be switched from 1 to 0. Using a special command, it is possible to erase all bits of this area to 1.
Da quello che leggo dal datasheet i primi 5 blocchi (0 - 1 - 2 - 3 - 4) in qualche modo possono essere ripristinati ( o almeno io l'ho inteso così), a differenza dei blocchi 5 e 6 che sono contatori decrementali e quindi non sono modificabili.
 
Si, vero, leggendo bene il datasheet , è possibile ripristinare fino a 2047 volte.
Il sistema per il ripristino non è semplice, dipende dal gruppo di bit del blocco 6, che vanno dal bit 21 al bit 31, quando questi bit sono di un valore adeguato (non ho capito ancora quale) con il comando write_block e possibile ripristinare nelle aree da 0 a 4.
Penso , che visto che il blocco 6 decresce e basta, bisogna aspettare che arrivi ai valori idonei, prima di poter fare il reset.
Almeno questo ho capito io leggendo il datasheet
 
Salve.
Non è un'operazione difficile, e si divide in due passi:
- Aggiornamento del contatore di indirizzo 0x6 con una Write_block
- Aggiornamento dell'area OTP (Write_block per ciascuna cella da 0x0 a 0x4 con valore FFFFFFFF).

Bisogna fare in modo che venga aggiornato almeno un bit tra il 21° e il 31° del contatore di indirizo 0x6, ricordando che in questo tipo di tag il bit più significativo è quello più a destra (quindi in 1234ABCD il byte D è quello che descrive i bit dal 28° al 21°).
Questo significa che ad aggiornare il contatore ci si brasa diverse migliaia di letture, ma non dovrebbe fregartene (chiaro se aggiorni il contatore al 21° bit il danno è minore che aggiornarlo al 31°).
Tuttavia, aggiornato una volta, il tag ti permetterà di resettare tutti gli OTP.
Per aggiornare gli OTP devi fare una Write_block su ogni registro da 0x0 a 0x4 con i valore FFFFFFFF.

ATTENZIONE: Non rimuovere la chiavetta dopo aver fatto l'aggiornamento al contatore, il diritto di scrittura sui campi OTP te lo da solo finché la chiavetta è connessa

Un esempio della procedura è
1) Write_block sul contatore di indirizzo 0x6
Se il valore attuale è, ad esempio
F4FFFFFF
Allora per limitare i danni potresti fare una write del tipo
09 06 F4FFFBFF
(09 è il comando Write_block, 06 è il registro di destinazione di scrittura, F4FFFBFF è il nuovo valore del contatore, decrementato di 1 al 21° bit)

2) Aggiornamento dell'area OTP

I comandi da eseguire in sequenza sono
09 00 FFFFFFFF
09 01 FFFFFFFF
09 02 FFFFFFFF
09 03 FFFFFFFF
09 04 FFFFFFFF

Spero di essere stato chiaro.
A presto.
 
  • Mi piace
Reazioni: genzoh