Den*_*sil 2 permissions rfid nfc mifare contactless-smartcard
我知道这篇文章: - Mifare Classic 1K的锁定机制
但是,实际上并不清楚 - 如何FF 07 80 FF在此字符串中计算值:
D3 F7 D3 F7 D3 F7 FF 07 80 FF 00 00 00 00 00 00
Run Code Online (Sandbox Code Playgroud)
这意味着可以使用密钥A读取块并使用密钥B写入但不允许使用inc/dec.
如果我必须支持递增和递减操作,访问位应该如何.我知道C1,C2和C3必须是1,1,0这是如何反映到字节6,7和8.
任何帮助将非常感激.
访问位FF 07 80转换为
C1 = 0x0 => C1_3 = 0, C1_2 = 0, C1_1 = 0, C1_0 = 0
C2 = 0x0 => C2_3 = 0, C2_2 = 0, C2_1 = 0, C2_0 = 0
C3 = 0x8 => C3_3 = 1, C3_2 = 0, C3_1 = 0, C3_0 = 0
Run Code Online (Sandbox Code Playgroud)
因此,可以使用密钥A only(Cx_3 = 0 0 1)来读取和写入扇区尾部.所有操作(读,写,递增,递减等)都可以仅使用键A对数据块执行(Cx_{0,1,2} = 0 0 0由于拖车块的访问条件,键B被禁用).
如果您希望能够使用键A读取所有块,使用键B写入,使用键B执行值块增量并使用键A和B执行值块减少等,您可以使用如下访问条件:
Cx_3 = 0 1 1数据/值块:使用键A读取/递减,使用键B写入/递增: Cx_{0,1,2} = 1 1 0
C1_3 = 0, C1_2 = 1, C1_1 = 1, C1_0 = 1 => C1 = 0x7
C2_3 = 1, C2_2 = 1, C2_1 = 1, C2_0 = 1 => C2 = 0xF
C3_3 = 1, C3_2 = 0, C3_1 = 0, C3_0 = 0 => C3 = 0x8
Run Code Online (Sandbox Code Playgroud)这导致访问位08 77 8F.因此,您的扇区预告片可能看起来像这样(键A = D3F7D3F7D3F7和键B = 000000000000):
D3F7D3F7D3F7 08778F FF 000000000000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3090 次 |
| 最近记录: |