LimeSDR GPS欺骗
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
本文介绍的GPS欺骗有三种方法:
方法A:利用https://github.com/osqzss/gps-sdr-sim的方法。
方法B:利用https://wiki.myriadrf.org/GPS_Simulation的方法。
方法C:利用https://github.com/osqzss/LimeGPS的方法。(经过测试,方法C是目前最可靠,成功率最高的方法,建议大家使用。)
无论是利用方法A、方法B还是方法C,核心工具都是用的gps-sdr-sim工具,只是具体操作方法稍有不同而已。
目录
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
一、准备工作
二、gps-sdr-sim下载、编译
三、GPS欺骗方法A
四、GPS欺骗方法B
五、GPS欺骗方法C
一、准备工作
1、Ubuntu系统下使用LimeSDR的环境搭建
#这是安装LimeSuite组件,Soapy API和LimeSDR的所有驱动的程序,没有安装过的朋友先安装
sudo add-apt-repository -y ppa:myriadrf/drivers sudo apt-get update sudo apt-get install limesuite liblimesuite-dev limesuite-udev limesuite-images sudo apt-get install soapysdr soapysdr-module-lms7
二、gps-sdr-sim下载、编译
安装好后,开始下一步的操作(下载gps-sdr-sim代码)
git clone https://github.com/osqzss/gps-sdr-simcd gps-sdr-sim
#接下来对你下载好的文件进行gcc编译(前提是你的Ubuntu系统已经安装了gcc)
gcc gpssim.c -lm -O3 -o gps-sdr-sim
到这前期准备工作就好了,下面我们来看编译好的文件中的各类指令
Usage: 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.15,1022538.18,4872414.48 -l <location> Lat,Lon,Hgt (static mode) e.g. 30.286502,120.032669,100 -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 ; use - for stdout) -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显示有关模拟频道的详细信息
三、GPS欺骗方法A
利用https://github.com/osqzss/gps-sdr-sim的方法。
使用gps-sdr-sim指令时,可以生成动态与静态的文件,例如
gps-sdr-sim -e brdc3540.14n -u circle.csv #静态模式
gps-sdr-sim -e brdc3540.14n -g triumphv3.txt #静态模式
gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 #动态模式
在指令前一定要加./,例如
./gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 #生成北纬30,东经120,高度100m的星历
在上述命令中,brdc3540.14n是星历文件,其中,该文件的命名格式为:
如果你想下载任意的或者最新的星历文件,请在https://cddis.nasa.gov/Data_and_Derived_Products/GNSS/broadcast_ephemeris_data.html
如果你想下载2020年的,可以从以下网页下载。
ftp://cddis.nasa.gov/gnss/data/daily/2020/brdc/
上边的链接,如果打不开,或者不能用了,试试下边的链接,随便注册个账号就能下载了。
https://urs.earthdata.nasa.gov/oauth/authorize?client_id=gDQnv1IO0j9O2xXdwS8KMQ&response_type=code&redirect_uri=https%3A%2F%2Fcddis.nasa.gov%2Fproxyauth&state=aHR0cDovL2NkZGlzLm5hc2EuZ292L2FyY2hpdmUvZ25zcy9kYXRhL2RhaWx5Lw
-l后边的参数 30.286502,120.032669,是你想伪造的GPS坐标点,100是海拔高度,这个信息,可以在网站 http://www.gpsspg.com/maps.htm或者http://api.map.baidu.com/lbsapi/getpoint/index.html,上查询一个你感兴趣的地方的 GPS 经纬度信息,鼠标点击后,从界面上复制坐标点数据。
等待./gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100执行完之后,你会发现文件中多了一个gpssim.bin的文件,将它重命名为circle.1b.1M.bin
下一步,也是至关重要的一步,我前面尝试时会报错,报错的类型是无法找到文件或目录经过探索,发现这个指令中的limeplayer可执行程序未生成,所以执行以下步骤
cd player
gcc -O2 -Wall -o limeplayer limeplayer.c -lLimeSuite
执行完后会发现文件夹中多了一个limeplayer的可执行程序
接着执行最后一条指令,开始利用LimeSDR-USB(称“Lime大板子”)或者LimeSDR Mini(称“Mini”)来发射伪造的GPS数据,注意一定记得加./
./limeplayer -s 1000000 -b 1 -d 2047 -g 0.1 < ../circle.1b.1M.bin
此时,终端上应该显示LimeSDR的信息,并出现一系列数据流,开始发送信息。
但是,该实验不一定能够每次成功,与多种因素有关,例如不同的实验环境,不同的手机型号(有的手机可以每次都成功,但是有的手机就是无法成功)。
四、GPS欺骗方法B
利用https://wiki.myriadrf.org/GPS_Simulation的方法。
相关背景知识和内容,请查看https://wiki.myriadrf.org/GPS_Simulation。
执行以下命令生成GPS数据文件gpssim.s8。注意其中-s后边是采样率,这里是10000000,即10MHz,后边用GRC程序来发射数据的时候,GRC中模块中的采样率要与这个采样率一致。
在grc程序中需要设置的参数有发射模块采样率(sample_rate)、及发射频率(Freq).
发射模块采样率(sample_rate)需要与生成gpssim.s8文件的采样率一致,采样率如果与发射频率(Freq)不匹配,一般情况是采样率过低,则会出现如下错误:
发射频率(Freq)在实验中设置为1.57542GHz。
./gps-sdr-sim -e brdc3540.14n -l 30.286502,120.032669,100 -s 10000000 -b 8 -o gpssim.s8
生成了gpssim.s8文件之后(s8文件后缀,这是专门用于LimeSDR的文件格式),利用GRC程序来发射该文件数据。
发射数据大概2-3分钟之后,观察你手机中的百度地图、或高德地图,或者安卓手机下的GPS Test APP。看看是否你的地理位置发生了变化。
为了提高GPS欺骗的成功率,存在以下两个小技巧:
(1)手机跟天线平行,距离大概三十公分。
(2)手机开飞行模式,由于现在采用的定位方式不仅仅是gps,还采用了很多辅助技术以及信号的甄别机制,所以最好把手机调整到飞行模式。(我记得2016年的时候用HackRF One玩GPS的时候,无论是3G、WiFi或者飞行模式下,都是很容易成功的。)
五、GPS欺骗方法C
利用https://github.com/osqzss/LimeGPS的方法。
下载LimeGPS代码并编译。
$ git clone https://github.com/osqzss/LimeGPS
$ cd LimeGPS
$ make
选定你要伪造的GPS位置,并用LimeSDR-USB或LimeSDR Mini来发射数据。
./LimeGPS -e brdc0350.18n -l 30.286502,120.032669,100
发射数据大概2-3分钟之后,观察你手机中的百度地图、或高德地图,或者安卓手机下的GPS Test APP。看看是否你的地理位置发生了变化。
LimeSDR GPS欺骗相关推荐
- 科普天地|“GPS欺骗”如何误导自动驾驶汽车
文章来源:新华网,版权归原作者及刊载媒体所有. 新华社北京11月2日电(记者彭茜)一辆正常行驶的自动驾驶汽车在30秒内径直蹭上了马路牙子,车载全球定位系统(GPS).激光雷达等"高精尖&qu ...
- HackRF实现GPS欺骗教程
HackRF实现GPS欺骗教程 硬件平台:HackRF One 软件平台:MAC运行环境搭建 系统平台:OS X 10.11 EI Capitan GPS终端:One Plus手机,飞行模式,仅GPS ...
- 波音公司用区块链打击GPS欺骗攻击
点击上方 "蓝色字" 可关注我们! 暴走时评:波音公司申请新的专利,探索如何利用区块链保护航班GPS接收机.利用区块链保存并保护数据,一旦遇到伪造位置信息或者无法接收信息,可以从区 ...
- 浅谈hackrf_one进行GPS欺骗
0x0前言 前一段时间电子实训焊收音机,有个动态调试是用信号发生器模拟频率,收音机就会收到相应的频率.类比一下GPS欺骗也是差不多,我们可以通过hackrf_one工具结合kali发出GPS信号, ...
- 射频安全-利用HackRF实现GPS欺骗
射频安全-GPS欺骗 本篇文章介绍了GPS的基本信息和缺陷,并如何利用HACkRF进行GPS欺骗 GPS GPS 系统本身非常复杂, 涉及到卫星通信等各个领域.这里只是简单介绍一下.我们通常所说的 G ...
- 使用HackRF和外部时钟实现GPS欺骗实验
本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 之前在网上几个网站上看到过很多题为<狗汪汪玩转无线电 -- GPS Hacking (上)>的博客,但是一直手里没有适用于Hac ...
- android gps 过滤,android开发分享禁用/检查模拟位置(防止GPS欺骗)
我已经做了一些调查,并在这里分享我的结果,这可能对其他人有用. 首先,我们可以检查MockSetting选项是否打开 public static boolean isMockSettingsON(Co ...
- LimeSDR mini实现GPS信号接收
LimeSDR mini实现GPS信号接收 作者微信公众号:小卫星 操作系统: Ubuntu18.04 LTS 0.起因 LimeSDRmini既然包含了GPS频段(L1 1575.42MHz),那就 ...
- android 模拟gps坐标,1020. Android GPS定位欺骗(模拟定位)的3类途径4种方式
前段时间发布的手游PokemonGo相信大家都有耳闻,而因为这个游戏在国内的坐标遭到了封锁,很多科学游戏方法也陆续涌现.好不热闹. 那其实,PokemonGo最初的版本,在大陆是可以通过简单的vpn+ ...
- GPS和北斗导航都能被欺骗,你还敢用导航吗?
GPS和北斗导航都能被欺骗,你还敢用导航吗? 这项技术之所以受到诸多业内顶尖人士的认可,大概可以总结为如下几个原因: 1.GPS/北斗欺骗所用的设备全部为通用设备,这意味着所有的人都可以轻松买到.如此 ...
最新文章
- 2019年,智慧零售是如何影响零售行业?
- cdlinux miniwdep 配置无线网卡
- Tensorflow2.0(Keras)转换TFlite
- VC++制作DLL具体解释
- WSL2 安装中文输入法教程 简单有效
- pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)
- pythonwindows32位_windows7__32位下安装python2.6.6
- python3.7怎么安装wsgiref_python3.x - python3使用wsgiref时环境变量出现乱码
- C/C++_Lambda表达式
- 米家扫地机器人是石头代工的_石头科技的隐忧:智能扫地机器人前有高山 后有追兵...
- 数据库—事务—并发控制技术
- 使用 MTR 分析网络延迟及丢包
- Python3爬虫新手实践及代码、经验分享
- animation动画不生效_css animation不动怎么办
- 中国科学院大学计算机复试,被中国科学院北京计算所录取了...(复试经验)
- 【imessage群发苹果推信】[iMessageSuspic](Apple推送服务)使用信息推送服务
- 中科院python编程培训班
- C语言(字符串输入)
- 匿名类的含义理解(多角度多案例通俗理解)
- 什么是锁PHP,并发下常见的加锁及锁的PHP具体实现代码
热门文章
- ios kb转m_字节、kb、M怎么换算
- 20模3c语言中等于多少钱,科三模拟多钱
- sumif单列求和_sumif函数使用方法:单条件求和
- 连接网络计算机提示没有访问权限,无网络访问权限,教您无网络访问权限怎么办...
- php 会员卡管理页面,21.4.3 会员资料管理界面
- n维椭球体积公式_钻井常用单位换算及计算公式
- robot_localization 源码解析(1)ekf_localization_node
- Ventoy的pe盘制作及重装系统步骤【解释的非常清楚!!!】
- hexo d上传报错鉴权失败
- AXIS的Calculater 测试