ODRFID Kit — настольная лаборатория RFID
ODRFIDKit и настольный считыватель ODRFID образуют рабочее место для изучения, чтения, записи и подготовки RFID/NFC-меток.
Во многих системах RFID-метку используют только как номер: считывают UID и находят запись в базе. Для пропускного пункта этого часто достаточно. Но метки MIFARE и NTAG также содержат пользовательскую и служебную память со своими правилами доступа.
ODRFID Kit объединяет настольный считыватель ODRFID-M, ODRFID-N или ODRFID-E и бесплатную программу ODRFIDKit для Windows, Linux и macOS. Комплект показывает структуру карты, читает и изменяет доступные области памяти, помогает подготовить метку, проверить ключи и найти причину ошибки чтения.
Метка — это не всегда один номер
UID обычно используют, чтобы отличить одну микросхему от другой. Но UID не описывает содержимое карты и не заменяет её память. На одной метке кроме него могут храниться номер сотрудника, код объекта, параметры доступа, баланс, счётчик поездок, служебные флаги или данные, понятные только конкретной системе.
У разных семейств эта память устроена по-разному:
| Семейство | Как организованы данные | Что показывает ODRFIDKit |
|---|---|---|
| MIFARE Classic | Секторы из 16-байтных блоков; у каждого сектора свои ключи и права | Пользовательские блоки, служебный блок сектора, Key A/Key B, биты доступа |
| MIFARE Plus | Память и уровни безопасности SL0–SL3; в SL3 используются 16-байтные ключи | Тип и уровень карты; работа с памятью в поддерживаемых программой режимах SL1 и SL3 |
| MIFARE Ultralight и NTAG | Страницы по 4 байта, служебные страницы, биты блокировки, иногда PWD/PACK | Пользовательские и служебные страницы, пароль и ответ PACK для совместимых меток |
| EM-Marine и HID Prox | Низкочастотные идентификаторы без пользовательских секторов как у Classic | Считанный код карты в поддерживаемом формате |
| T5557/T5567/T5577 | Перезаписываемые низкочастотные микросхемы с конфигурационными блоками | Подготовка совместимой метки в режиме эмуляции EM4100 |
Поэтому одинаковая надпись на двух брелоках ещё не означает, что они одинаково устроены. ODRFIDKit сначала определяет тип метки, а затем показывает структуру, которая имеет смысл именно для неё.
MIFARE Classic: секторы, блоки и собственные правила доступа
MIFARE Classic 1K содержит 1024 байта, разбитые на 16 секторов. В каждом секторе четыре блока по 16 байт. Первые три обычно используются для данных, а последний называется служебным блоком сектора (sector trailer) и управляет доступом ко всему сектору. В нулевом секторе первый блок занят заводскими данными и UID, поэтому для прикладных данных в Classic 1K остаётся 752 байта.
Трейлер состоит из:
- шестибайтного Key A;
- трёх байт доступа (access bits) и одного служебного байта GPB;
- шестибайтного Key B.
Биты C1, C2 и C3 задают для блока или группы блоков, каким ключом их разрешено читать, записывать, увеличивать или уменьшать. Они хранятся вместе с инверсными копиями, чтобы карта могла заметить повреждённую конфигурацию. Это уже не «один пароль на всю карту»: у каждого сектора могут быть свои ключи и свой набор прав.
ODRFIDKit показывает карту в этой логике. Можно выбрать сектор, указать Key A или Key B, прочитать доступные блоки и открыть трейлер как отдельную структуру.

Программа расшифровывает биты доступа, поэтому вместо непрозрачных байтов видно, какие операции разрешены для данных и ключей.

У MIFARE Classic 4K структура продолжается: первые 32 сектора состоят из четырёх блоков, а последние восемь — из шестнадцати. ODRFIDKit учитывает это различие и не заставляет вручную пересчитывать адреса больших секторов.
Обычные данные и блоки значений
Блок Classic может хранить произвольные 16 байт — например текст, внутренний номер или двоичную структуру приложения. Одни и те же байты можно показывать как двоичные, восьмеричные, десятичные и шестнадцатеричные числа или как ASCII. Так инженер видит точное содержимое, а оператор — читаемый текст там, где он действительно записан.
Есть и специальный формат блока значения (value block). В нём 32-битное значение и адрес хранятся с повторением и инверсными копиями. Такой блок рассчитан на счётчики и балансы: число можно увеличивать и уменьшать с дополнительной проверкой целостности. ODRFIDKit помогает распознать и подготовить эту структуру, а протокол ODRFID предоставляет отдельные операции инкремента и декремента для прикладной программы.
Ultralight и NTAG: страницы, блокировки и пароль
MIFARE Ultralight и NTAG устроены иначе. Вместо секторов по 16 байт у них страницы по 4 байта. Часть страниц содержит UID и заводские данные, часть отведена пользователю, а ближе к концу памяти находятся конфигурация, биты блокировки и, у совместимых моделей, пароль PWD с ответом PACK.
В ODRFIDKit можно:
- прочитать карту постранично и отделить служебную область от пользовательской;
- записать данные в разрешённые страницы;
- посмотреть одни и те же данные в двоичном, восьмеричном, десятичном, HEX- и ASCII-представлении;
- указать PWD/PACK для поддерживаемых Ultralight EV1 и NTAG;
- увидеть области, закрытые от записи или чтения конфигурацией метки;
- открыть специализированный редактор конфигурации Ultralight EV1 или NTAG.
В редакторе NTAG можно настроить параметры, которые не видны при чтении UID: задать первую защищённую паролем страницу и выбрать, требуется ли пароль только для записи или также для чтения; включить и защитить NFC-счётчик; ограничить число неудачных проверок пароля. Функция ASCII Mirror позволяет метке подставлять свой UID, значение счётчика или оба поля в данные, начиная с заданного байта выбранной страницы. Это удобно, например, когда терминалу нужна текстовая строка с уникальным номером без хранения отдельной копии UID в пользовательской памяти.
Конфигуратор также управляет режимом усиленной модуляции (strong modulation) и постоянной блокировкой конфигурации. Последняя необратима: после установки соответствующего бита изменить эти параметры уже нельзя.
PWD/PACK — это проверка пароля, а не шифрование радиообмена. Для проектов, где нужна криптографическая защита данных, важно выбирать подходящее семейство карт и проектировать протокол целиком, а не полагаться только на четырёхбайтный пароль NTAG.
Биты блокировки и некоторые OTP-области могут изменяться необратимо. Поэтому сначала считайте всю карту и проверьте её тип, затем меняйте по одной области и сразу читайте её обратно.
Что можно сделать с ODRFIDKit
Исследовать незнакомую карту
Программа показывает UID, тип метки, геометрию памяти и доступные блоки или страницы. По этим данным можно отличить Classic 1K, Classic 4K, Ultralight, NTAG и низкочастотный идентификатор и не применять к ним правила другого семейства.
Читать и записывать прикладные данные
Можно открыть нужный сектор или страницу, посмотреть байты в HEX и ASCII, изменить разрешённое содержимое и записать его обратно. Так подготавливают бейджи для стенда, карты с параметрами оборудования, идентификаторы участников или тестовые наборы для собственного приложения.
Работать с ключами и правами MIFARE
Для Classic программа использует шестибайтные Key A/Key B, для MIFARE Plus — 16-байтные ключи, а для совместимых Ultralight/NTAG — PWD/PACK. Ключи можно по желанию сохранять в локальной базе: Classic — с привязкой к UID, сектору и типу ключа, Plus — к UID и номеру ключевого блока, PWD/PACK — к UID метки. Это хранилище программы: само по себе сохранение ключа на компьютере не меняет карту.
В окне Trailer можно изучить текущие биты доступа и подготовить новые права. При работе с учебным стендом или выпуске собственных карт учитывайте: ошибочная комбинация способна закрыть сектор от дальнейшей записи.
Подготовить счётчик или баланс
Блок значения позволяет хранить число в формате, который сама карта проверяет на целостность. На лабораторном столе можно создать такой блок, проверить его представление, а затем отладить операции начисления и списания в прикладной системе.
Разбирать дамп без риска для метки
В ODRFIDKit есть программный эмулятор: можно создать виртуальную карту или
открыть сохранённый файл .mfc, изучать его блоки, страницы, ключи и права
доступа без записи в физическую метку. Прочитанную Ultralight или NTAG можно
сохранить в такой файл и вернуться к анализу позже. Это удобный способ
сравнивать состояния, готовить данные и осваивать редакторы перед работой с
необратимыми битами блокировки.
Восстановить или скопировать разрешённый идентификатор
ODRFID-M и ODRFID-N умеют менять четырёхбайтный UID у специальных совместимых MIFARE Classic с перезаписываемой UID-областью. ODRFID-M и ODRFID-E могут записать идентификатор EM4100 в T5557/T5567/T5577 и совместимые заготовки, включая защиту от случайной перезаписи паролем.
Это работает только с предназначенными для записи микросхемами и не превращает обычную заводскую карту в перезаписываемую. Используйте функцию для собственных меток, резервных экземпляров и обслуживания систем, на работу с которыми у вас есть разрешение.
Подробная инструкция по копированию UID, блоков и страниц объясняет, какие заготовки нужны для 13,56 МГц и 125 кГц, где потребуются ключи и как проверить результат.
Превратить считыватель в сетевой источник событий
ODRFIDKit может поднять TCP- и UDP-серверы на выбранных портах. При обнаружении
метки подключённый клиент получает простую текстовую строку с её типом и UID;
командами uid и state можно запросить текущий идентификатор и состояние
считывателя. Для UDP клиент сначала регистрируется сообщением hello, а для
TCP достаточно открыть соединение.
Так можно быстро проверить сетевую интеграцию без написания отдельного драйвера: компьютер со считывателем становится мостом между USB и программой в локальной сети. Сетевой интерфейс передаёт события, UID и состояние, но не открывает удалённое чтение и изменение памяти карты. В протоколе нет аутентификации и шифрования, поэтому включать серверы следует только в доверенной сети.
Для серийной системы обычно пишут собственный сервис по открытому протоколу ODRFID, но ODRFIDKit позволяет сначала проверить формат данных, порядок байтов и сетевой маршрут на реальных картах.
Проверить устройство и перейти к обновлению прошивки
Программа получает сведения о подключённом ODRFID, управляет чтением и может
перевести устройство в загрузчик. ODRFIDKit поддерживает встроенный режим
обновления, а для исполнений с загрузчиком в режиме USB-накопителя (Mass
Storage) подсказывает найти съёмный диск .. DFU и скопировать на него файл
прошивки нужного исполнения -M, -N или -E.
Какой ODRFID выбрать
| Модель | Поддерживаемые метки | Для какой лаборатории |
|---|---|---|
| ODRFID-M | MIFARE/NTAG 13,56 МГц и EM-Marine/HID 125 кГц | Рабочее место с метками обоих диапазонов |
| ODRFID-N | MIFARE/NTAG 13,56 МГц | Секторы, страницы, ключи, чтение и запись памяти NFC-меток |
| ODRFID-E | EM-Marine/HID 125 кГц | Регистрация низкочастотных пропусков и программирование совместимых T55xx |
Если нужно изучать именно внутреннюю память карт, выбирайте ODRFID-N или двухчастотный ODRFID-M. У EM4100 и HID Prox нет пользовательских секторов, поэтому ODRFID-E работает прежде всего с идентификатором и совместимыми перезаписываемыми заготовками.
Где такой комплект особенно полезен
- Выпуск пропусков: записать служебные данные, проверить ключи и перечитать карту перед выдачей.
- Разработка СКУД и терминалов: увидеть реальные байты, проверить формат UID, порядок байтов и обработку ошибок аутентификации.
- Сервис существующей системы: сравнить исправную и проблемную карту, проверить доступность секторов и подготовить разрешённую замену.
- Обучение RFID/NFC: на одной карте увидеть разницу между UID, данными, ключами и правами, а не изучать их только по таблице из документации.
- Прототипирование: вручную проверить чтение и запись, сохранить тестовый дамп, получить сетевое событие, а затем перенести проверенный обмен в собственную программу.
- Приёмочный контроль партии: прочитать тестовые метки, проверить тип, размер памяти и результат записи до запуска тиража.
Чего программа не делает
ODRFIDKit не подбирает неизвестные криптографические ключи и не обходит защиту карты. Если сектор закрыт неизвестным ключом, для чтения нужен корректный ключ. Запись новых битов доступа, битов блокировки, пароля или уровня безопасности может быть необратимой, поэтому эксперименты нужно начинать на тестовых метках.
Поддержка зависит и от семейства карты. Например, текущие ODRFID-M/N работают с памятью Classic, Plus в SL1 и, на совместимых ревизиях считывателя, Plus S/X в SL3, а также Ultralight EV1 и NTAG 213/215/216. Карты Plus в SL0 и SL2 определяются, но редактор памяти для них не открывается; для MIFARE Ultralight C и DESFire доступен только UID. Перед закупкой тиража проверяйте конкретную микросхему, её уровень безопасности и нужную операцию.
Настольная и веб-версия
Настольная ODRFIDKit работает в Windows, Linux и macOS и подходит для
постоянного рабочего места: в ней есть файлы дампов .mfc, программный
эмулятор карты и TCP/UDP-серверы. Есть также
ODRFIDKit Web, работающая без установщика через
Web Serial.
В браузере доступны чтение и запись памяти поддерживаемых HF-карт, Key A/Key B и access bits MIFARE Classic, NDEF для совместимых Ultralight/NTAG, безопасный просмотр памяти T5577 и запись EM-Marine UID в T55xx. Там же можно прочитать и изменить параметры ODRFID. Веб-версия удобна для быстрой проверки и настройки с нового компьютера, но зависит от разрешения браузера на последовательный порт. Если Web Serial недоступен, используйте настольную программу.