RDN SecurityRadek Zdonczyk - cybersecurity guy

Satellite Hacking Handbook

Satellite link reception, decoding and security research: from the first IQ recording to the ground segment, with a catalogue of 226 links.

ScopeReception · protocols · ground segment
How To4 guides
Catalogue226 links, 20 sections
Video15 talks and guides
Radek Zdonczyk · 23 Oct 2026
A ThinkPad running Gqrx at 137.9 MHz, a DVB-T dongle used as an SDR receiver and a QFH antenna made of PVC pipe on a tripod on a roof
My first station: a ThinkPad running Gqrx at 137.9 MHz, a DVB-T dongle as an RTL-SDR and a QFH antenna made of PVC pipe on the roof

I got interested in the subject many, many years ago. Some time later I built my first project, on hardware that was fairly old even back then: I converted a TV dongle into a receiver and built an antenna out of PVC pipe. It worked, and it was a fun project. Since then I have collected a lot more equipment and point popular dish antennas at the sky looking for something interesting... and a few bigger ideas are waiting to be built.

Over that time I have also been collecting material about satellites: how to receive them, how to take their signals apart into frames and what their security looks like when someone takes a closer look. Bookmarks, repositories, hardware documentation, CTF write-ups, conference recordings. At some point the "sat" folder in my browser started to look like a drawer full of cables, so I decided to put it in order. For myself and for you.

Ground rulesReceiving a signal is one thing, using its content is another: if the data is not meant for you, you do not publish it and you do not use it. Transmitting requires a licence and radio permits, and talking to someone else's satellite also requires its operator's consent. Practise attacks in your own lab, in CTFs and on recordings that their authors published for learning.

Satellite system / contents

A satellite system is divided into four segments. The table shows which chapters of the handbook cover each of them.

Segment What it covers Chapters
Space The satellite: flight software (e.g. NASA cFS, F Prime), RTOS, command receiver, buses Ground segment and flight software, Security research
Link Downlink with telemetry and data, uplink with commands. Modulation, coding, frames, sometimes encryption RF in a nutshell, How To: decoding without an antenna, How To: first reception on UHF, How To: Iridium, How To: S-band, Tracking, Signal analysis, Protocols
Ground Stations with antennas, frame transport to mission control, mission control, operator network Ground segment and flight software, Transmitting (TX)
User SATCOM terminals, modems, GNSS receivers Security research, catalogue: SATCOM, DVB and terminals, GNSS and PNT

At the end: the link Catalogue and Attachments.

RF in a nutshell

Power and noise

Sampling and IQ

Modulation

Error correction

Antennas

Bands

Band Range Uses
VHF 30-300 MHz APRS from the ISS (145.825 MHz), amateur satellites in 145.8-146 MHz
UHF 300 MHz-1 GHz Amateur CubeSats (435-438 MHz)
L 1-2 GHz GNSS, Inmarsat, Iridium (1616-1626.5 MHz)
S 2-4 GHz Telemetry and commands: uplink 2025-2110 MHz, downlink 2200-2290 MHz
C 4-8 GHz Older SATCOM and television
X 8-12 GHz Earth observation data, deep-space probes
Ku 12-18 GHz Satellite TV, VSAT, satellite internet
K / Ka 18-26.5 / 26.5-40 GHz Broadband satellite internet

Band edges follow the NASA convention. SATCOM service names do not always match them; choose hardware by its range in MHz.

Orbits

Video: an introduction to SDR and LEO satellite reception with a cheap USB receiver - Gerard de Jong, Hacking satellites with Software Defined Radio (BSides Cape Town 2019, 45 min).

How To: decoding without an antenna

An exercise on ready-made recordings. It tests the chain IQ file - demodulation - frames without an antenna and without waiting for a pass.

Environment: DragonOS is a Linux distribution with SDR software preinstalled (Tech Minds overview, 11 min). The tools can also be installed from your own distribution's packages.

  1. Download satellite-recordings, recordings prepared for gr-satellites.
  2. Run the decoder:
    gr_satellites FUNcube-1 --wavfile satellite-recordings/ao73.wav
    Raw IQ: --rawfile file --iq --samp_rate <Hz>.
  3. Open the same recording in Inspectrum and measure the signal width and symbol rate with the cursors. The same measurement is made on an unknown signal before choosing a demodulator.
  4. Save your own recordings in SigMF: an IQ data file plus a .sigmf-meta file with frequency, sample rate, time and hardware description.

Unknown protocols: Universal Radio Hacker (demodulation and frame analysis). More recordings with analyses: Daniel Estévez's blog, the author of gr-satellites.

How To: first reception on UHF

Hardware: an RTL-SDR Blog V4, an antenna (V-dipole, QFH or a handheld Yagi such as an Arrow) and a computer. The RTL-SDR V4 needs the RTL-SDR Blog driver; older distribution packages do not support it.

Before the first reception: 10 Common Mistakes Made With Software Defined Radio (Tech Minds, 15 min) - software choice, drivers, coax losses, signal bandwidth, gain settings.

  1. Choose a target. SatNOGS DB gives the transmitter frequency, modulation and baud rate. In SatNOGS Network check whether other stations received it in the last few days; no observations usually means the satellite is not transmitting. Good first targets: CubeSats with telemetry in 435-438 MHz and APRS from the ISS (ARISS status).
  2. Plan the pass. Gpredict shows passes over the station location and corrects for Doppler. Choose passes with a maximum elevation above 30°; lower down, buildings and trees attenuate the signal.
  3. Record. Record the whole pass as IQ in SDR++ or Gqrx. The recording can then be decoded offline many times with different settings.
  4. Decode. CubeSat telemetry: gr-satellites. AX.25 and APRS packets: Dire Wolf.
  5. Document the session. Fill in the field test card and the recording metadata. Comparing several sessions shows which changes in the chain improve reception.

How To: Iridium (L-band)

Iridium is a LEO satellite constellation transmitting in the 1616-1626.5 MHz band. An RTL-SDR covers this range, but not all 10 MHz at once; an SDR sampling at 10 Msps or more (e.g. a HackRF) receives the whole band. The whole process is shown in Hacking Iridium Satellites With Iridium Toolkit (Tech Minds, 16 min).

  1. Antenna. A simple 1.6 GHz patch antenna pointed at the sky.
  2. Demodulation. gr-iridium:
    iridium-extractor -D 4 examples/hackrf.conf > output.bits
    The program detects bursts and writes every good frame as a line of bits. For an RTL-SDR pick an example configuration that covers one of the channels (e.g. Ring Alert).
  3. Parsing. iridium-toolkit:
    python3 iridium-parser.py -p output.bits > output.parsed
  4. Analysis. reassembler.py -i output.parsed -m live-stats shows statistics of received frames; beam-plotter.py plots the satellites' spot beams.

iridium-toolkit can also reassemble messages and voice frames. That is the content of other people's communication, so the ground rules at the top of the handbook apply.

How To: S-band (2.2-2.3 GHz)

S-band is the main band for telemetry and commands of professional missions. Compared with UHF, three things change:

Reference station. UHF-Satcom describes the setup used for most of its receptions: an 88 cm dish, a 3.5-turn helix feed tuned to 2250 MHz and a G4DDK vLNA (NF 0.30-0.33 dB, gain 25-26 dB, +12 V through a bias-tee). The helix is wound left-handed (LHCP) because most S-band downlinks are RHCP and reflection off the dish reverses the sense of polarisation. The page includes feed dimensions, build photos and measurements of cheaper LNAs (VK5EME, LNA4ALL).

Off-the-shelf kit. Discovery Dish (KrakenRF): a 70 cm reflector weighing under 1 kg with interchangeable feeds that include an LNA and filter - S-band 2.2-2.3 GHz, Inmarsat 1.525-1.66 GHz, hydrogen line 1.42 GHz. Price on Crowd Supply: USD 149 for the dish, USD 125 per feed (October 2026). Assembly and feeds: manufacturer documentation. Example of a hydrogen-line dish project: Scanning the Galactic Plane (Photonic, 15 min).

Radio.

SDR Range Mode Notes
RTL-SDR Blog V4 up to about 1.7 GHz RX 8 bit, about 2.4 Msps. VHF/UHF/L; does not reach S-band
HackRF One 1 MHz-6 GHz RX/TX half duplex 8 bit, up to 20 Msps. General-purpose lab tool; low dynamic range, easy to overload
ADALM-Pluto 325 MHz-3.8 GHz RX/TX full duplex 12 bit, up to 20 MHz bandwidth. USB 2.0 limits continuous recording
USRP B210 70 MHz-6 GHz 2x RX/TX 12 bit, up to 56 MHz bandwidth, USB 3.0. Above 6 GHz with a downconverter

Documentation: Pluto, B210, USRP bandwidth and sample rate, HackRF.

First target: PROBA-1. An ESA satellite launched in 2001. It dumps data at 2235 MHz, BPSK, 2.048 Mbps.

  1. Check the SatNOGS DB entry and recent observations.
  2. Record a pass with a Pluto or B210 (several Msps of continuous IQ).
  3. Decode in SatDump, pipeline proba1_dump.
  4. To learn how the chain is built: the S-Band-Decoders repository (archived since 2022), where the demodulator, Viterbi decoder and frame decoder are separate programs.

Above 6 GHz. The B210 stops at 6 GHz, so X-band (8 GHz) and Ku-band reception needs a downconverter. In its documentation check the input range, LO and IF frequencies and oscillator stability; LO drift adds to the Doppler shift. For Ku-band an ordinary satellite TV LNB does the job of the downconverter; connecting an LNB to an SDR is shown in Connecting a Ku-band LNB to an SDR (dereksgc, 10 min).

Tracking: rotator and control

With a 10-13° beam, manual pointing is enough only for low, slow passes. A rotator consists of three layers:

Layer Projects
Mechanics SatNOGS Rotator v3 to build yourself (az/el). Hiltron HMAM-XY - a professional XY mount. Portable motorised Ku dishes (Dish Tailgater, VuQube VQ1000) as a cheap positioner: Hacking Portable Satellite Dishes, part 2 (saveitforparts, 14 min)
Controller SatNOGS Rotator Controller. Viorel Racoviteanu's controller on Arduino, with a video series: part 1 - software and prototyping (21 min). The WB0OEW autonomous tracker: Building An Autonomous Satellite Tracker For Ham Radio, part 1 (HamRadioConcepts, 27 min)
Software Gpredict computes the satellite position, Hamlib (rotctld) turns it into commands for the controller

When choosing a rotator:

An automatic station that schedules passes by itself and uploads results to the network: SatNOGS Setup.

Signal analysis: Tianwen-1 and Falcon 9

Tianwen-1 is the best publicly documented example of the whole path from spectrum to the meaning of packet fields. July 2020, the Chinese probe shortly after launch towards Mars.

  1. Recording. Paul Marsh (M0EYT) records the probe's X-band downlink.
  2. Physical layer. r00t.cz identifies a PM carrier with subcarriers. Telemetry: BPSK at 16,384 Bd on a 65,536 Hz subcarrier.
  3. Coding. A rate 1/2 convolutional code and Reed-Solomon as in CCSDS, with one exception: RS does not use the dual-basis representation assumed by the CCSDS 131.0 standard. A standard CCSDS decoder will not decode the frames until that option is switched off.
  4. Frames. AOS frames with separate virtual channels for telemetry, memory dumps, idle fill and playback of stored data.
  5. Packets. About 50 active APIDs. APID 0x507 carries the XYZ position in kilometres every 32 seconds, APID 0x500 sun sensor readings.
  6. Verification. Daniel Estévez recognises state vectors (position and velocity) in these tables, propagates them in NASA GMAT and compares them with the direction measured by the 20 m antenna in Bochum and by amateur stations.

A second example: in March 2021 radio amateurs in Europe decoded part of the telemetry of the Falcon 9 second stage in orbit. The format was close to a standard one, but extracting the bitstream needed custom tools and working out the data structure meant testing hypotheses. Overview: How Amateur Radio Fans Decoded SpaceX's Telemetry & Engineering Video (Scott Manley, 10 min).

In both cases every stage ends with a result that can be checked: a spectrum, demodulator lock, a valid CRC, field values consistent with the physics of flight. The authors separate identified fields from hypotheses.

Protocols: what's in a frame

Most professional missions use CCSDS standards. The structure resembles a TCP/IP stack. Layers from the bottom:

Layer CCSDS / ECSS standard Tools
Channel coding 131.0: convolutional code, Reed-Solomon, LDPC, turbo, randomisation gr-satellites, SatDump
Link frames TM (132.0), TC (232.0), AOS (732.0), USLP (732.1) gr-satellites, Wireshark
Link security SDLS (355.0): frame authentication and encryption NASA CryptoLib
Packets Space Packet (133.0); the APID identifies the data source CCSDSPy, spacepackets
Services ECSS PUS (telemetry and commands), CFDP (file transfer) spacepackets
Data description XTCE: telemetry and command dictionary Yamcs
Station and mission control SLE: frames transported over TCP/IP SLE Java, PCAP for Wireshark

Small satellites often do not use CCSDS but AX.25 or CSP (CubeSat Space Protocol).

Ground segment and flight software

This part is software, parsers and networks, i.e. the standard scope of security testing. A basic lab fits both ends of the link on one computer:

Ready-made labs: the spacecrafthacking repository for the book The Spacecraft Hacker's Handbook (Andrzej Olchawa, Milenko Starcik, No Starch Press, 2026). Its directories match the chapters: mission control, ground segment protocols (SLE), ground systems, flight software, SATCOM terminals and GNSS.

Security research: where to start

Threat models. SPARTA (Aerospace Corporation) and SPACE-SHIELD (ESA) are the MITRE ATT&CK equivalents for space systems: tactics, techniques and countermeasures. NIST good practice: IR 8270 (satellite operations), IR 8401 (ground segment), IR 8323r1 (PNT: positioning, navigation and timing).

CTF. Hack-A-Sat was a US Air Force and Space Force competition run from 2020 to 2023; the 2023 final was played on the Moonlighter satellite in orbit. The qualifier challenges are public, and the Solar Wine team's write-ups describe the solutions step by step.

Talks and demonstrations:

Publications and archives. Awesome Space Security collects papers and talks. Most practical presentations are in the archives of DEF CON, Black Hat and Aerospace Village.

Transmitting (TX)

Transmitting covers two cases: your own bench in the lab, or a link you are licensed for and have the satellite operator's consent to use. In the lab the transmitter works into a dummy load through a coupler and attenuators, not into an antenna.

The full transmit and receive chain is described in the documentation of the discontinued Satlab station: a 2.4 m dish, uplink 2025-2110 MHz, downlink 2200-2290 MHz, GMSK 32-512 kbps. On the TX side an SDR modem with a ceramic filter drives a GaN amplifier with more than 20 W of output, switched on by a PTT signal from the modem. The signal goes through a cavity duplex filter to the feed, which also houses the LNA of the RX chain. Station figures: EIRP 36 dBW, G/T 9 dB/K, beamwidth ±2.25°.

When putting together a TX chain, define:

All of these items are in the equipment list.

Ready-made stations for comparison:

Station What it includes Documentation
Groundcom Dual S/X 2.4-4.5 m dishes; S-band TX/RX, X-band RX Specification
Orbital Systems 2.4TSX1 2.4 m; positioner, controller, upconverter, HPA, downconverter Datasheet PDF
Remos S/X Tracking antenna with modem, configured per mission System overview
Satlab S-band (discontinued) 2.4 m; TX 2025-2110 MHz, RX 2200-2290 MHz Parameters, build PDF
Kratos Ground station antennas in various sizes Catalogue

Pricing is agreed with the manufacturer for a specific configuration.

Catalogue

Links follow the same order as the chapters above. Entries marked "checked" are my own bookmarks that I keep coming back to. Some sites block scripts and return errors to them, so if a link fails in a tool, open it in a browser.

Sections: RF and DSP basics · Recordings and practice data · Frequencies and satellite status · Orbits and passes · SDR · Antennas, RF chain and measurement · Tracking and rotators · Receiver software and decoders · Ground station · S/X-band stations · Protocols and telemetry · Mission control · Flight software and RTOS · Embedded and reverse engineering · SATCOM, DVB and terminals · GNSS and PNT · Threat models, standards and research · CTFs and labs · Books, conferences and communities · Satellite imagery and EO data

RF and DSP basics

Recordings and practice data

Frequencies and satellite status

Orbits and passes

SDR

Antennas, RF chain and measurement

Tracking and rotators

Receiver software and decoders

Ground station

S/X-band stations

Protocols and telemetry

Mission control

Flight software and RTOS

Embedded and reverse engineering

SATCOM, DVB and terminals

GNSS and PNT

Threat models, standards and research

CTFs and labs

Books, conferences and communities

Satellite imagery and EO data

Attachments