Wireless Attacksrfidnfcproxmarkfirmwareflashingclient

Proxmark3

Proxmark3 is a firmware, flasher, and client tool for the Proxmark3 hardware device used in RFID and NFC research. It supports interacting with Proxmark3 RDV4.0 and older hardware revisions.

Description

The proxmark3 package provides the client and tools dedicated to maximizing the features of Proxmark3 RDV4.0 new hardware and design, while also supporting older revisions. It enables users to connect to the device via serial port, execute commands, run scripts in Lua or Python, and perform firmware flashing operations. This tool is essential for RFID/NFC analysis, emulation, and low-frequency/high-frequency tag interactions.

Use cases include executing Proxmark3 commands for tag detection like 'hf mf chk', running script files for batch operations, and managing firmware updates. Helper scripts such as pm3 simplify port detection and automate common tasks like flashing stock images. The package ecosystem includes proxmark3-common for scripts, proxmark3-firmwares for binary images, and proxmark3-doc for documentation.

Note that Linux users may need to blacklist modem-manager to avoid flasher issues, as detailed in the official documentation.

How It Works

Proxmark3 operates as a client connecting to the Proxmark3 device over serial ports like /dev/ttyACM0 or Bluetooth, communicating via USB-CDC or UART protocols. It sends commands to the device's firmware for RFID/NFC operations on low-frequency (lf) and high-frequency (hf) tags, supports scripting in Lua/Python for automation, and includes a flasher mode to update bootrom and fullimage firmware using ELF files. Debug levels control verbosity, and options like --flush ensure real-time output. Helper scripts like pm3 auto-detect ports and mimic client behavior.

Installation

bash
sudo apt install proxmark3

Flags

-h/--helpthis help
-v/--versionprint client version
-p/--portserial port to connect to
-w/--wait20sec waiting the serial port to appear in the OS
-f/--flushoutput will be flushed after every print
-d/--debug <0|1|2>set debugmode
-c/--command <command>execute one Proxmark3 command (or several separated by ';')
-l/--lua <lua_script_file>execute Lua script
-y/--py <python_script_file>execute Python script
-s/--script-file <cmd_script_file>script file with one Proxmark3 command per line
--flashflash Proxmark3, requires at least one --image
--unlock-bootloaderEnable flashing of bootloader area *DANGEROUS* (need --flash)
--image <imagefile>image to flash. Can be specified several times

Examples

runs the pm3 client
proxmark3 /dev/ttyACM0
flush output every time
proxmark3 /dev/ttyACM0 -f
wait for serial port
proxmark3 /dev/ttyACM0 -w
runs the pm3 client in OFFLINE mode
proxmark3
execute cmd and quit client
proxmark3 /dev/ttyACM0 -c "hf mf chk --1k"
execute Lua script `hf_read` and quit client
proxmark3 /dev/ttyACM0 -l hf_read
execute each pm3 cmd in file and quit client
proxmark3 /dev/ttyACM0 -s mycmds.txt
to flash fullimage and bootloader
proxmark3 /dev/ttyACM0 --flash --unlock-bootloader --image bootrom.elf --image fullimage.elf
Updated 2026-04-16kali.org ↗