我的问题是,我使用Arduino上的“读和写”示例来逐块重写RFID卡(MIFARE经典1K)。我开始写第4块,在第7块,它停止了,现在我不能读任何扇区。我给每个街区都写了零。
DumpToSerial函数只为每个扇区打印
PCD_Authenticate()失败:通信中的超时。
它仍然可以读取UID、SAK和PICC类型。
是我毁了这张卡还是我能找回它?
更多信息:
发布于 2017-08-21 11:36:53
使用MIFARE经典1K,每4块是扇形拖车(每4块被分成一个区)。扇区拖车包含扇区的访问密钥(字节0..5上的键A,字节10.15上的键B)和访问条件(字节6.8上的访问位)。
访问条件由冗余机制保护,其中每个访问位在正负逻辑中多次出现。MIFARE经典卡允许用无效值(访问位的不可能组合)覆盖这些访问条件。但是,一旦访问条件设置为这样一个无效的值,芯片的安全逻辑将禁用对wole扇区的所有访问。因此,将无效的访问条件写入扇区预告片会使整个扇区无法使用。此状态为永久状态,不能还原。
你用全零写了从第4块开始的所有块。因此,您编写了扇区1的扇区预告片(在第7块中),访问条件设置为所有-零。这是访问条件的无效值。因此,第1区永远无法使用。由于您表示您在编写第7块后立即收到错误,您可能很幸运,没有覆盖其他扇区拖车(例如,第2区的第11项)。在这种情况下,这些其他部门仍然可以使用。同样,由于您开始编写第4块,第一个扇区(扇区0,块0..3)也应该是可访问的。
https://stackoverflow.com/questions/45745936
复制相似问题