我错误地覆盖了我的一个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 -------------------------- C2_3 C2_2 C2_1 C2_0 C1_3 C1_2 C1_1 C1_0 1 1 0 1 1 1 0 1 Byte 7 = 0xbb = 0b10111011 -------------------------- C1_3 C1_2 C1_1 C1_0 C3_3 C3_2 C3_1 C3_0 1 1 0 1 1 1 0 1
现在,考虑到规范/截图C1_3,C2_3和C3_3位使能读/写访问sector-trailer.就我而言,对于第7块(第7部分的预告片),它们都被设置为1.我不应该对这个块有写入权限吗?
小智 3
在您链接的 Mifare 经典规范中说:
备注:每次内存访问时,内部逻辑都会验证访问条件的格式。如果它检测到格式违规,则整个扇区将被不可逆转地阻止。
您的访问字节不验证格式。下表中~表示倒置
Byte 6
--------------------------
~C2_3 ~C2_2 ~C2_1 ~C2_0 ~C1_3 ~C1_2 ~C1_1 ~C1_0
1 0 1 1 1 0 1 1
Byte 7
--------------------------
C1_3 C1_2 C1_1 C1_0 ~C3_3 ~C3_2 ~C3_1 ~C3_0
1 0 1 1 1 0 1 1
Byte 8
--------------------------
C3_3 C3_2 C3_1 C3_0 C2_3 C2_2 C2_1 C2_0
1 1 0 0 1 1 0 0
Run Code Online (Sandbox Code Playgroud)
例如,C2_3 = 1 和 ~C2_3 = 1。它们不是互补的。格式未验证,扇区被不可逆转地阻止。
在同一文档中,有一个表(表 7)表明 keyA 始终可以被读取。也许这就是您可以进行身份验证的原因。
| 归档时间: |
|
| 查看次数: |
6452 次 |
| 最近记录: |