【问题标题】:Distinguish Mifare Ultralight from Mifare Ultralight C区分 Mifare Ultralight 和 Mifare Ultralight C
【发布时间】:2012-08-10 08:15:33
【问题描述】:

是否有可靠的方法来确定 RFID 卡是 Mifare Ultralight 还是 Mifare Ultralight C?

到目前为止,我发现的唯一方法是利用这两张卡的大小差异,发出超出较小卡边界的读取命令。 但它看起来确实像一个 hack,我认为如果卡使用 Ultralight C 身份验证机制,读取命令可能会失败。

const char* mifare_ultralight_identification(const nfc_target_info_t nti)
{
  byte_t abtCmd[2];
  byte_t abtRx[265];
  size_t szRxLen;

  abtCmd[0] = 0x30;  // MIFARE Ultralight READ command
  abtCmd[1] = 0x10;  // block address (1K=0x00..0x39, 4K=0x00..0xff)

  if (!nfc_initiator_transceive_dep_bytes(pnd,abtCmd,2,abtRx,&szRxLen)) {
    // READ command of 0x10 failed, we consider that Ultralight does have 0x10 address, so it's a "simple" Ultralight (i.e. not a Ultralight C)
    // When a READ failed, the tag returns in HALT state, so we need to reselect tag
    nfc_initiator_select_passive_target(pnd, NM_ISO14443A_106, nti.nai.abtUid, nti.nai.szUidLen, NULL);
    return "";
  }
  return " C";
}

Source

【问题讨论】:

    标签: nfc rfid mifare


    【解决方案1】:

    是的,如果您有关于 MIFARE Ultralight C 身份验证机制如何工作的文档,这是可能的。 MIFARE Ultralight 不支持此功能,因此会引发错误情况。

    【讨论】:

    • 这也是我的第二个想法。但是,使用其中一个上不存在的命令仍然是一种解决方法。但似乎没有干净的方法来做到这一点。
    • 是的,这是最简单可靠的方法。
    【解决方案2】:

    一旦您获得 NDA 并访问完整的数据表,您将看到描述如何区分 Mifare Ultralight C 与其他 Mifare 标签的部分。

    【讨论】:

    • 我没有找到这个部分。你能告诉你指的是什么文件吗? (我看了看 137631 并没有发现任何东西)。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多