GPS-Spoofing
With the HackRF One, it is possible to transmit a fake GPS signal to deceive other devices by simulating a real GPS transmission. This technique can be used for testing or research purposes, allowing you to manipulate the location data received by nearby GPS-enabled devices.
To set this up, you will need the following components:
- HackRF One (a Chinese clone will also suffice)
- External TCXO (necessary for the high precision that GPS signals require)
- Antenna (ideally, a dedicated GPS antenna for better signal accuracy)
- GNU Radio and HackRF tools for signal transmission
Commands
sudo apt install gnuradio libhackrf0 hackrf libhackrf-dev
Check if you see 0x01 with (means TXCO is installed):
hackrf_debug --si5351c -n 0 -r
Download the GPS-SDR-SIM software
mkdir GPS_SDR_SIM
cd GPS_SDR_SIM
git clone https://github.com/osqzss/gps-sdr-sim.git
Compile it
make
Get the current satellite positions from NASA
# Create an account on https://urs.earthdata.nasa.gov
# Make a file called .netrc with the following content:
machine urs.earthdata.nasa.gov login actedlinux password Asdfghjkl007
Change the file permission with
sudo chmod 004 .netrc
Generate the signal file with the static position (coordinates) you want to send
./gps-sdr-sim -b 8 -e YOUR_BRDC_FILE_HERE -l 40.812800,-60.005900,100
Send the signal
sudo hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0