Как прочитать полезную нагрузку записи из тега NXP MIFARE Ultralight? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть пара сверхлегких тегов NXP MIFARE (тип 2), которые содержат некоторые данные в первой записи.Я использую ACS 1252U для чтения тегов, и я пытался вручную перебирать некоторые данные, чтобы понять, что находится на теге, но я не могу понять, как определить, где начинается записьи где это заканчивается.

Вот некоторые подробные сведения о теге NFC и записи, которую я пытаюсь прочитать:

image image

А вот некоторые данные из одного из моих тегов, начиная со страницы 04:

03 ff 01 5a
c4 0f 00 00
01 45 62 63
61 72 64 2e
6e 65 74 3a
62 63 61 72
64 39 39 37
30 31 1e 34

Теперь, если я преобразую все это в ASCII, я получу следующее:

ÿZÄEbcard.net:bcard997014

Все, что я знаю, это то, что фактические данные, которые мне нужны (или полезные данные), начинаются с 99701, но как в мире я должен это знать?Конечно, в данных есть что-то, что может сказать мне, где начинается загрузка записи и где она останавливается?

1 Ответ

0 голосов
/ 19 февраля 2019

Данные в точности соответствуют спецификации типа 2.Тег типа 2 имеет свои страницы данных, начиная со страницы / блока 4. Данные встраиваются в структуры TLV.

В вашем случае первый байт страницы 4 является тегом сообщения NDEF TLV (0x03).Следующий байт указывает, что длина поля закодирована в 3-байтовом формате.Следовательно, длина составляет 0x015A (= 346 байт).Таким образом, вам нужно прочитать следующие 87 страниц (= ceil (346/4), поскольку данные начинаются с границы страницы), чтобы получить полное сообщение NDEF.

Само сообщение NDEF состоит из 1 записи NDEF (заголовокБайт 0xC4 указывает, что запись является первой (MB = 1) и последней (ME = 1) записью сообщения).Запись является внешним типом NFC Forum (TNF = 4 в байте заголовка).Имя типа имеет длину 0x0F (= 15 байт).Полезная нагрузка имеет длину 0x0145 (= 325 байт).Следовательно, имя типа - «bcard.net:bcard», а полезная нагрузка - «39 39 37 30 31 1E 34 ...» (похоже, ITN не опубликовал спецификацию о том, как структурирован их тип bcard).

См. Как интерпретировать содержимое NDEF в Mifare Classic 1K о том, как декодировать эти структуры TLV и сообщение NDEF.

...