本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

本文介绍的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欺骗相关推荐

  1. 科普天地|“GPS欺骗”如何误导自动驾驶汽车

    文章来源:新华网,版权归原作者及刊载媒体所有. 新华社北京11月2日电(记者彭茜)一辆正常行驶的自动驾驶汽车在30秒内径直蹭上了马路牙子,车载全球定位系统(GPS).激光雷达等"高精尖&qu ...

  2. HackRF实现GPS欺骗教程

    HackRF实现GPS欺骗教程 硬件平台:HackRF One 软件平台:MAC运行环境搭建 系统平台:OS X 10.11 EI Capitan GPS终端:One Plus手机,飞行模式,仅GPS ...

  3. 波音公司用区块链打击GPS欺骗攻击

    点击上方 "蓝色字" 可关注我们! 暴走时评:波音公司申请新的专利,探索如何利用区块链保护航班GPS接收机.利用区块链保存并保护数据,一旦遇到伪造位置信息或者无法接收信息,可以从区 ...

  4. 浅谈hackrf_one进行GPS欺骗

    0x0前言 ​ 前一段时间电子实训焊收音机,有个动态调试是用信号发生器模拟频率,收音机就会收到相应的频率.类比一下GPS欺骗也是差不多,我们可以通过hackrf_one工具结合kali发出GPS信号, ...

  5. 射频安全-利用HackRF实现GPS欺骗

    射频安全-GPS欺骗 本篇文章介绍了GPS的基本信息和缺陷,并如何利用HACkRF进行GPS欺骗 GPS GPS 系统本身非常复杂, 涉及到卫星通信等各个领域.这里只是简单介绍一下.我们通常所说的 G ...

  6. 使用HackRF和外部时钟实现GPS欺骗实验

    本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 之前在网上几个网站上看到过很多题为<狗汪汪玩转无线电 -- GPS Hacking (上)>的博客,但是一直手里没有适用于Hac ...

  7. android gps 过滤,android开发分享禁用/检查模拟位置(防止GPS欺骗)

    我已经做了一些调查,并在这里分享我的结果,这可能对其他人有用. 首先,我们可以检查MockSetting选项是否打开 public static boolean isMockSettingsON(Co ...

  8. LimeSDR mini实现GPS信号接收

    LimeSDR mini实现GPS信号接收 作者微信公众号:小卫星 操作系统: Ubuntu18.04 LTS 0.起因 LimeSDRmini既然包含了GPS频段(L1 1575.42MHz),那就 ...

  9. android 模拟gps坐标,1020. Android GPS定位欺骗(模拟定位)的3类途径4种方式

    前段时间发布的手游PokemonGo相信大家都有耳闻,而因为这个游戏在国内的坐标遭到了封锁,很多科学游戏方法也陆续涌现.好不热闹. 那其实,PokemonGo最初的版本,在大陆是可以通过简单的vpn+ ...

  10. GPS和北斗导航都能被欺骗,你还敢用导航吗?

    GPS和北斗导航都能被欺骗,你还敢用导航吗? 这项技术之所以受到诸多业内顶尖人士的认可,大概可以总结为如下几个原因: 1.GPS/北斗欺骗所用的设备全部为通用设备,这意味着所有的人都可以轻松买到.如此 ...

最新文章

  1. 2019年,智慧零售是如何影响零售行业?
  2. cdlinux miniwdep 配置无线网卡
  3. Tensorflow2.0(Keras)转换TFlite
  4. VC++制作DLL具体解释
  5. WSL2 安装中文输入法教程 简单有效
  6. pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)
  7. pythonwindows32位_windows7__32位下安装python2.6.6
  8. python3.7怎么安装wsgiref_python3.x - python3使用wsgiref时环境变量出现乱码
  9. C/C++_Lambda表达式
  10. 米家扫地机器人是石头代工的_石头科技的隐忧:智能扫地机器人前有高山 后有追兵...
  11. 数据库—事务—并发控制技术
  12. 使用 MTR 分析网络延迟及丢包
  13. Python3爬虫新手实践及代码、经验分享
  14. animation动画不生效_css animation不动怎么办
  15. 中国科学院大学计算机复试,被中国科学院北京计算所录取了...(复试经验)
  16. 【imessage群发苹果推信】[iMessageSuspic](Apple推送服务)使用信息推送服务
  17. 中科院python编程培训班
  18. C语言(字符串输入)
  19. 匿名类的含义理解(多角度多案例通俗理解)
  20. 什么是锁PHP,并发下常见的加锁及锁的PHP具体实现代码

热门文章

  1. ios kb转m_字节、kb、M怎么换算
  2. 20模3c语言中等于多少钱,科三模拟多钱
  3. sumif单列求和_sumif函数使用方法:单条件求和
  4. 连接网络计算机提示没有访问权限,无网络访问权限,教您无网络访问权限怎么办...
  5. php 会员卡管理页面,21.4.3 会员资料管理界面
  6. n维椭球体积公式_钻井常用单位换算及计算公式
  7. robot_localization 源码解析(1)ekf_localization_node
  8. Ventoy的pe盘制作及重装系统步骤【解释的非常清楚!!!】
  9. hexo d上传报错鉴权失败
  10. AXIS的Calculater 测试