使用覆盖的权限位恢复Mifare Classic 1k中的扇区

问题描述 投票:6回答:2

我错误地覆盖了我的一个Mifare经典1k标签的第1区块7。它用于测试,我在块7上写的16字节数据如下所示:

0xaa 0xaa 0xaa 0xaa 
0xbb 0xbb 0xbb 0xbb
0xcc 0xcc 0xcc 0xcc  
0xdd 0xdd 0xdd 0xdd

如果没有弄错,通过这样做,我的访问键和权限位变为如下:

  • Key-A:0xaa 0xaa 0xaa 0xaa 0xbb 0xbb
  • Key-B:0xcc 0xcc 0xdd 0xdd 0xdd 0xdd
  • 许可位: - > qazxsw poi

我试图使用如上所示的0xbb 0xbb 0xccKey-A来读取/写入Key-B中的block 7。但是我再也无法访问(不读或写)sector 1中的任何块。

我知道所有其他部门的关键(例如sector 1sector 0)并且能够访问它们。

考虑到这种情况,我想知道是否有任何方法可以重置sectors 2-15sector 1以重新获得我的访问权限。非常感谢。

更新:

我已经确认如上所示的Key-A和Key-B都是正确的,我可以使用它们对卡进行身份验证。另外,根据block 7Mifare Classic specification),我的访问位如下:

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

现在,考虑到规范/屏幕截图,screenshotC1_3C2_3位启用对C3_3的读/写访问。就我而言,对于第7块(第7部分的预告片),它们都被设置为sector-trailer。我不应该对这个块有写入权限吗?

nfc mifare
2个回答
3
投票

在Mifare经典规范中,您链接说:

备注:每次访问内存时,内部逻辑都会验证访问条件的格式。如果它检测到格式违规,整个扇区将被不可逆转地阻止。

您的访问字节不验证格式。在下表中〜表示倒置

1

因此,例如,C2_3 = 1且~C2_3 = 1.它们不是互补的。格式未经验证,扇区被不可逆转地阻止。

在同一文档中有一个表(表7),表明keyA总是可以被加入。也许这就是您可以进行身份​​验证的原因。


6
投票

一旦未正确配置访问控制位(例如,应该是彼此补码的位不是互补的,就像您的情况一样),就不能再访问扇区了。

© www.soinside.com 2019 - 2024. All rights reserved.