Files
proxmark3/doc/standalone/hf_unisniff.md

3.4 KiB

HF_UNISNIFF — Multi-Protocol HF Sniffer

Author: Equip Frequency: HF (13.56 MHz) Hardware: RDV4 recommended (flash for config persistence)

Back to Standalone Modes Index | Source Code | Development Guide


What

A universal HF sniffer that supports multiple protocols — ISO 14443A, ISO 14443B, ISO 15693, and iCLASS — selectable at runtime via button press before sniffing begins.

Why

Rather than flashing different standalone firmware for each protocol you want to sniff, this mode combines all four HF sniffing protocols into a single firmware. You select the protocol at startup using the button, then sniff. This is especially useful when you don't know which protocol a target system uses.

How

  1. Protocol Selection: On startup, the LEDs indicate the currently selected protocol. Press the button to cycle through protocols.
  2. Sniff: Hold the button to start sniffing the selected protocol. The Proxmark3 passively captures RF traffic between a reader and tag.
  3. Data Storage: If flash is available, captured trace data is saved to hf_unisniff.trace. Otherwise data is held in BigBuf (volatile — lost on power cycle).
  4. Retrieval: Connect to the client and download the trace data for analysis.

LED Indicators — Protocol Selection

LED Pattern Protocol
A only ISO 14443A
B only ISO 14443B
C only ISO 15693
D only iCLASS

LED Indicators — Operation

LED Meaning
Selected LED (blink) Sniffing in progress
A+B+C+D (solid) Error

Button Controls

Action Effect
Single click Cycle to next protocol (A→B→C→D→A)
Long hold Start sniffing selected protocol
Press during sniff Stop sniffing

Configuration File

If flash is available, the mode reads hf_unisniff.conf to remember the last-used protocol. Format is a single byte:

Value Protocol
0x01 ISO 14443A
0x02 ISO 14443B
0x03 ISO 15693
0x04 iCLASS

State Machine

stateDiagram-v2
    [*] --> SelectProtocol : Startup

    state SelectProtocol {
        [*] --> ISO14443A
        ISO14443A --> ISO14443B : Button click
        ISO14443B --> ISO15693 : Button click
        ISO15693 --> iCLASS : Button click
        iCLASS --> ISO14443A : Button click
    }

    SelectProtocol --> Sniffing : Long hold

    state Sniffing {
        [*] --> Capture
        Capture --> Capture : Logging packets
    }

    Sniffing --> SaveTrace : Button press / buffer full
    SaveTrace --> SelectProtocol : Trace saved to flash
    SaveTrace --> [*] : No flash (data in BigBuf)

    SelectProtocol --> [*] : USB connection

Flash Files

File Contents
hf_unisniff.conf Last-selected protocol (1 byte)
hf_unisniff.trace Captured trace data

Compilation

make clean
make STANDALONE=HF_UNISNIFF -j
./pm3-flash-fullimage