nfc - APDU 在 mifare classic 上写入 block 命令

标签 nfc mifare apdu

我一直在尝试将一些数据写入我的 mifare 经典卡。首先我发送这两个返回 90 00 的命令:
加载 Mifare key :

FF 82 20 01 06 FF FF FF FF FF FF


验证:

FF 86 00 00 05 01 00 01 60 01


现在我可以向扇区 0 和块 1 + 2 写入命令

ff d6 00 01 10 14 01 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1

ff d6 00 02 10 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1 03 E1


我错误地覆盖了块 3 几次,使该扇区看起来不可读:
如果我发送命令
ff d6 00 04 10 我收到返回错误 69 82,我用谷歌搜索为身份验证错误
我需要对每个部门进行身份验证吗?如果是这样,为下一个和后续扇区执行此操作的命令是什么?

最佳答案

是的,您必须在对该扇区的块进行读/写之前对每个扇区进行身份验证。现在您已执行身份验证命令并覆盖块 3(扇区预告片),这意味着 key 和访问权限已更改。

APDU 用于验证块:-

Authenticate a block 的 APDU 格式应采用以下格式。

CLA+ INS+ P1+ P2+ Lc+ (Version + AddMSB + AddLSB + KeyID + KeyNumber)



例如:-

CLA = FF

INS = 86

P1 = 00

P2 = 01(验证块号)

Lc = 05(数据字段的长度)

数据字段 = 版本 + AddMSB + AddLSB + KeyId + KeyNumber

版本=01

添加MSB=00

AddLSB=05(块号)

KeyID=60/61(keyA 为 60,keyB 为 61)

KeyNo= 00(读卡器的Key Slot号)

FF 86 00 00 05 01 00 05 60 00

关于nfc - APDU 在 mifare classic 上写入 block 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16957538/

相关文章:

android - android上的NFC应用开发

android - 在 NTAG213 中获取异常

android - Android NFC ISODep 支持有多成熟?

security - 如何从 EXTERNAL AUTHENTICATE 命令 apdu 计算 C-MAC?

JavaCard 获取卡上的数据

c - 使用 C 函数搜索标签 (TLV)

安卓 NFC : can we use intent filter with mime type? (安卓 2.3.3)

android - DESFire EV1 卡仿真

C# Crc32 实现

android - 点击 NFC 标签时创建的新程序实例