超简单的GPS欺骗…
超简单的GPS欺骗by Hackrf
1. 前置条件
- Hackrf硬件及Hackrf_transfer
- GPS-SDR-SIM
- 用来伪造的GPS数据
2. 简单几条命令
首先Hackrf相关的环境折腾在此不表。
2.1. GPS-SDR-SIM
GPS-SDR-SIM用于生成GPS基带数据流,可用于bladeRF, HackRF, and USRP等SDR平台。 下载并编译GPS-SDR-SIM
git clone https://github.com/osqzss/gps-sdr-sim
cd gps-sdr-sim
gcc gpssim.c -lm -O3 -o gps-sdr-sim
2.2. GPS数据
去NASA找,NASA有公开的GPS数据
https://cddis.nasa.gov/archive/gnss/data/daily/2021/165/21n/
down下来形如brdc1650.21n.gz
(命名格式参见Broadcast ephemeris data)
这种以n结尾的压缩包,里面就是我们需要用到的GPS星历数据。
2.3. 冲
星历数据是RINEX(Receiver Independent Exchange Format)的2.0格式。 GPS-SDR-SIM通过星历数据生成采样数据。-T选项可以指定时间。 选择高德地图上钓鱼岛的坐标,四舍五入到小数点后6位,随便加上一个海拔,放在location参数名后面,持续时间和文件大小有关,默认300秒,把它改成200秒,占1GB空间。HackRF的数据位宽是8位,所以iq_bits设成8。
./gps-sdr-sim -e brdc1650.21n.gz -l 25.771450,123.528900,100 -b 8 -d 200
生成的gpssim.bin的采样频率为2.6MHz,使用hackrf_transfer设定的采样频率也要与之对应。-x代表TX VGA增益,先设为0db,如果搜不到再加,最大47db。下面是民用的频段,这里我们使用L1的频段。
- L1 1575.42MHz
- L2 1227.60MHz
- L3 1381.05MHz
- L4 1841.40MHz
- L5 1176.45MHz
使用hackrf_transfer发射无线电信号,开启增益并设成最大,循环发射。
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 47 -R
发射端Over
2.4. 看看效果
下了个GPS Test看了下效果,经纬度还是达到了效果的,起码到了钓鱼岛,但是貌似有微妙的一点点差距。
参考
嘉豪的GPS欺骗笔记