Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
libnfc — Кроссплатформенная библиотека Near Field Communication (NFC) | Kitploit
Инструменты/GitHubGitHub/nfc-tools/libnfc
Инструменты RFID/NFCБезопасность беспроводных сетейБезопасность оборудования и IoT
GitHubnfc-tools/libnfc

libnfc

Кроссплатформенная библиотека Near Field Communication (NFC)

РепозиторийСайт
2.0k4801 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

*-

  • Свободная (Free/Libre) библиотека для связи ближнего поля (NFC)
  • Исторические участники проекта Libnfc:
  • Copyright (C) 2009 Roel Verdult
  • Copyright (C) 2009-2015 Romuald Conty
  • Copyright (C) 2010-2012 Romain Tartière
  • Copyright (C) 2010-2013 Philippe Teuwen
  • Copyright (C) 2012-2013 Ludovic Rousseau
  • Дополнительные участники:
  • См. файл AUTHORS -*

Общая информация

libnfc — это библиотека, которая предоставляет пользовательским приложениям доступ к NFC-устройствам.

Официальный веб-сайт больше не существует; просмотреть его копию можно через WayBackMachine.

Официальный форум больше не существует; просмотреть его копию можно через WayBackMachine.

Официальный сайт разработки: https://github.com/nfc-tools/libnfc

Важное примечание: данный файл описывает POSIX-системы; для Windows, пожалуйста, прочитайте README-Windows.md

Требования

Некоторые NFC-драйверы зависят от стороннего программного обеспечения:

  • pn53x_usb & acr122_usb:

    • libusb-0.1 http://libusb.sf.net
  • acr122_pcsc:

    • pcsc-lite https://pcsclite.apdu.fr/
  • pcsc:

    • Поддержка сборки с драйвером pcsc, который может использоваться со всеми совместимыми считывателями; Feitian R502 и bR500 уже прошли тестирование.

Набор регрессионных тестов зависит от фреймворка cutter: http://cutter.sf.net

Сборка

Примечание: если вы работаете напрямую с git-клона репозитория, некоторые файлы необходимо сгенерировать в первую очередь. Для этого выполните autoreconf -vis

В качестве альтернативы используйте .tar.bz2-версию готового релиза (которая уже содержит ./configure): https://github.com/nfc-tools/libnfc/releases/

Сборка должна быть такой же простой, как выполнение следующих команд:

root@kitploit:~
./configure
make

Чтобы выполнить сборку с конкретным(и) драйвером(ами), обратитесь к параметру --with-drivers=..., описанному в ./configure --help.

Установка

root@kitploit:~
make install

Возможно, вам потребуется предоставить вашему пользователю разрешения на управление вашим устройством. В системах GNU/Linux, если вы используете udev, вы можете воспользоваться предоставленными правилами udev. например, в Debian, Ubuntu и т. д.

root@kitploit:~
sudo cp contrib/udev/93-pn53x.rules /lib/udev/rules.d/

В FreeBSD, если вы используете devd, также имеется файл правил: contrib/devd/pn53x.conf.

Конфигурация

Чтобы изменить поведение библиотеки по умолчанию, libnfc использует файл конфигурации, расположенный в sysconfdir (как указано в ./configure).

Пример файла с комментариями доступен в исходниках: libnfc.conf.sample

Если вы выполнили сборку, используя:

root@kitploit:~
./configure --prefix=/usr --sysconfdir=/etc

вы можете создать каталог конфигурации и скопировать пример файла:

root@kitploit:~
sudo mkdir /etc/nfc
sudo cp libnfc.conf.sample /etc/nfc/libnfc.conf

Чтобы настроить несколько устройств, вы можете либо изменить libnfc.conf, либо создать файл для каждого устройства в каталоге nfc/devices.d:

root@kitploit:~
sudo mkdir -p /etc/nfc/devices.d
printf 'name = "My first device"\nconnstring = "pn532_uart:/dev/ttyACM0"\n' | sudo tee /etc/nfc/devices.d/first.conf
printf 'name = "My second device"\nconnstring = "pn532_uart:/dev/ttyACM1"\n' | sudo tee /etc/nfc/devices.d/second.conf

Переменные окружения

Вы можете переопределить некоторые параметры конфигурации во время выполнения с помощью следующих переменных окружения:

  • LIBNFC_DEFAULT_DEVICE=<connstring>: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0 будет использовать pn532 на /dev/ttyACM0 в качестве устройства по умолчанию
  • LIBNFC_DEVICE=<connstring> проигнорирует все устройства в файлах конфигурации и будет использовать только то, которое определено в переменной
  • LIBNFC_AUTO_SCAN=<true|false> переопределяет параметр allow_autoscan в файле конфигурации
  • LIBNFC_INTRUSIVE_SCAN=<true|false> переопределяет параметр allow_intrusive_scan в файле конфигурации
  • LIBNFC_LOG_LEVEL=<0|1|2|3> переопределяет параметр log_level в файле конфигурации

Чтобы получить connstring распознанного устройства, можно использовать nfc-scan-device: LIBNFC_AUTO_SCAN=true nfc-scan-device покажет имена и connstrings всех найденных устройств.

Как сообщать об ошибках

Чтобы сообщить об ошибке, посетите https://github.com/nfc-tools/libnfc/issues и заполните форму отчёта об ошибке.

Если у вас есть вопросы или замечания, мы приглашаем вас опубликовать их в сообществе разработчиков: http://www.libnfc.org/community

Пожалуйста, обязательно укажите:

  • Версию libnfc

  • Информацию о вашей системе. Например:

    • Какая операционная система и её версия
    • Для Linux — какая версия библиотеки C

    И всё остальное, что вы считаете важным.

  • Трассировку с включённой отладкой.

    Воспроизведите ошибку с включённой отладкой, например, если команда была:

    root@kitploit:~
      $ nfc-list -v
    

    выполните её так:

    root@kitploit:~
      $ LIBNFC_LOG_LEVEL=3 nfc-list -v
    
  • Как воспроизвести ошибку.

    Пожалуйста, приложите короткую тестовую программу, демонстрирующую это поведение.

    В крайнем случае вы также можете указать ссылку на более крупный программный продукт,

    который можно загрузить.

  • Если ошибка приводила к аварийному завершению — точный текст, который был выведен

    при возникновении сбоя.

  • Дополнительная информация, такая как трассировки стека, может быть полезна, но

    не обязательна.

Патчи

Патчи можно отправлять на https://github.com/nfc-tools/libnfc/issues

Если патч исправляет ошибку, обычно рекомендуется включить всю информацию, описанную в разделе «Как сообщать об ошибках».

Устранение неполадок

Touchatag/ACR122:

Если ваше устройство Touchatag или ACR122 не обнаруживается библиотекой libnfc, убедитесь, что демон PCSC-lite (pcscd) установлен и запущен.

Если ваше устройство Touchatag или ACR122 не обнаруживается демоном PCSC-lite (pcsc_scan ничего не видит), попробуйте отключить определение неподдерживаемых прошивок в libccid: отредактируйте файл конфигурации libccid_Info.plist (обычно /etc/libccid_Info.plist), найдите <key>ifdDriverOptions</key>, измените значение <string>0x0000</string> на 0x0004, чтобы разрешить неподдерживаемые (bogus) устройства, и перезапустите демон pcscd.

ACR122:

Использование устройства ACR122 с libnfc без метки (например, для режимов NFCIP или эмуляции карты) требует ещё одной настройки PCSC-lite: необходимо разрешить использование команды CCID Exchange. Для этого отредактируйте файл конфигурации libccid_Info.plist (обычно /etc/libccid_Info.plist), найдите <key>ifdDriverOptions</key>, измените значение <string>0x0000</string> на 0x0001, чтобы разрешить CCID exchange, или на 0x0005, чтобы разрешить CCID exchange и неподдерживаемые устройства (см. предыдущее замечание), и перезапустите демон pcscd.

Предупреждение: если вы используете драйверы ACS CCID (acsccid), файл конфигурации находится, как правило, здесь: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist

SCL3711:

Libnfc нельзя использовать одновременно с проприетарным драйвером PCSC для SCL3711. Возможны два решения:

  • Либо вообще не устанавливать драйвер SCL3711
  • Либо останавливать демон PCSC, когда вы хотите использовать инструменты на основе libnfc

USB-устройство PN533 в Linux >= 3.1:

Начиная с версии ядра Linux 3.1, для использования libnfc не должны загружаться некоторые модули ядра: «nfc», «pn533» и «pn533_usb». Чтобы ядро не загружало эти модули автоматически, вы можете добавить их в чёрный список в файле конфигурации modprobe. Этот файл поставляется в архиве libnfc:

root@kitploit:~
sudo cp contrib/linux/blacklist-libnfc.conf /etc/modprobe.d/blacklist-libnfc.conf

FEITIAN bR500 и R502:

Libnfc может работать с проприетарным драйвером PCSC для bR500 и R502, который уже доступен в большинстве дистрибутивов Linux. Чтобы активировать поддержку PCSC: ./configure --with-drivers=pcsc. Считыватели, с которыми гарантированно работает:

  • Feitian bR500
  • Feitian R502 Dual interface reader
  • Feitian R502 CL(Contactless) reader

Эти считыватели поддерживаются CCID начиная с версии 1.4.25; убедитесь, что версия вашего драйвера CCID не ниже 1.4.25.

В macOS вы можете проверить версию CCID следующей командой и, при необходимости, установить последнюю версию драйвера CCID со страницы https://github.com/martinpaljak/osx-ccid-installer/releases

root@kitploit:~
grep -A 1 CFBundleShortVersionString /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist

В Linux вы можете проверить версию CCID следующей командой и, при необходимости, установить последнюю версию драйвера CCID со страницы https://ccid.apdu.fr/

root@kitploit:~
grep -A 1 CFBundleShortVersionString /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist

Примечания о товарных знаках

FeliCa — зарегистрированный товарный знак Sony Corporation. MIFARE — товарный знак NXP Semiconductors. Jewel Topaz — товарный знак Innovision Research & Technology. Все остальные товарные знаки являются собственностью их соответствующих владельцев.

Скачать инструмент