我错误地覆盖了我的一个Mifare经典1k标签的第1区块7.它用于测试,我在块7上写的16字节数据如下所示:
0xaa 0xaa 0xaa 0xaa 0xbb 0xbb 0xbb 0xbb 0xcc 0xcc 0xcc 0xcc 0xdd 0xdd 0xdd 0xdd
如果没有弄错,通过这样做,我的访问键和权限位变为如下:
0xaa 0xaa 0xaa 0xaa 0xbb 0xbb0xcc 0xcc 0xdd 0xdd 0xdd 0xdd0xbb 0xbb 0xcc我曾尝试使用Key-A与Key-B如上所示读/写block 7在sector 1.但我不再能够访问(不读或写)任何块sector 1了.
我知道所有其他扇区(例如sector 0和sectors 2-15)的密钥,并且能够访问它们.
考虑到这种情况,我想知道是否有任何方法可以重置sector 1或block 7重新获得访问权限.非常感谢.
更新:
我已经确认如上所示的Key-A和Key-B都是正确的,我可以使用它们对卡进行身份验证.另外,根据Mifare Classic规范(屏幕截图),我的访问位如下:
Byte 6 = 0xbb = 0b10111011 …
我想要实现的是将APDU命令发送到MIFARE Classic 1K卡以更改其A和B键.
我能够与卡建立连接并使用默认密钥(FFFFFFFFFFFF)来读取块0和块1.我使用了HID MifareSamples应用程序.
现在,我想将A键从默认更改为其他内容.我在这里找到了一个解决方案,在stackoverflow(Mifare Change KEY A和B),这表明我必须发送这个APDU:
新密钥A = 00 11 22 33 44 55未覆盖访问位密钥B未使用(所以FF FF FF FF FF FF)
=>写入扇形拖车00 11 22 33 44 55 FF 0F 00 FF FF FF FF FF FF FF
我找到了一个很好的工具JSmartCard Explorer,它允许你将APDU发送到卡上.然后我阅读了PCSC规范3.2.2.1.4加载密钥命令章节并理解命令应该如下所示:
FF 82 00 00 18 00 11 22 33 44 55 FF 0F 00 FF FF FF FF FF FF FF
Run Code Online (Sandbox Code Playgroud)
但不幸的是,JSmartCard工具失败了,"命令不允许(没有当前的EF)".
我做错了什么?我该如何更改密钥?