代码之家  ›  专栏  ›  技术社区  ›  Boycott A.I.

产生6A 81的APDU write命令

  •  2
  • Boycott A.I.  · 技术社区  · 8 年前

    ACS ACR1255 reader/writer 读取/写入NFC标记。

    我可以使用这个APDU命令(从块04h开始,读取16个字节)很好地读取它:

    String APDU_COMMAND_READ_16_BYTES =
            "FF" // Class: FFh
            + " B0" // Instruction: Read Binary Blocks
            + " 00" // P1: 00h
            + " 04" // P2: Block Number (the starting block)
            + " 10"; // Le: Number of bytes to read (10h = 16 bytes = 1 block)
    

    然而,我没有太多的运气试图写卡。当我尝试此命令时:

    String APDU_COMMAND_WRITE_16_BYTES =
            "FF" // Class: FFh
                    + " D0" // Instruction: Write Binary Blocks
                    + " 00" // P1: 00h
                    + " 04" // P2: Block Number (the starting block)
                    + " 10" // Lc: Length of data field (10h = 16 bytes = 1 block)
                    + " 01 02 03 04 05 06 07 08 01 02 03 04 05 06 07 08" // String of data units to be written
                    + ""; // Le: Empty
    

    …我得到的答复是: 6A 81

    根据表12 this page ,和 6A 部分是指 . 然而,表18显示 81 “不支持函数” .

    注意-所讨论的标签是 MIFARE Ultralight EV1 MFOUL21 . (我可以用Android的 MifareUltralight 班级。)

    1 回复  |  直到 8 年前
        1
  •  2
  •   Boycott A.I.    8 年前

    我刚找到解决办法 Standard Instructions table D0 )指令,还有一个更新二进制( D6 )指示。

    D0号 到 D6 已经解决了这个问题。

    这些资源还可以帮助其他新手了解APDU: