Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
libnfc — Libreria Near Field Communication (NFC) indipendente dalla piattaforma | Kitploit
Strumenti/GitHubGitHub/nfc-tools/libnfc
Strumenti RFID/NFCSicurezza WirelessSicurezza Hardware e IoT
GitHubnfc-tools/libnfc

libnfc

Libreria Near Field Communication (NFC) indipendente dalla piattaforma

Vedi RepositorySito web
2.0k4801 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

*-

  • Libreria Near Field Communication (NFC) libera
  • Contributori storici di 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
  • Contributori aggiuntivi:
  • Vedere il file AUTHORS -*

Informazioni Generali

libnfc è una libreria che consente alle applicazioni in spazio utente l'accesso a dispositivi NFC.

Il sito web ufficiale non è più disponibile; è possibile consultarne una copia tramite la WayBackMachine.

Il forum ufficiale non è più disponibile; è possibile consultarne una copia tramite la WayBackMachine.

Il sito ufficiale di sviluppo è: https://github.com/nfc-tools/libnfc

Nota importante: questo file riguarda i sistemi POSIX; per Windows leggere README-Windows.md

Requisiti

Alcuni driver NFC dipendono da software di terze parti:

  • pn53x_usb & acr122_usb:

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

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

    • Supporta la compilazione con il driver pcsc, che può utilizzare tutti i lettori compatibili; Feitian R502 e bR500 hanno già superato il test.

La suite di test di regressione dipende dal framework cutter: http://cutter.sf.net

Compilazione

Nota: se si lavora direttamente da un clone git del repository, alcuni file devono essere generati per primi. Per farlo, eseguire autoreconf -vis

In alternativa, usare una versione .tar.bz2 di una release confezionata (che contiene già ./configure): https://github.com/nfc-tools/libnfc/releases/

La compilazione dovrebbe essere semplice come eseguire questi comandi:

root@kitploit:~
./configure
make

Per compilare con uno o più driver specifici, vedere l'opzione --with-drivers=... descritta in ./configure --help.

Installazione

root@kitploit:~
make install

Potrebbe essere necessario concedere all'utente i permessi per utilizzare il dispositivo. Su sistemi GNU/Linux, se si utilizza udev, si possono usare le regole udev fornite. ad es. su Debian, Ubuntu, ecc.

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

Su FreeBSD, se si utilizza devd, è disponibile anche un file di regole: contrib/devd/pn53x.conf.

Configurazione

Per cambiare il comportamento predefinito della libreria, libnfc usa un file di configurazione situato in sysconfdir (come fornito a ./configure).

Un file di esempio commentato è disponibile nei sorgenti: libnfc.conf.sample

Se avete compilato usando:

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

potete creare la directory di configurazione e copiare il file di esempio:

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

Per configurare più dispositivi, potete modificare libnfc.conf oppure creare un file per dispositivo in una directory 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

Variabili d'Ambiente

È possibile sovrascrivere alcune opzioni di configurazione in fase di esecuzione utilizzando le seguenti variabili d'ambiente:

  • LIBNFC_DEFAULT_DEVICE=<connstring>: LIBNFC_DEFAULT_DEVICE=pn532_uart:/dev/ttyACM0 userà pn532 su /dev/ttyACM0 come dispositivo predefinito
  • LIBNFC_DEVICE=<connstring> ignorerà tutti i dispositivi nei file di configurazione e userà solo quello definito nella variabile
  • LIBNFC_AUTO_SCAN=<true|false> sovrascrive l'opzione allow_autoscan nel file di configurazione
  • LIBNFC_INTRUSIVE_SCAN=<true|false> sovrascrive l'opzione allow_intrusive_scan nel file di configurazione
  • LIBNFC_LOG_LEVEL=<0|1|2|3> sovrascrive l'opzione log_level nel file di configurazione

Per ottenere la connstring di un dispositivo riconosciuto, potete usare nfc-scan-device: LIBNFC_AUTO_SCAN=true nfc-scan-device mostrerà i nomi e le connstring di tutti i dispositivi trovati.

Come segnalare bug

Per segnalare un bug, visitare https://github.com/nfc-tools/libnfc/issues e compilare un modulo di segnalazione bug.

Se avete domande o osservazioni, vi invitiamo a pubblicarle nella community degli sviluppatori: http://www.libnfc.org/community

Assicuratevi di includere:

  • La versione di libnfc

  • Informazioni sul vostro sistema. Ad esempio:

    • Quale sistema operativo e versione
    • Per Linux, quale versione della libreria C

    E qualsiasi altra cosa riteniate pertinente.

  • Una traccia con il debug attivato.

    Riproducete il bug con il debug, ad es. se era:

    root@kitploit:~
      $ nfc-list -v
    

    eseguitelo come:

    root@kitploit:~
      $ LIBNFC_LOG_LEVEL=3 nfc-list -v
    
  • Come riprodurre il bug.

    Includete un breve programma di test che mostri il comportamento.

    Come ultima risorsa, potete anche fornire un riferimento a un programma più grande

    che possa essere scaricato.

  • Se il bug ha causato un crash, il testo esatto che è stato stampato

    quando si è verificato il crash.

  • Ulteriori informazioni come stack trace possono essere utili, ma

    non sono necessarie.

Patch

Le patch possono essere inviate a https://github.com/nfc-tools/libnfc/issues

Se la patch corregge un bug, di solito è una buona idea includere tutte le informazioni descritte in "Come segnalare bug".

Risoluzione dei problemi

Touchatag/ACR122:

Se il vostro dispositivo Touchatag o ACR122 non viene rilevato da libnfc, assicuratevi che il demone PCSC-lite (pcscd) sia installato e in esecuzione.

Se il vostro dispositivo Touchatag o ACR122 non viene rilevato dal demone PCSC-lite (pcsc_scan non vede nulla), provate a disattivare il rilevamento del firmware non autentico di libccid: modificate il file di configurazione libccid_Info.plist (di solito /etc/libccid_Info.plist), individuate <key>ifdDriverOptions</key>, cambiate il valore <string>0x0000</string> in 0x0004 per consentire i dispositivi non autentici e riavviate il demone pcscd.

ACR122:

L'uso di un dispositivo ACR122 con libnfc e senza tag (ad es. per usare le modalità NFCIP o l'emulazione di carta) richiede un'altra modifica a PCSC-lite: è necessario consentire l'uso del comando CCID Exchange. Per fare ciò, modificate il file di configurazione libccid_Info.plist (di solito /etc/libccid_Info.plist), individuate <key>ifdDriverOptions</key>, cambiate il valore <string>0x0000</string> in 0x0001 per consentire lo scambio CCID oppure in 0x0005 per consentire lo scambio CCID e i dispositivi non autentici (cfr. osservazione precedente) e riavviate il demone pcscd.

Attenzione: se si usano i driver ACS CCID (acsccid), il file di configurazione si trova in un percorso del tipo: /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist

SCL3711:

Libnfc non può essere usato contemporaneamente al driver proprietario PCSC di SCL3711. Due possibili soluzioni:

  • O non installare affatto il driver SCL3711
  • Oppure fermare il demone PCSC quando si vogliono usare gli strumenti basati su libnfc

Dispositivo USB PN533 su Linux >= 3.1:

Dalla versione 3.1 del kernel Linux, alcuni moduli del kernel non devono essere caricati per usare libnfc: "nfc", "pn533" e "pn533_usb". Per impedire al kernel di caricare automaticamente questi moduli, potete metterli in blacklist in un file di configurazione modprobe. Questo file è fornito all'interno dell'archivio libnfc:

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

FEITIAN bR500 e R502:

Libnfc può funzionare con il driver proprietario PCSC di bR500 e R502, già disponibile sulla maggior parte delle configurazioni Linux. Per attivare il supporto PCSC: ./configure --with-drivers=pcsc. Lettori noti per funzionare:

  • Feitian bR500
  • Feitian R502 lettore a doppia interfaccia
  • Feitian R502 lettore CL (contactless)

Questi lettori sono supportati da CCID dalla v1.4.25; assicuratevi che la versione del driver CCID sia uguale o superiore alla 1.4.25.

Su MacOS, potete controllare la versione di CCID con il seguente comando e, se necessario, installare l'ultimo driver CCID da 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

Su Linux, potete controllare la versione di CCID con il seguente comando e, se necessario, installare l'ultimo driver CCID da https://ccid.apdu.fr/

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

Note sui marchi

FeliCa è un marchio registrato di Sony Corporation. MIFARE è un marchio di NXP Semiconductors. Jewel Topaz è un marchio di Innovision Research & Technology. Tutti gli altri marchi sono di proprietà dei rispettivi titolari.

Scarica lo strumento