固件IOT之Hackrf-One
字数 1216 2025-08-22 12:23:13

GPS欺骗与无线收发技术教学文档

一、环境配置与工具准备

1. 所需软件工具

  • multi-sdr-gps-sim: 多功能SDR GPS模拟器
  • gps-sdr-sim: GPS信号模拟器 GitHub链接

2. 硬件设备

  • HackRF One: 软件定义无线电设备

二、GPS欺骗原理

1. GPS定位基本原理

  • 卫星定位通过解方程组实现,通常需要4颗卫星
  • 三维空间理论上需要3个方程,但需额外方程解决时间参数问题
  • 接收器通过解算与卫星的方程推算位置

2. 欺骗原理

  • 通过模拟真实卫星信号,向接收器发送伪造的GPS信号
  • 接收器无法区分真实信号与伪造信号,从而显示错误位置

三、使用gps-sdr-sim进行GPS欺骗

1. 获取卫星星历数据

  • 从武汉大学IGS数据中心下载:IGS数据中心
  • 星历文件包含卫星轨道和运动信息

2. 生成伪造GPS信号

./gps-sdr-sim -e ./brdc3380.23n -l 29.6562801500,91.1257504400 -b 8 -o ./test1.bin

参数说明:

  • -e: 星历文件路径
  • -l: 要伪造的经纬度坐标
  • -b: 采样精度(通常设为8)
  • -o: 输出二进制文件路径

3. 通过HackRF发送欺骗信号

hackrf_transfer -t test1.bin -f 1575420000 -s 2600000 -a 1 -x 20 -R

参数说明:

  • -t: 输入二进制文件
  • -f: 频率(1575420000为GPS民用频段)
  • -s: 采样速率(2.6Msps)
  • -a: 放大器使能(1=启用)
  • -x: TX VGA增益(0-47dB)
  • -R: 重复发射模式

4. 注意事项

  • 时间限制:模拟时间必须在星历文件包含的时间范围内
  • 效果验证:使用手机GPS应用检查定位是否被成功欺骗

四、使用multi-sdr-gps-sim进行GPS欺骗

1. 安装与配置

  • 从GitHub获取:multi-sdr-gps-sim
  • 虚拟机连接问题解决:
    • 在VM中选择"可移动设备"→"HackRF"

2. 历书文件问题

  • 问题描述:缺少历书文件(almanac)

  • 历书与星历区别

    • 广播星历:详细卫星轨道和位置信息,数据量大
    • 历书:简化星历数据,传播快但精度低
  • 解决方法

wget https://celestrak.org/GPS/almanac/SEM/almanac.sem.txt
mv almanac.sem.txt almanac.sem

3. 运行命令

./gps-sim -e brdc3380.23n -l 29.6562801500,91.1257504400 -a -g 47 -r hackrf

4. 已知问题

  • 使用-s now参数模拟当前时间时可能无法解析位置(暂无解决方案)

五、使用SDRangel实现无线收发

1. 软件安装

2. 接收功能配置

  1. 打开SDRangel软件
  2. 点击接收功能图标
  3. 选择HackRF作为接收设备
  4. 初始界面只有基本接收功能,无法直接接收音频
  5. 添加"WFM Demodulator"模块
  6. 点击"R:0"开始接收指定频段的广播

3. 发送功能配置

  1. 重新选择设备(从接收切换到发送)
  2. 点击广播功能图标
  3. 选择HackRF作为发送设备
  4. 添加"NFM Modulator"模块
  5. 点击麦克风图标开始语音广播

4. 注意事项

  • 接收和发送功能需要分别配置
  • 受限于设备,可能无法同时实现收发功能

六、参考资源

  1. GPS欺骗技术白皮书
  2. GPS欺骗技术详解
  3. SDRangel使用教程
  4. GPS欺骗实践指南
GPS欺骗与无线收发技术教学文档 一、环境配置与工具准备 1. 所需软件工具 multi-sdr-gps-sim : 多功能SDR GPS模拟器 gps-sdr-sim : GPS信号模拟器 GitHub链接 2. 硬件设备 HackRF One : 软件定义无线电设备 二、GPS欺骗原理 1. GPS定位基本原理 卫星定位通过解方程组实现,通常需要4颗卫星 三维空间理论上需要3个方程,但需额外方程解决时间参数问题 接收器通过解算与卫星的方程推算位置 2. 欺骗原理 通过模拟真实卫星信号,向接收器发送伪造的GPS信号 接收器无法区分真实信号与伪造信号,从而显示错误位置 三、使用gps-sdr-sim进行GPS欺骗 1. 获取卫星星历数据 从武汉大学IGS数据中心下载: IGS数据中心 星历文件包含卫星轨道和运动信息 2. 生成伪造GPS信号 参数说明: -e : 星历文件路径 -l : 要伪造的经纬度坐标 -b : 采样精度(通常设为8) -o : 输出二进制文件路径 3. 通过HackRF发送欺骗信号 参数说明: -t : 输入二进制文件 -f : 频率(1575420000为GPS民用频段) -s : 采样速率(2.6Msps) -a : 放大器使能(1=启用) -x : TX VGA增益(0-47dB) -R : 重复发射模式 4. 注意事项 时间限制:模拟时间必须在星历文件包含的时间范围内 效果验证:使用手机GPS应用检查定位是否被成功欺骗 四、使用multi-sdr-gps-sim进行GPS欺骗 1. 安装与配置 从GitHub获取: multi-sdr-gps-sim 虚拟机连接问题解决: 在VM中选择"可移动设备"→"HackRF" 2. 历书文件问题 问题描述 :缺少历书文件(almanac) 历书与星历区别 : 广播星历:详细卫星轨道和位置信息,数据量大 历书:简化星历数据,传播快但精度低 解决方法 : 3. 运行命令 4. 已知问题 使用 -s now 参数模拟当前时间时可能无法解析位置(暂无解决方案) 五、使用SDRangel实现无线收发 1. 软件安装 下载SDRangel: 发布页面 默认安装即可 2. 接收功能配置 打开SDRangel软件 点击接收功能图标 选择HackRF作为接收设备 初始界面只有基本接收功能,无法直接接收音频 添加"WFM Demodulator"模块 点击"R:0"开始接收指定频段的广播 3. 发送功能配置 重新选择设备(从接收切换到发送) 点击广播功能图标 选择HackRF作为发送设备 添加"NFM Modulator"模块 点击麦克风图标开始语音广播 4. 注意事项 接收和发送功能需要分别配置 受限于设备,可能无法同时实现收发功能 六、参考资源 GPS欺骗技术白皮书 GPS欺骗技术详解 SDRangel使用教程 GPS欺骗实践指南