How to hack into radio signal and have fun

Hardware & Software Requirements

To begin broadcasting, we don't need much. A Raspberry Pi 2 or 3 will do both works, and the wire can be sourced from cords or whatever you have around. I used both stranded and solid core copper wire, and both worked fine, although solid core was better.

 

Don't Miss: Set Up a Headless Raspberry Pi Hacking Platform Running Kali

Here's all the hardware and software that you'll need for this guide:

 

 

a piece of wire around 3 feet long for an antenna

a fully updated Raspberry Pi 2/3

knowledge of which frequency you're trying to jam (or a $20 RTL-SDR dongle to find it yourself)

a source .wav file

make and libsndfile1-dev

PiFmRds from GitHub

To start, let's take care of the software requirements by running apt-get update and apt-get install upgrade. Once our version of Kali is updated and upgraded, we can install dependencies by running the following in a terminal window.

 

 

apt-get install make libsndfile1-dev

Step 2

Download & Configure PiFmRds

Connect your Pi to an HDMI display or SSH into it your laptop. To clone PiFmRds, type the following four lines into a terminal window. Remember to make clean as versions for different Raspberry Pis are not compatible with each other.

 

 

git clone https://github.com/ChristopheJacquet/PiFmRds.git

cd PiFmRds/src

make clean

make

 

 

gcc -Wall -std=gnu99 -c -g -03 -march+armv7-a -mtune+arm1176jzf-s -mfloat-ab1=hard -mfpu=vfp -ffast-math -DRASPI=2 rds.c

gcc -Wall -std=gnu99 -c -g -03 -march+armv7-a -mtune+arm1176jzf-s -mfloat-ab1=hard -mfpu=vfp -ffast-math -DRASPI=2 waveforms.c

gcc -Wall -std=gnu99 -c -g -03 -march+armv7-a -mtune+arm1176jzf-s -mfloat-ab1=hard -mfpu=vfp -ffast-math -DRASPI=2 pi_fm_rds.c

gcc -Wall -std=gnu99 -c -g -03 -march+armv7-a -mtune+arm1176jzf-s -mfloat-ab1=hard -mfpu=vfp -ffast-math -DRASPI=2 fm_mpx.c

gcc -Wall -std=gnu99 -c -g -03 -march+armv7-a -mtune+arm1176jzf-s -mfloat-ab1=hard -mfpu=vfp -ffast-math -DRASPI=2 control_pipe.c

gcc -Wall -std=gnu99 -c -g -03 -march+armv7-a -mtune+arm1176jzf-s -mfloat-ab1=hard -mfpu=vfp -ffast-math -DRASPI=2 mailbox.c

gcc -o pi_fm_rds rds.o waveforms.o mailbox.o pi_fm_rds.o gm_mpx.o control_pipe.o -lm -lsndfile

 

 

Step 3

Test Your First Transmission

That should be it! After navigating to the PiFmRds/src folder, you should be able to test PiFmRds by running:

 

sudo ./pi_fm_rds -freq 107.0 -audio sound.wav

This will start a test radio transmission on the frequency 100.1. Since we haven't yet attached our wire antenna, we can't expect it to transmit anything, right?

 

Turns out, even just the GPIO pin is capable of short-range transmission. Here, I can see a test broadcast from several feet away, even without attaching an antenna.

 

 

Still able to receive from a few feet away even without an antenna.

Image by ADMIN/Null Byte

You should use the GPIO pin to test your messages whenever possible to avoid interfering with other frequencies unnecessarily. At the same time, good for testing, the pin alone cannot overpower a station. Once you've confirmed you're transmitting, let's try hijacking a signal.

 

Step 4

Add an Antenna to Enable Signal Hijacking

Now that we know we're transmitting let's up the power. Attach a piece of wire (solid gauge or stranded will do) to the 4th GPIO pin (see diagram to figure out which that is).

 

 

 

Image via Raspberry Pi Foundation

You can use the insulation around the wire to keep it snug on the pin if you work the pin between the insulation and the copper inside the wire. Here is how I attached some solid core wire:

 

 

While the wire touched a few pins, pin 4 has been pushed between the insulation and the solid core copper wire.

Image by ADMIN/Null Byte

With this setup, the range is dramatically improved. I can receive the radio transmission all over the building, including on floors above and below me.

 

 

The signal is significantly boosted when an antenna is added.

Image by ADMIN/Null Byte

Step 5

Load a WAV File & Overpower an FM Signal

Now that we've boosted the power, we can expect to be able to hijack any radio station when we're within about twenty to thirty feet of the transmitter. Identify the station you want to hijack and note the frequency in megahertz. For this example, we will assume the station we are transmitting against is 107.9 MHz.

 

On your Pi with the antenna attached, run the following in terminal to target and hijack 107.9 and play the audio file audio.wav.

 

sudo ./pi_fm_rds -freq 107.9 -audio audio.wav

You should hear the audio demo break into the legitimate transmission.

 

 

Hijacking 107.9 at nearly 40 feet away (end of the range).

Image by ADMIN/Null Byte

Put any WAV file in the PiFmRds/src folder and change the name in the command above to play your own custom message.

 

Final Warning

While the methods described are straightforward and effective, intentionally jamming a legitimate broadcast is illegal in the US and most likely elsewhere. While the likelihood of being detected doing so on a small scale is low, increasing the power or operating in out-of-band frequencies can get you in trouble and interfere with military, police, and first responder radio signals.

Enjoyed this article? Stay informed by joining our newsletter!

Comments

You must be logged in to post a comment.

About Author