Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
libnfc — 跨平台近场通信(NFC)库 | Kitploit
工具/GitHubGitHub/nfc-tools/libnfc
RFID/NFC工具无线安全硬件与物联网安全
GitHubnfc-tools/libnfc

libnfc

跨平台近场通信(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

要使用特定驱动构建,请参阅 ./configure --help 中详细说明的 --with-drivers=... 选项。

安装

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 将使用 /dev/ttyACM0 上的 pn532 作为默认设备
  • 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 将显示所有已找到设备的名称和 connstring。

如何报告 Bug

要报告 Bug,请访问 https://github.com/nfc-tools/libnfc/issues 并填写 Bug 报告表单。

如果您有任何问题或意见,我们鼓励您在开发者社区中发帖: http://www.libnfc.org/community

请务必包含以下内容:

  • libnfc 的版本

  • 有关您系统的信息。例如:

    • 操作系统及版本
    • 对于 Linux,C 库的版本

    以及您认为相关的任何其他信息。

  • 启用调试后的跟踪信息。

    在调试模式下重现该 Bug,例如,如果命令是:

    root@kitploit:~
      $ nfc-list -v
    

    请这样运行:

    root@kitploit:~
      $ LIBNFC_LOG_LEVEL=3 nfc-list -v
    
  • 如何重现该 Bug。

    请附上一个能够展示该行为的简短测试程序。

    作为最后手段,您也可以提供一个指向较大型软件的指针,

    该软件可以下载。

  • 如果 Bug 是崩溃,请提供打印出的确切文本,

    即崩溃发生时打印的内容。

  • 堆栈跟踪等进一步信息可能有用,但

    并非必需。

补丁

补丁可以发布到 https://github.com/nfc-tools/libnfc/issues

如果补丁修复了 Bug,通常最好包含“如何报告 Bug”中描述的所有信息。

故障排除

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 以允许伪设备,然后重启 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 不能与 SCL3711 的 PCSC 专有驱动同时使用。有两种可能的解决方案:

  • 要么完全不安装 SCL3711 驱动
  • 要么在要使用基于 libnfc 的工具时停止 PCSC 守护进程

Linux >= 3.1 上的 PN533 USB 设备:

从 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 可以与 bR500 和 R502 的 PCSC 专有驱动配合使用,该驱动在大多数 Linux 环境中已可用。 要启用 PCSC 支持:./configure --with-drivers=pcsc。 已知可正常工作的读卡器:

  • Feitian bR500
  • Feitian R502 双接口读卡器
  • Feitian R502 CL(非接触式)读卡器

从 v1.4.25 起,CCID 即支持这些读卡器,请确保您的 CCID 驱动版本高于或等于 1.4.25。

在 MacOS 上,您可以使用以下命令检查 CCID 版本;如有需要,您可以从 https://github.com/martinpaljak/osx-ccid-installer/releases 安装最新的 CCID 驱动

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

在 Linux 上,您可以使用以下命令检查 CCID 版本;如有需要,您可以从 https://ccid.apdu.fr/ 安装最新的 CCID 驱动

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

专有声明

FeliCa 是索尼公司的注册商标。 MIFARE 是 NXP Semiconductors 的商标。 Jewel Topaz 是 Innovision Research & Technology 的商标。 所有其他商标均为其各自所有者的财产。

下载工具