RfCat

Bibliothèque et outil en Python pour communiquer avec des dongles RF sub-1GHz (YARD Stick One, Imme). Utilisé pour interagir avec et rejouer des signaux de périphériques sans fil propriétaires. Python-based library and tool for talking to sub-1GHz RF dongles (YARD Stick One, Imme). Used to interact with and replay signals from proprietary wireless devices.

↗ https://github.com/atlas0fd00m/rfcat

Overview

RfCat turns cheap sub-1GHz radio dongles (YARD Stick One, hacked Imme) into a scriptable transceiver from Python. It’s the go-to tool for interacting with proprietary RF devices outside the WiFi/Bluetooth space — garage door openers, wireless doorbells, tire pressure sensors, industrial remotes, alarm sensors — letting you sniff, replay, and transmit raw or modulated RF at arbitrary frequencies.

Common Usage

Launch the interactive rfcat shell (auto-detects the dongle as d)

rfcat -r

List connected/supported dongles

rfcat -s
# Inside the rfcat interactive shell:

# Set center frequency (e.g. 315 MHz, common for garage remotes)
d.setFreq(315000000)

# Configure modulation for OOK (On-Off Keying), typical for simple remotes
d.setMdmModulation(MOD_ASK_OOK)
d.setMdmDRate(4800)

# Sniff and print raw RF frames
d.RFlisten()

# Replay a previously captured byte sequence
d.RFxmit(b'\x2c\x5a\x96\xa5', repeat=5)

# Capture a single received packet with signal metadata
data, timestamp = d.RFrecv()

Tips

  • YARD Stick One is the most common supported dongle on Kali; requires the rflib/rfcat udev rules to access it without root
  • Use d.reset() if the dongle stops responding mid-session
  • Combine with a spectrum analyzer app (or specan mode) to find the frequency before configuring setFreq
Help / Man page
rfcat [options]

  -r, --repl          drop into interactive python shell with dongle bound to `d`
  -s, --specan        run interactive spectrum analyzer
  -d, --dongle=NUM     select dongle index if multiple are connected
  -b, --bootloader     put dongle into bootloader mode

Interactive shell key objects/methods:
  d.setFreq(hz)                set center frequency
  d.setMdmModulation(mode)     MOD_ASK_OOK, MOD_2FSK, MOD_GFSK, MOD_MSK, ...
  d.setMdmDRate(baud)          set data rate
  d.RFxmit(data, repeat=N)     transmit raw bytes
  d.RFrecv()                   receive a single packet
  d.RFlisten()                 continuously print received packets

Vue d’ensemble

RfCat transforme des dongles radio sub-1GHz bon marché (YARD Stick One, Imme modifié) en émetteur-récepteur scriptable depuis Python. C’est l’outil de référence pour interagir avec des périphériques RF propriétaires en dehors de l’espace WiFi/Bluetooth : ouvre-portes de garage, sonnettes sans fil, capteurs de pression des pneus, télécommandes industrielles, capteurs d’alarme, permettant de sniffer, rejouer et transmettre du RF brut ou modulé à des fréquences arbitraires.

Utilisation courante

Lancer le shell interactif rfcat (auto-détecte le dongle sous le nom d)

rfcat -r

Lister les dongles connectés/pris en charge

rfcat -s
# Dans le shell interactif rfcat :

# Définir la fréquence centrale (par ex. 315 MHz, courant pour les télécommandes de garage)
d.setFreq(315000000)

# Configurer la modulation pour l'OOK (On-Off Keying), typique des télécommandes simples
d.setMdmModulation(MOD_ASK_OOK)
d.setMdmDRate(4800)

# Sniffer et afficher les trames RF brutes
d.RFlisten()

# Rejouer une séquence d'octets préalablement capturée
d.RFxmit(b'\x2c\x5a\x96\xa5', repeat=5)

# Capturer un seul paquet reçu avec les métadonnées de signal
data, timestamp = d.RFrecv()

Conseils

  • Le YARD Stick One est le dongle pris en charge le plus courant sur Kali ; nécessite les règles udev rflib/rfcat pour y accéder sans root
  • Utiliser d.reset() si le dongle cesse de répondre en cours de session
  • Combiner avec une application d’analyseur de spectre (ou le mode specan) pour trouver la fréquence avant de configurer setFreq
Aide / Page de manuel
rfcat [options]

  -r, --repl          drop into interactive python shell with dongle bound to `d`
  -s, --specan        run interactive spectrum analyzer
  -d, --dongle=NUM     select dongle index if multiple are connected
  -b, --bootloader     put dongle into bootloader mode

Interactive shell key objects/methods:
  d.setFreq(hz)                set center frequency
  d.setMdmModulation(mode)     MOD_ASK_OOK, MOD_2FSK, MOD_GFSK, MOD_MSK, ...
  d.setMdmDRate(baud)          set data rate
  d.RFxmit(data, repeat=N)     transmit raw bytes
  d.RFrecv()                   receive a single packet
  d.RFlisten()                 continuously print received packets