更新BINARY并读回写入的块

时间:2016-01-21 17:30:33

标签: nfc apdu smartcard-reader contactless-smartcard pcsc

我发送UPDATE BINARY命令写入卡的内存,之后我想检查该块是否写得正确。所以,我发送READ BINARY命令并比较值。

(C - Command, R - Response)

C : FF820060067B296F123456
R : 9000
C : FFD600010401000080
R : 9000
C : FF820060067B296F123456
R : 9000
C : FFB0000104
R : 6C10

我期待得到01000080。你能帮帮我吗?

2 个答案:

答案 0 :(得分:1)

您对READ BINRARY APDU的响应非常清楚。状态字6Cxx表示您使用xx作为Le值重新发出最后一个命令APDU。因此,您应该重新发出APDU

FFB0000110

由于您没有通过这些命令显示您正在访问的联系人或非接触式存储卡的类型,我只能猜测您正在访问NFC论坛类型2标签(MIFARE Ultralight,NTAG或类似标签)。使用这些标记,每个页面有4个字节,您可以单独编写每个页面。因此,write命令恰好接受4个字节。但是,该技术的读命令总是读取一组4页,这意味着您总是读取16个字节。

另请注意,在每个其他命令之前发送的LOAD KEYS命令实际上没有多大意义。首先,LOAD KEYS命令仅将密钥加载到读取器内存中,以便稍后在AUTHENTICATE(或rater GENERAL AUTHENTICATE)命令中使用,在加载密钥后,您显然不会使用该命令。其次,你总是再次加载相同的密钥,这是完全没必要的。第三,如果标签实际上是MIFARE Ultralight或NTAG,则没有带有6字节键值的标签。

答案 1 :(得分:0)

尝试发送FFB000010104

CLA = FF INS = B0 P1 = 00 P2 = 01 LC = 01 DATA = 04