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.