使用HackRF和外部时钟实现GPS欺骗实验
来源:互联网 发布:广发交易软件 编辑:程序博客网 时间:2024/06/06 05:07
本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!
之前在网上几个网站上看到过很多题为《狗汪汪玩转无线电 -- GPS Hacking (上)》的博客,但是一直手里没有适用于HackRF的外部时钟,所以也就一直没有亲自实践。前几天新进了一批用于GPS实验的外部时钟,今天抽空把GPS欺骗的实验亲自做了一下,中间碰到了一点小插曲小问题,最终成功后整理了如下的详细操作过程留作备份,方便自己和大家今后查看。
实验环境:
硬件平台---HackRF One、GPS外部时钟、天线(700-2700MHz,本店HackRF套件中最长的天线)
软件环境---Ubuntu运行HackRF环境
系统版本信息---Ubuntu-14.04 (64-bit),内核:3.13.0-32-generic
GPS终端---iphone6手机
实验步骤:
步骤1:实验准备工作,将GPS外部时钟按照正确方式安装在HackRF中(由于本次购进的GPS外部时钟是模块朝下的,如果模块的金属外壳接触到HackRF的单排插针(如图1种的黄色框标示的单排插针)的话,会影响HackRF正常工作,因此我们需要先将HackRF的单排插针与GPS外部时钟的金属外壳可能会接触到的3个插针弄外一些,只要保证二者不接触即可),否则的话,HackRF就会不能正常工作,当你用USB线接上HackRF后,如图1红框中所示的HackRF平时正常显示的USB灯(绿色)、RF灯(红色)、1v8灯(黄色)和3v3(绿色)这几个灯不会正常显示,而且当你输入hackrf_info后会显示没有找到hackrf板。GPS外部时钟插入图1中的“黄框单排插针”旁边的“黑色双排插槽”的方法如图2所示。
图1 HackRF
具体的调整图1种的黄框单排插针的方法为,将黄框中的从左边开始的前三个插针轻轻的往上边掰一掰即可,具体操作方法为1)先用一只手指压住如图2中红色箭头所指的插槽底部,2)用另一个手指将黄框中的3个插针往黑色双排插槽方向轻轻地掰一掰即可。然后插上GPS外部时钟,检查一下看看外部时钟和插针是否还有接触。
图2
步骤2:下载编译GPS仿真器代码(gps-sdr-sim)
打开一个终端,进入到你想存放GPS仿真器代码的路径下,然后依次输入执行以下命令来下载代码:
git clone https://github.com/osqzss/gps-sdr-sim.git
下载完成后,需要进入代码文件夹中,输入以下命令来实现:
cd gps-sdr-sim
进入文件夹后,开始用gcc编译代码。输入以下命令来实现:
gcc gpssim.c -lm -O3 -o gps-sdr-sim
编译完成后,你当前路径下就会出现可执行程序gps-sdr-sim
步骤3:在网站http://www.gpsspg.com/maps.htm上查询一个你感兴趣的地方的GPS经纬度信息(例如我选了个如图3所示的无锡东站:百度地图:31.6032020000,120.4665760000),然后按照这个经纬度信息来通过GPS仿真器生成GPS仿真数据
./gps-sdr-sim -e brdc3540.14n -l 31.603202,120.466576,100 -b 8
等待执行上述命令,执行结束后,你会发现你的文件夹中多了一个gpssim.bin文件,这个文件保存的就是我们模拟生成的GPS数据。在接下来的步骤中,我们就要用HackRF把伪造的GPS数据发送出去。
图4
注意:网上之前的教程大部分都是用BladeRF来做的,用的-b的参数都是16,而HackRF的芯片是8位的,因此,我刚开始的时候怎么也不能GPS欺骗,后来改为-b 8后就欺骗成功了,这也算是一个小插曲。
步骤4:用HackRF来发射我们在步骤3中模拟生成的伪造数据
打开手机中的高德地图或者百度地图APP,你会看到你现在所在的真实位置,然后开始执行以下命令:
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0
(命令参数解析:指定GPS数据,用-f来指定频率为1575420000 ,即民用GPS L1波段频率,用-s来指定采样速率2.6Msps,开启天线增益,指定TX VGA(IF)为0)
等待几分钟后(可能一两分钟,也可能是三四分钟具体情况不同),你就会发现你的高德地图或百度地图发生变化了,从原来你所在的位置变成了在无锡东站附近了。如下图5,6,7所示。我按照手机是3G信号、WiFi信号和飞行模式三种模式来分别进行了验证,结果依次如图5、6和7所示。
图5,6,7
图8
参考文献:
http://www.2cto.com/Article/201512/453013.html
https://github.com/osqzss/gps-sdr-sim
http://www.cnblogs.com/k1two2/p/5164172.html
- 使用HackRF和外部时钟实现GPS欺骗实验
- LimeSDR USB实现实时 GPS信号欺骗
- OAI USRP使用外部时钟
- GPS和北斗导航都能被欺骗,你还敢用导航吗?
- 使用CSS和Js实现时钟效果
- 使用JPCAP实现ARP欺骗
- 外部时钟与内部时钟区别、作用、使用条件
- lpc23xx时钟和外部中断学习
- GPS卫星同步时钟,GPS卫星时钟,GPS时钟
- 使用ettercap 进行ARP欺骗和DNS欺骗
- GPS时钟系统,GPS同步时钟系统
- 使用USRP和GNU Radio实现GPS位置伪造
- 使用arpspoof实现内网ARP欺骗
- GPS 精确时钟服务器
- GNU Radio GRC HackRF实现FM接收
- 什么是内部时钟方式和外部时钟方式 MCS-51单片机外部
- kali 实现arp攻击和arp欺骗
- ARP欺骗实验
- 只用TextView实现知乎主页底部Tab
- Gson使用总结
- 死锁问题分析(个人认为重点讲到了gap间隙锁,解决了我一些不明报死锁的问题)
- SQLServer 大容量导入导致死锁和系统变慢问题
- Axure学习笔记(一)
- 使用HackRF和外部时钟实现GPS欺骗实验
- AsyncTask和Handler的优缺点比较
- SyntaxError: Non-ASCII character '\xe4' in file
- 把多年积累的笔记分享给大家
- mongoDB嵌套查询
- cron表达式详解
- 题目模板
- 群论初步
- IOS-瀑布流(核心算法以及实践)