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/rfcatOverview
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/rfcatudev rules to access it without root - Use
d.reset()if the dongle stops responding mid-session - Combine with a spectrum analyzer app (or
specanmode) to find the frequency before configuringsetFreq
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/rfcatpour 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 configurersetFreq
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