固件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. 软件安装
- 下载SDRangel:发布页面
- 默认安装即可
2. 接收功能配置
- 打开SDRangel软件
- 点击接收功能图标
- 选择HackRF作为接收设备
- 初始界面只有基本接收功能,无法直接接收音频
- 添加"WFM Demodulator"模块
- 点击"R:0"开始接收指定频段的广播
3. 发送功能配置
- 重新选择设备(从接收切换到发送)
- 点击广播功能图标
- 选择HackRF作为发送设备
- 添加"NFM Modulator"模块
- 点击麦克风图标开始语音广播
4. 注意事项
- 接收和发送功能需要分别配置
- 受限于设备,可能无法同时实现收发功能