2013-01-31 165 views
6

我错误地覆盖了我的Mifare经典1k标记之一的扇区1块7。它本来是用于测试和我分块7所写的16字节数据如下图所示:Mifare Classic 1k中覆盖的权限位恢复扇区

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

如果没有记错的话,这样做,我的访问密钥和权限位已成为如下:

  • 密钥-A:0xaa 0xaa 0xaa 0xaa 0xbb 0xbb
  • 密钥-B:0xcc 0xcc 0xdd 0xdd 0xdd 0xdd
  • Permisssion位: - >0xbb 0xbb 0xcc

我试图使用Key-AKey-B如上所示读取/写入sector 1中的block 7。但是我不再能够访问(不读或写)sector 1中的任何块。

我知道所有其他扇区的密钥(例如sector 0sectors 2-15)并且能够访问它们。

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

更新:

我已经证实,这两个关键-A和如上所示重点-B是正确的,我可以给他们两个的卡进行身份验证。此外,由于每Mifare Classic specificationscreenshot),我的访问位如下:

 
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_3C2_3C3_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 

所以,举例来说,C 2-3 = 1和〜C 2-3 = 1。它们不是互补的。格式未验证,扇区被不可撤销地阻止。

在同一份文件中有一个表格(表格7),表格显示keyA总是可以被使用。也许这就是你可以认证的原因。

+1

谢谢。我已经这样结论。你的回答更清楚。 – gsbabil

6

一旦访问控制位配置不正确(例如,假设互补的位不互补,就像你的情况一样),该扇区根本无法再访问。