Перейти к содержанию
ODRFIDKit Web: работа с RFID-картами в браузере

ODRFIDKit Web: работа с RFID-картами в браузере

Подключение ODRFID-M/N/E к ODRFIDKit Web, чтение и запись MIFARE Classic, просмотр памяти T5577, ключи, access bits, NDEF и настройки считывателя.

ODRFIDKit Web — браузерная программа для считывателей ODRFID-M, ODRFID-N и ODRFID-E. Устанавливать её не нужно: считыватель подключается напрямую к браузеру через USB CDC и Web Serial.

В веб-версии можно:

  • определить тип карты, скопировать UID, Decimal LE и Wiegand 26;
  • читать и изменять блоки или страницы поддерживаемых карт 13,56 МГц;
  • задавать Key A/Key B, смотреть и изменять права доступа MIFARE Classic;
  • безопасно просматривать память T55xx и EM4x05/EM4x50 на 125 кГц;
  • записывать EM-Marine UID в T5557/T5567/T5577;
  • читать и записывать NDEF на совместимых Ultralight, NTAG и MIFARE Classic;
  • читать и настраивать параметры самого ODRFID.

Для постоянного рабочего места, сохранения дампов .mfc, программного эмулятора карты и сетевых TCP/UDP-функций используйте настольную ODRFIDKit.

Что понадобится

ЗадачаСчитыватель
Карты MIFARE, Ultralight и NTAG 13,56 МГцODRFID-N или ODRFID-M
Метки EM-Marine, HID Prox и T55xx 125 кГцODRFID-E или ODRFID-M
Работа с обеими частотамиODRFID-M

Откройте приложение в настольном браузере с поддержкой Web Serial, например Chromium, Chrome или Edge. Порт может использовать только одна программа. Перед подключением закройте настольную ODRFIDKit, терминал и другие программы, которые могли открыть тот же ODRFID.

Подключение

  1. Подключите ODRFID к USB-порту компьютера.
  2. Откройте odrfid.unitx.pro и нажмите Подключить.
  3. В системном окне браузера выберите последовательный порт ODRFID и разрешите доступ.
  4. Проверьте верхнюю панель: рядом с названием появится версия прошивки, а справа — состояние Подключен.
  5. Поднесите одну карту. Тип, UID и геометрия памяти появятся автоматически.

Если список портов пуст, проверьте USB-кабель и наличие CDC-интерфейса. Если порт виден, но не открывается, освободите его в другой программе и нажмите Подключить ещё раз.

Интерфейс программы

  • Верхняя панель показывает версию прошивки. Кнопка Устройство открывает параметры считывателя, Настройки — тему и журнал обмена, а Подключить/Отключить управляет Web Serial-сессией.
  • Карта слева содержит тип, UID, Decimal LE, Wiegand 26, число блоков и их размер. Значки рядом с номерами копируют готовое значение.
  • Панель карты ниже меняется по типу метки: Key A/Key B и список секторов для Classic, пароль для Ultralight/NTAG, AES-ключ для MIFARE Plus или инструменты памяти 125 кГц.
  • Читать загружает память, Записать отправляет только изменённые блоки, След. карта сбрасывает текущий выбор, Клонировать открывает редактор UID совместимой заготовки.
  • Память 125 кГц включает отдельный безопасный режим просмотра LF-памяти, а NDEF — редактор NDEF для NFC Forum Type 2 Tag и MIFARE Classic.
  • Переключатель HEX / DEC / ASCII меняет только представление уже считанных байтов. Содержимое карты от этого не меняется.
  • Нижняя строка показывает текущую операцию, предупреждение или результат.
ODRFIDKit Web определил MIFARE Classic 1K до чтения памяти
Карта уже определена и её UID доступен, но штрихи -- в таблице означают, что память ещё не прочитана.

MIFARE Classic 13,56 МГц

На снимке прочитана MIFARE Classic 1K: 64 блока по 16 байт, объединённые в 16 секторов. У каждого сектора три блока данных и последний служебный блок sector trailer. Блок 0 содержит UID и заводские данные; обычная карта не позволяет переписать его.

ODRFIDKit Web после полного чтения MIFARE Classic 1K
Полное чтение MIFARE Classic 1K. Синие границы отделяют секторы, цветом выделены UID, ключи и служебные байты trailer.

Как прочитать память Classic

  1. Поднесите карту и дождитесь определения типа.
  2. В панели Ключ Mifare Classic выберите Key A или Key B, введите 12 HEX- символов и нажмите Установить. Для незапрограммированной карты часто используется FFFFFFFFFFFF, но в рабочей системе ключи могут быть другими для каждого сектора.
  3. Нажмите Читать. Программа последовательно прочитает доступные блоки.
  4. Выбирайте сектор слева, чтобы перейти к его блокам. Ячейка с ошибкой означает, что блок не прочитан — обычно из-за неверного ключа или запрета в access bits.
  5. При необходимости переключите HEX, DEC или ASCII. Для проверки точных данных используйте HEX.

Ключ в левой панели применяется для текущей работы с памятью. В окне Устройство → Ключи можно прочитать или записать используемые самим считывателем ключи и пароли.

Как изменить и записать обычный блок

  1. Сначала прочитайте всю карту и сохраните исходные байты отдельно.
  2. Щёлкните по нужному байту в блоке данных и введите новое значение в текущем формате. В HEX введите две шестнадцатеричные цифры, то есть байт от 00 до FF.
  3. Изменённая ячейка и сектор выделятся, а кнопка Записать станет активной.
  4. Убедитесь, что выбран правильный блок и на карте не изменились UID и служебный trailer.
  5. Нажмите Записать. В память отправляются только блоки, изменённые в таблице.
  6. Не убирайте карту до сообщения о завершении. Затем нажмите Читать и сравните считанные байты с ожидаемыми.

Блок 0 не предназначен для пользовательских данных. Проверяйте запись не на единственной рабочей карте, а на запасной. Если нужно отказаться от подготовленных изменений, нажмите След. карта и снова поднесите метку, не нажимая Записать.

Key A, Key B и служебные биты MIFARE Classic

Последний блок каждого сектора — trailer из 16 байт:

БайтыНазначение
0–5Key A, 6 байт
6–8access bits: комбинации C1, C2 и C3 с инверсными копиями
9GPB, служебный байт общего назначения
10–15Key B, 6 байт

Key A никогда не возвращается обычной командой чтения. Поэтому нули в первых шести байтах прочитанного trailer не доказывают, что реальный Key A равен нулю. Возможность прочитать Key B зависит от режима доступа; в некоторых режимах он используется как данные, а в других остаётся ключом.

Чтобы посмотреть права, дважды щёлкните по номеру блока в первом столбце. Двойной щелчок по обычному блоку открывает разрешения Чтение, Запись, Increment и Decrement. Программа расшифровывает C1/C2/C3 и показывает, какой ключ допускает каждую операцию.

Права доступа обычного блока MIFARE Classic в ODRFIDKit Web
Режим обычного блока: отдельно показаны права чтения, записи и операций value block.

Двойной щелчок по номеру trailer открывает права на Key A, access bits и Key B, а также поля для подготовки новых ключей. Флажок рядом с ключом означает, что его байты будут включены в изменение; без флажка поле служит только для просмотра подготовленного значения.

Редактор Key A, Key B и access bits sector trailer в ODRFIDKit Web
Sector trailer: режим доступа, расшифровка прав и отдельное включение замены Key A или Key B.

Кнопка OK в редакторе только переносит подготовленные значения в таблицу и помечает trailer изменённым. Физическая запись начинается лишь после нажатия основной кнопки Записать.

Перед изменением trailer:

  • запишите текущие Key A и Key B вне карты;
  • проверьте, каким ключом текущий режим разрешает менять access bits и ключи;
  • меняйте один сектор за раз и сразу перечитывайте его новым ключом;
  • не выбирайте режим never, пока не убедитесь, что именно это требуется;
  • учитывайте, что неверные или противоречивые C1/C2/C3 могут закрыть сектор.

Клонирование UID MIFARE

Кнопка Клонировать открывает ввод нового UID длиной 4 или 7 байт. Эта команда предназначена только для специальных Classic-совместимых заготовок с перезаписываемой UID-областью. Заводской UID обычной MIFARE Classic изменить нельзя. Перенос UID не копирует пользовательские блоки, ключи и access bits.

T5577 и память 125 кГц

В обычном режиме T5577, настроенная как EM4100, выглядит как обычная низкочастотная метка: программа показывает код EM4100, Decimal и поля формата Wiegand. По одному этому экрану нельзя отличить T5577 от неперезаписываемой EM4100.

T5577 в режиме EM4100, обнаруженная ODRFIDKit Web
Обычный режим показывает передаваемый EM4100 UID, а не внутреннюю структуру T5577.

Как посмотреть внутреннюю память T5577

  1. Поднесите метку и нажмите Память 125 кГц.
  2. Нажмите Определить метку. В панели слева появятся семейство чипа и доступные страницы или блоки.
  3. Нажмите основную кнопку Читать, чтобы прочитать все доступные данные, или выберите страницу и блок и нажмите Прочитать выбранный.
  4. Для T5577 кнопка Заводские данные (страница 1) читает доступную trace- область. Значение -- означает, что блок не был прочитан или недоступен в этом безопасном режиме.
  5. Нажмите Память 125 кГц повторно, чтобы вернуться к обычному чтению UID.

Режим Память 125 кГц читает метку без пароля. Он не передаёт LOGIN, WRITE и PROTECT, поэтому защищённые пользовательские блоки остаются недоступными. Для записи UID используйте мастер EM-Marine ниже.

Как записать EM-Marine UID в T5577

  1. Вернитесь из режима памяти 125 кГц к обычному экрану UID.
  2. Поднесите исходную EM4100-совместимую метку или введите нужный пятибайтный UID в окне Клонировать.
  3. Выберите кодирование Manchester или BiPhase и скорость RF/64 или RF/32. Для обычной совместимости EM4100 чаще используются Manchester и RF/64, но параметры должны соответствовать целевой системе.
  4. Если заготовка уже защищена, включите Текущий пароль и введите известные 8 HEX-символов.
  5. Новый пароль задавайте только если защита действительно нужна и значение сохранено в надёжном месте.
  6. Поднесите целевую T5577, нажмите Записать, не убирайте её до завершения, затем прочитайте UID обратно в обычном режиме.
Окно записи EM-Marine UID в T5577 в ODRFIDKit Web
Запись T5577 выполняется через мастер EM-Marine: UID, кодирование, скорость и необязательная защита паролем.

Защита T5577 паролем усложняет восстановление при ошибке. Сначала проверьте новый UID без защиты на отдельной тестовой заготовке и только затем решайте, нужен ли пароль.

NDEF на Ultralight, NTAG и MIFARE Classic

Кнопка NDEF открывает редактор URI, Text и Smart Poster для совместимых NFC Forum Type 2 Tag: MIFARE Ultralight, Ultralight Nano, Ultralight EV1 и NTAG213/215/216. Он читает Capability Container, показывает ёмкость, подготавливает байты сообщения, записывает их и проверяет повторным чтением.

На MIFARE Classic тот же редактор записывает NDEF по правилам NXP: каталог MAD1 в секторе 0 и сообщение в отдельных секторах. Запись меняет ключи и права доступа секторов, поэтому её нужно подтвердить, а вернуть заводское состояние карты можно кнопкой Сбросить метку. Совместимость, ограничения и пошаговая запись со снимками экрана разобраны в руководстве NDEF: данные на NFC-метках.

Настройки считывателя

Откройте Устройство после подключения. Программа сначала читает текущую конфигурацию; изменённые значения попадают в считыватель только после нажатия кнопки Записать.

Вкладки окна:

  • Общие — индикация, частоты, усиление, интервал и режим сканирования, интерфейс CDC/HID там, где он поддерживается;
  • Ключи — значения аутентификации для Classic, Ultralight/NTAG и MIFARE Plus;
  • Вывод — строка, которую считыватель выдаёт в CDC/HID;
  • Управление — перезагрузка и переход в загрузчик для обновления прошивки.

Полный синтаксис поля Вывод приведён в справочнике строки форматирования. Переход в загрузчик нужен только для обновления прошивки.

Безопасный порядок записи

  1. Убедитесь, что определён ожидаемый тип карты, а не только знакомый номер.
  2. Прочитайте всю доступную память и сохраните исходные значения.
  3. Проверьте действующий ключ, пароль и права целевого блока.
  4. Меняйте один блок, сектор или параметр за раз.
  5. Не включайте необратимую защиту на единственной рабочей карте.
  6. После каждой записи перечитывайте карту и сравнивайте результат.
  7. Копируйте и изменяйте только принадлежащие вам карты и системы, для которых у вас есть разрешение.

Связанные материалы