声明:文章涉及内容仅供学习研究参考,请勿违法使用!
先图后码。根据车载导航地图显示,目前车辆行驶在台北忠孝路五段,时速为70到90公里每小时。
静态定位信息如下图所示:
而我的真实位置,其实是在北京:
所以前两张图片显示的定位信息和速度是不真实的,是通过GPS欺骗实现的。要想了解GPS欺骗的原理,需要先解释一下GPS卫星定位的原理。关于GPS卫星定位的原理,知乎上有一篇通俗易懂的文章,《5分钟了解GPS定位原理》[1],大致思路就是通过多颗卫星构造距离、速度和时间相关的多项式,然后求解坐标值。定位的前提是被定位的对象需要具备接收GPS信号的能力,这种能力一般通过GPS传感器提供,比如手机和车载导航系统均装备有GPS传感器。
换言之,GPS传感器通过接收卫星信号来实施定位。因此,如果我们能够模拟卫星信号,将模拟的信号通过信号发射装置发送给GPS传感器,那么就有可能实现欺骗GPS传感器获取虚假的位置信息,这种技术即SDR(软件无线电,Software Defined Radio)[2]。能够实现SDR的主流开源硬件产品包括usrp、HackR和bladerf等等,其中usrp功能和性能比较强大,HackR使用最为方便,因此我们的实验使用HackRF进行。
HackRF One
HackRF的工作模式为半双工模式,即同一时间只能接收或者发送信号,不可同时进行。其工作频率范围为1 MHz到6 GHz,通过USB与PC相连。其他相关特性如下列表所示:
half-duplex transceiver
operating freq: 1 MHz to 6 GHz
supported sample rates: 2 Msps to 20 Msps (quadrature)
resolution: 8 bits
interface: High Speed USB (with USB Micro-B connector)
power supply: USB bus power
software-controlled antenna port power (max 50 mA at 3.3 V)
SMA female antenna connector (50 ohms)
SMA female clock input and output for synchronization
convenient buttons for programming
pin headers for expansion
portable
open source
通过HackRF One实现GPS欺骗的原理如下图所示:
HackRF发射GPS卫星信号的过程描述如下:
1)PC端SDR信号处理软件生成GPS信号数据,经由系统内核、USB传送至HackRF;
2)HackRF收发控制模块将数字信号转换为模拟信号,并控制信号收发模块发送信号;
3)模拟信号通过天线发送给附近的GPS传感器。
在了解了基本的原理之后,我们接下来开始进行本次实验。
为了模拟车辆行驶状态下连续接收的GPS信号,我们需要首先使用GoogleEarth生成运动轨迹,接着使用StatGEN处理路径数据,最后借助gps-sdr-sim [3]工具生成静态GPS数据。
使用GoogleEarth生成轨迹
使用GoogleEarth生成轨迹,并导出为kml格式数据包,接着将kml格式数据导入SatGEN,生成MNEA格式文件。
最后使用gps-sdr-sim生成动态GPS信号数据:
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2022-1-27 10:35
被kxliping编辑
,原因: 调整图片