环境配置
软件工具
1)multi-sdr-gps-sim
2)gps-sdr-sim
设备
HackRF One
利用gps-sdr-sim工具进行GPS欺骗
首先要理解为什么能够达到GPS欺骗的效果就需要知道GPS的工作原理
卫星定位是根据方程组求解的,通常利用四个卫星,按道理来说三维世界中三个方程组就可以求解出坐标,但因为其他环境因素的干扰我们的时间参数是被影响的因此也需要求解,故一般用四个方程组求解
https://www.blackhat.com/docs/eu-15/materials/eu-15-Kang-Is-Your-Timespace-Safe-Time-And-Position-Spoofing-Opensourcely-wp.pdf
http://drops.xmd5.com/static/drops/tips-10580.html
那么,我们可以知道接收器是通过解出和卫星的方程式推算出其具体位置,那么如果我们能够获取某个时间的卫星星历即模拟当天的卫星情况,这里使用武汉大学的IGS数据中心可以直接导出
http://www.igs.gnsswhu.cn/index.php/home/data_product/igs.html
那么我们此时下载好了数据,那么我们就需要来发送欺骗信号,利用gps-sdr-sim工具达到伪造目的
我们下载的星历是模拟了当时卫星的轨迹和运动情况,我们工具来伪造自身的坐标
./gps-sdr-sim -e ./brdc3380.23n -l 29.6562801500,91.1257504400 -b 8 -o ./test1.bin
- -e 后边放刚刚下好的星历文件
- -l 要修改的ip
- -b的意思是采样精度是8(不需要改)
- -o 生成bin文件的位置,这里要在路径的后边加上文件名
此时伪造的内容已经准备好了,我们通过hackrf来发送欺骗信号
hackrf_transfer -t test1.bin -f 1575420000 -s 2600000 -a 1 -x 20 -R
-t 文件名,从文件传输数据(刚刚生成的二进制文件)
-f 频率赫兹 1575420000民用频段(一般不需要改)
-s采样速率2.6Msps(一般不需要改)
-a 放大器使能,接收/发射射频放大器 1 =使能,0 =禁用
-R 重复发射模式
-x 增益分贝,TX VGA(中频)增益,0-47分贝,1dB步长
此时,拿出手机来打开有关定位的软件就会发现定位已经被干扰,按照上述步骤完成后应该在中国左上角。小米成功实现GPS欺骗。
但在想模拟某个非星历时段的GPS信号是报错,显示错误的开始时间,必须是星历所包含的时间。因此考虑换一个软件尝试
参考
使用multi-sdr-gps-sim进行GPS欺骗
安装好工具后进行测试
如下报错是虚拟机hackrf没有连接到虚拟机
解决方法,选择VM中的虚拟机选择->可移动设备->选择HackRF
/gps-sim -e brdc3380.23n -l 29.6562801500,91.1257504400 -a -g 47 -r hackrf
下面的报错是提示没有历书文件
为什么我们有了广播星历,却还需要历书文件呢
首先我们先了解什么是广播星历什么是历书,这里放一个我个人的理解,其他比较详细的理解在下方链接
广播星历,非常详细的卫星轨道和位置信息,因此数据量大我们在模拟的时候需要耗费大量时间
历书,是星历数据的简化集,数据较少,传播时间较短,精度较低,类似于检索表一样,提供了一个访问方便查询
https://www.yiqisoft.cn/blog/7/gnss-gnss-gps-gps-22
解决方法,输入下述指令
wget https://celestrak.org/GPS/almanac/SEM/almanac.sem.txt
mv almanac.sem.txt almanac.sem
再次运行即可
加入-s now参数即用现在的时间来模拟后无法解析出位置,目前还没有看到解决方法。
使用SDRangel实现无线收发
首先下载需要的软件SDRangel,下载后默认安装即可
接收
进入软件界面后,点击箭头指向的功能点,其为接收标志,选择对应接收设备即我们接入的hackrf
刚开始接收功能中只有上述两个界面,此时点击R:0中的播放是没有声音的。
点击红色箭头的功能点进行添加WFM Demodulator,此时点击R:0中的开始就可以接收你所设置的频道的广播了
发送
这一步需要注意需要重新选择设备,我们此时选择红色箭头所指向的广播功能点,选择对应设备
接收的时候我们也需要添加NFM Modulator
此时界面如下
选择红色箭头指向的麦克风,即可开始语言广播
因为没有设备有限,因此这里只能单独实现接收和广播。
参考文章
没有评论