nfc-relay-picc(1)
π nfc-relay-picc β the relay demo tool bestie π
okay so this is nfc-relay-picc, part of the NFC Utilities lineup, and it's the relay demonstration tool for ISO14443-4 β¨ literally what it says on the tin, no cap.
β¨ SYNOPSIS β¨
nfc-relay-picc
that's it. that's the whole thing. no args, no drama, just vibes π
πΈ DESCRIPTION πΈ
so nfc-relay-picc is the icon, the moment, the main character π
this tool needs two NFC devices, bestie. not one. two. one device gets configured as the target and it will emulate an ISO/IEC 14443-4 type A tag, while the second device gets configured as the initiator and acts as a reader πβ¨
the genuine tag gets placed on the second device (the initiator), and the tag emulator (the target) gets placed close to the original reader. and then?? all communication is relayed and shown on the screen in real-time π
here's the lil chain of custody, look at her go:
tag <---> initiator (relay) <---> target (relay) <---> original reader
it's giving middle-man but make it legal and useful π¦
π OPTIONS π
-hβ Help. lists the options for u π«Ά-qβ Quiet mode. suppresses printing of the relayed data, which improves timing β±οΈ (yes bestie, silence really is golden here)-tβ Target mode only (use this one on the reader side). commands are sent to file descriptor4, responses are read from file descriptor3π₯-iβ Initiator mode only (use this one on the tag side). commands are read from file descriptor3, responses are sent to file descriptor4π€-sβ Swap roles of the found devices. usually the first found device is used as target (emulator) and the second as initiator (reader). using this option, those roles are inversed π-n Nβ adds a waiting time ofNseconds (integer) in the loop β³
π EXAMPLES π
basic usage, the classic, the blueprint:
nfc-relay-picc
remote relay over TCP/IP, i.e. when u wanna be extra long-distance about it π‘:
socat
TCP-LISTEN:port,reuseaddr
"EXEC:nfc-relay-picc -i,fdin=3,fdout=4"
socat
TCP:remotehost:port
"EXEC:nfc-relay-picc -t,fdin=3,fdout=4"
π NOTES π
there are some differences with nfc-relay, just so u know π
this example only works with PN532, because it relies on its internal handling of ISO14443-4 specificities. that's the whole reason it goes, fr fr.
and thanks to that internal handling & injection of WTX frames, this example works on readers that are very strict on timing β like, the picky ones. the ones that will absolutely clock u. and it still eats π₯
π BUGS π
found a bug? please report any bugs on the libnfc issue tracker at:
https://github.com/nfc-tools/libnfc/issues
don't be shy bestie, they wanna know π
π LICENCE π
libnfc is licensed under the GNU Lesser General Public License (LGPL), version 3.
libnfc-utils and libnfc-examples are covered by the BSD 2-Clause license (yes, the original says "the the", we're keeping the facts exactly as they are π
).
this manual page is licensed under the terms of the GNU GPL (version 2 or later).
and that's the whole page, bestie π«Ά this came to u from libnfc, dated October 12, 2010 β an absolute classic, still iconic, still slaying ππβ¨
π¦ where this page comes from
- alpine 3.24: libnfc-doc 1.8.0-r2 Β· LGPL-3.0-or-later
- arch rolling: libnfc 1.8.0-4 Β· LGPL-3.0-or-later
- debian bookworm: libnfc-bin 1.8.0-2 Β· LGPL-3.0-only
- debian trixie: libnfc-bin 1.8.0-3.1+b1 Β· LGPL-3.0-only
- fedora 43: libnfc-examples 1.8.0-12.fc43 Β· LGPL-3.0-or-later
- fedora 44: libnfc-examples 1.8.0-13.fc44 Β· LGPL-3.0-or-later
- nixos 26.05: libnfc 1.8.0
- nixpkgs unstable: libnfc 1.8.0
- ubuntu jammy: libnfc-bin 1.8.0-2 Β· LGPL-3.0-only
- ubuntu noble: libnfc-bin 1.8.0-3.1build1 Β· LGPL-3.0-only
- ubuntu questing: libnfc-bin 1.8.0-3.1build1
- ubuntu resolute: libnfc-bin 1.8.0-3.1build2 Β· LGPL-3.0-only
- ubuntu stonking: libnfc-bin 1.8.0-3.1build2 Β· LGPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms