← retour aux outils back to tools

# 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