Reverse Engineeringsub-ghzradioanalysisreverse-engineeringsecurity-research

rfcat

Rfcat is a Swiss army knife for sub-GHz radio analysis. It aids security researchers in reverse-engineering hardware by reducing the time needed to create custom tools for unknown targets.

Description

Rfcat is a versatile sub-GHz analysis tool designed to streamline security research and hardware reverse-engineering. By providing an interactive Python interface and specialized utilities, it enables rapid prototyping and analysis of sub-GHz radio communications commonly found in IoT devices, remote controls, and wireless sensors.

The toolset includes rfcat for direct radio interaction, rfcat_bootloader for firmware management on compatible devices, rfcat_msfrelay for integration with Metasploit, and rfcat_server for remote operations. These components support spectrum analysis, signal transmission/reception, and device firmware manipulation, making rfcat essential for analyzing proprietary wireless protocols.

Primary use cases include identifying unknown signal frequencies, decoding custom modulation schemes, replaying captured signals, and flashing custom firmware to sub-GHz transceivers for deeper protocol analysis.

How It Works

Rfcat interfaces with sub-GHz radio dongles (typically Yard Stick One) via USB, providing Pythonic control over transmission, reception, and spectrum analysis. The core rfcat command spawns an interactive IPython shell with a 'd' instance that exposes low-level radio functions like frequency setting, modulation control, and bitstream manipulation. The bootloader utility communicates with the CC bootloader protocol on Texas Instruments chips to manage firmware pages, enabling custom firmware deployment without hardware modifications. MSF relay mode bridges rfcat's capabilities to Metasploit Framework, exposing radio functions as RPC endpoints for exploit integration.

Installation

bash
sudo apt install rfcat

Flags

-r, --researchInteractive Python and the "d" instance to talk to your dongle. melikey longtime.
-i, --index INDEXSpecify device index
-s, --specanStart spectrum analyzer
-f, --centfreq CENTFREQSet center frequency
-c, --inc INCSet increment
-n, --specchans SPECCHANSSet spectrum analyzer channels
--bootloaderUse bootloader mode
--forceForce operation
-SServer mode

Examples

Show help message and usage information for rfcat
rfcat -h
Start interactive Python research mode with dongle instance 'd'
rfcat -r
Launch spectrum analyzer mode
rfcat -s
Run spectrum analysis centered at 433.92 MHz with 256 channels
rfcat -s -f 433.92M -n 256
Download hex firmware file to device via serial port
rfcat_bootloader /dev/ttyUSB0 download firmware.hex
Erase entire user flash area on the device
rfcat_bootloader /dev/ttyUSB0 erase_all
Reset bootloader page tracking to allow overwriting without power cycle
rfcat_bootloader /dev/ttyUSB0 reset
Start MSF relay without authentication on device index 0
rfcat_msfrelay -i 0 --noauth
Updated 2026-04-16kali.org ↗