0x00 序言

本文作者 Nack'BT  ,未经允许,严禁转载

SDR技术交流加我qq 3505932208

估计点击来的同学都看过使用hackrf制作超级跑马机,文章写得很好,我就想拿USRP弄一个,找了一下一共就2两篇关于USRP做GPS欺骗的博客,而且都没有使用外部时钟导致可以发现星座但是无法成功欺骗的问题,其次只是静态坐标欺骗,可能是因为找不到KML转NMEA的SatGen工具,作者花了120大洋从一个做跑马机的那里买来了老版SatGen(新版限制太多),所以麻烦各位同学看完点个赞吧,拒绝白嫖。

0x01 软&硬件资源

软件

  1. ubuntu(笔者在ubuntu18和16上均实验成功)
  2. UHD & Gnuradio
  3. GPS-sdr-sim
  4. 谷歌地球
  5. SatGen

硬件

  1. USRP B210(其他大牛在n210 x310均实验成功)
  2. 10Mhz 0.01ppm OCXO时钟(只要兼容USRP即可)
  3. SAM-J 转 SAM-J 转接线
  4. GPS增强蘑菇头天线或者支持1.5Ghz鞭状天线
  5. 2.5w全频功放(可选)

注意:不能用GPS DO驯服时钟(为什么自己想)

0x02 搭建环境

1.安装 UHD & Gnuradio

从源安装(推荐)参见我的另外一篇博客:

https://blog.csdn.net/qq_42652838/article/details/98198534

源码编译(不推荐)参见大佬优秀文章:

https://blog.csdn.net/jipengwang/article/details/79451729

2.编译GPS-sdr-sim

克隆->进入目录->编译

git clone https://github.com/osqzss/gps-sdr-sim.git
cd /gps-sdr-sim
gcc gpssim.c -lm -O3 -o gps-sdr-sim

查看指令集

./gps-sdr-sim -hUsage: gps-sdr-sim [options]
Options:-e <gps_nav>     RINEX navigation file for GPS ephemerides (required)-u <user_motion> User motion file (dynamic mode)-g <nmea_gga>    NMEA GGA stream (dynamic mode)-c <location>    ECEF X,Y,Z in meters (static mode) e.g. 3967283.154,1022538.181,4872414.484-l <location>    Lat,Lon,Hgt (static mode) e.g. 35.681298,139.766247,10.0-t <date,time>   Scenario start time YYYY/MM/DD,hh:mm:ss-T <date,time>   Overwrite TOC and TOE to scenario start time-d <duration>    Duration [sec] (dynamic mode max: 300, static mode max: 86400)-o <output>      I/Q sampling data file (default: gpssim.bin)-s <frequency>   Sampling frequency [Hz] (default: 2600000)-b <iq_bits>     I/Q data format [1/8/16] (default: 16)-i               Disable ionospheric delay for spacecraft scenario-v               Show details about simulated channels

下面是中文对照

用法:gps-sdr-sim [选项]
选项:-e <gps_nav>用于GPS星历表的RINEX导航文件(必填)-u <user_motion>用户动作文件(动态模式)-g <nmea_gga> NMEA GGA流(动态模式)-c <位置> ECEF X,Y,Z,以米为单位(静态模式),例如3967283.15,1022538.18,4872414.48-l <位置> Lat,Lon,Hgt(静态模式),例如30.286502,120.032669,100-t <日期,时间>场景开始时间YYYY / MM / DD,hh:mm:ss-T <日期,时间>将TOC和TOE覆盖到方案开始时间-d <欺骗时间>持续时间[秒](动态模式最大值:300静态模式最大值:86400)-o <输出> I / Q采样数据文件(默认值:gpssim.bin;使用 - 用于stdout)-s <频率>采样频率[Hz](默认值:2600000)-b <iq_bits> I / Q数据格式[1/8/16](默认值:16)-i禁用航天器场景的电离层延迟-v显示有关模拟频道的详细信息

0x03 劫持实战

首先如图连接设备(笔者使用国产USRP ,如果是山黑的可以直接把时钟插在板子上)

1.生成静态GPS星历报文

命令格式:

另外两篇博客写bit不能设置为16,否则欺骗会不成功,但是笔者8/16bit均实验成功

./gps-sdr-sim -e <导航报文> -l <坐标> -s <采样率>
#使用-b指定bit位数(16/8/1)
举个栗子:
生成坐标为 30.286502,120.032669,100的星历报文
(USRP使用10Mhz时钟采样率必须可以整除,所以设置为 2500000)
gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 -s 2500000

2.生成动态GPS星历动态报文

首先使用谷歌地图画出要伪造的轨迹

保存格式一定要选择KML

然后使用SatGen将KML文件转为NMEA轨迹文件(后缀是txt)

然后会生成一个nmea轨迹文件,用这个生成GPS报文

./gps-sdr-sim -e brdc3540.14n -g nmea.txt -s 2500000

3.USRP发射GPS报文

另外两篇文章最大的问题就是没有使用外部时钟,所以不成功,刚开始我以为USRP跟hackrf一样直接把时钟接上去就行,后来经大佬指点,一语惊醒梦中人,gps-sdr-sim-uhd.py加-c才能选择时钟 我tm。。。

./gps-sdr-sim-uhd.py -t gpssim.bin -s 2500000 -c external -x 40
# external 外部时钟
# internal 内部时钟

如果一切正常的话,TX/RX的指示灯会亮起来

效果如图

以100km/h速度在护城河中游泳(逃

打字不易,还请各位看官老爷点个赞

如果实在找不到SatGen加我QQ 3505932208(学业繁忙,不定期看qq)

【USRP】使用USRP制作超级跑马机(手动滑稽)相关推荐

  1. 利用Hackrf One进行GPS定位欺骗制作超级跑马机

    0×00 驾校的困惑 现行规定要求每个学员都必须在驾校练习够规定的学时,才能参加考试,在每台教练车上都安装有计时计程终端,学员刷卡刷指纹后开始累计里程.但是目前中国的很多驾校,存在车少人多的情况,假设 ...

  2. VS2019 WPF制作OTA上位机(一)新建工程

    首先创建新项目,文件 -> 新建 -> 项目 下拉菜单选择C#和Window,选择WPF应用程序,下一步 输入项目名,下一步 这里选择.NET 5.0,也可以选择其他的,个人习惯.NET, ...

  3. Scratch之制作幸运抽奖机

    生活中许多问题的解决需要使用到随机数,比如抽奖,为了公平,必须是随机抽取.Scratch软件的"运算"指令组提供了一个可以产生随机数的指令.本篇文章通过制作"幸运抽奖机& ...

  4. html超链接点不了_HTML制作超级链接点下去没反应

    为什么html超链接点击没用啊? 为什么小编修改HTML网页后无法使用其中的超链接小编用的是手机的WPSC得到手机网页的HTML代码(得到的是txt格式),小编用ES...中途肯定有那里改错了,你把那 ...

  5. PYQT5+Matplot制作示波器上位机

    PYQT5+Matplot制作示波器上位机 上位机介绍(大家如果需要源码欢迎去下载)[https://download.csdn.net/download/qq_41866091/11226698] ...

  6. 抓娃娃机c语言程序设计,vue制作抓娃娃机的示例代码

    去年为联通制作双十一活动,做四个小游戏:'配对消消乐'.移动拼图.抓娃娃.倒计时. 现在先做来分享一下制作抓娃娃游戏时的经验 先上效果图 游戏规则:在指定时间内抓到上图四张卡片为挑战成功. 现在直接说 ...

  7. javafx 带图片的按钮菜单_wordpress如何制作超级菜单(mega menu)

    本文将介绍什么是超级菜单.制作超级菜单的热门免费插件.制作超级菜单的步骤教程. 什么是超级菜单(mega menu) 什么是超级菜单呢?相比普通菜单而言,超级菜单的展示形式更加丰富,比如菜单里带有图片 ...

  8. 机器学习原来这么有趣!第二章:用机器学习制作超级马里奥的关卡

    第一章:全世界最简单的机器学习入门指南 https://blog.csdn.net/wskzgz/article/details/89917343 第二章:用机器学习制作超级马里奥的关卡 https: ...

  9. 永中Office—如何制作超级方便的临时座位卡

    如何制作超级方便的临时座位卡: 在永中Office中可以方便的制作座位卡.打印完成后,进行对折,然后将一头一尾两折用订书机订在一起,这样临时座位卡就完成了. 1.在"新建"任务面板 ...

最新文章

  1. 别在 Java 代码里乱打日志了,这才是正确的日志打印姿势!
  2. pandas库scatter_matrix绘图可视化参数详解
  3. 腾讯 QQ 就“读取浏览器历史记录”道歉!
  4. 安卓高手之路之 WindowManager
  5. 安全挑战和SD-WAN解决方案
  6. Windows事件等待学习笔记(四)—— 事件信号量互斥体
  7. Type对象获得泛型类型的两个扩展方法
  8. java 判断语句 性能_前端性能优化:js中优化条件判断语句
  9. Angular问题03 @angular/material版本问题
  10. C语言——输出*菱形
  11. python consul
  12. [转载] python numpy 子数组_Python学习笔记3:Numpy入门
  13. 录音文件下载_拒绝敲键盘,在线版免费好用的录音转文字工具
  14. 【MATLAB】MATLAB 仿真 — 模拟调制系统 之 AM 调制过程
  15. 《山月记》一定有那么一刻,我们曾迷茫怀疑
  16. vue使用prevent修饰符阻止标签的默认行为
  17. 踢球游戏-运用list切片
  18. 为什么年轻人都喜欢互联网行业
  19. hibernate基础(十四):二级缓存
  20. Colour metric颜色度量

热门文章

  1. 英语语法总结--状语从句
  2. tcpdump如何避免dropped by kernel
  3. 注册企业邮箱,怎么给国外的人发邮件?
  4. 使用schrodinger建立深度学习QSAR模型
  5. vue(数据请求)框架
  6. 2.3   文 法 和 语 言 的 形 式 定义
  7. IOS二维码扫描功能的实现
  8. 1080p60Hz需要传多少数据,怎么计算显示器带宽(一)【华光昱能知识与您分享】
  9. 跑步耳机哪种好,目前最适合运动的五款耳机推荐
  10. 从儿时的科幻电影到spaceX的火箭回收