使用USRP探索无线世界 Part 1 | USRP从入门到追踪飞机飞行轨迹

温馨提示:请自觉遵守无线电管理法规,依法设置和使用无线电设备

Author:雪碧0xroot @漏洞盒子安全团队 cn0xroot.github.io

0×00 前言

USRP是数款流行的SDR硬件中功能和应用都相对成熟的一款产品,从WIFI协议、ZigBee协议、RFID协议、GSM通信系统、LTE 4G通信系统到飞机通信、卫星通信USRP都能很好的进行支持。

软件开发工程师可以用它开发应用,安全工程师则用它来测试、研究相关的无线通信协议。

很大一部分玩过电视棒的小伙伴都使用过电视棒+dump1090的方案实现过追踪飞机飞行轨迹这一功能。之所以能够很容易的跟踪飞机,是因为航空CNS(通信导航监视)系统里大量采用非常古老的无线标准。

(电视棒+dump1090 2D)

(图片来源:http://slideplayer.com/slide/2547225)

二次监视雷达(SSR)系统,地面站发射1030MHz的查询信号,飞机接收到此信号之后在1090MHz发射应答信号,信号中包含了飞机的一些信息,显示在空管的雷达屏幕上。

还有空中防撞系统(TCAS),飞机可以自己发射1030MHz的查询信号,其他飞机接收到此信号之后在1090MHz发射应答信号,因此一架飞机得以”看到”周围的飞机。

由于以上的查询-应答模式在飞机很多的时候显得效率不是那么高,因此新出现了一种ADS-B方式。在ADS-B中,每架飞机不等查询,主动广播自己的信息,这时监视和防撞需要做的就仅仅是接收了。

在通用航空当中ADS-B信号经常在978MHz发射,在商业飞行中ADS-B信号经常在1090MHz发射。

0×01 HardWare

PC:Ubuntu OR Mac

SDR:USRP、天线、USB数据线

0×02 Software

2.1安装pip、pybombs

apt-get updateapt-get install git apt-get install python-pip pip install --upgrade pippip install git+https://github.com/gnuradio/pybombs.git pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git pybombs prefix init /usr/local -a myprefix -R gnuradio-defaultpybombs install gqrx gr-osmosdr uhd

以上内容是Ubuntu下安装SDR相关软件的方法,在Mac OSX中则可以使用mac port 进行安装。

2.2下载USRP镜像

使用pybombs安装完UHD(USRP Hardware Driver)后还需下载固件镜像以及FPGA镜像,执行:

python /usr/local/lib/uhd/utils/uhd_images_downloader.py

插入USRP后可执行:

uhd_find_devices或者 uhd_usrp_probe

来查看设备信息:

2.3编译安装gr-air-modes:

git clone https://github.com/bistromath/gr-air-modescd gr-air-modes mkdir buildcd build cmake .. make sudo make install sudo ldconfig

2.4 安装谷歌地球

Ubuntu 32 bit:

wget http://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb

Ubuntu 64 bit:

wget http://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb

sudo dpkg -i google-earth-stable_current_amd64.deb

Mac osx:

wget https://dl.google.com/earth/client/advanced/current/GoogleEarthMac-Intel.dmg

0×03 解码飞机信号&导入谷歌Earth

cd gr-air-modes/apps/ ./modex_rx -K test.kml

执行App目录下的modex_rx,开始接收并解码来自飞机的1090MHz无线信号,-K参数即把解码到的航班号、经纬度、飞行速度等等保存为.kml文件。

打开谷歌地球:添加–>网络链接–>

新建链接名称,以及kml文件的绝对路径:

设定刷新时间,以及是否在刷新时前往该视图:

如果开启刷新前往视图后,google-earth会自动定位到你所在的区域并显示接收到区域上空的飞机。

(飞机飞行轨迹 3D)

地图上显示飞机的航班号,双击飞机图标可以显示该飞机高度、飞行速度等信息。

0×04 演示视频

视频内容

0×05 refer

https://kb.ettus.com/Implementation_of_an_ADS-B/Mode-S_Receiver_in_GNU_Radio

http://www.freebuf.com/articles/wireless/77819.html

USRP B200: Exploring the Wireless World

https://media.blackhat.com/bh-us-12/Briefings/Costin/BH_US_12_Costin_Ghosts_In_Air_WP.pdf

https://www.rs-online.com/designspark/10-things-you-can-do-with-software-defined-radio

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-11-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏喔家ArchiSelf

Mesh?无线协议的选择

智能家居和智能建筑等产品的开发者可以使用大量的无线协议。 Zigbee,Z-Wave,以及专有的无线协议,在这些市场中占据了主导地位,新的进入者还包括Threa...

1962
来自专栏BestSDK

5个秘诀,轻松应对企业级数据存储问题

首先我们了解一下存储虚拟化的定义及其常见的三种技术。 存储虚拟化(StorageVirtualization)最通俗的理解就是对存储硬件资源进行抽象化表现。通过...

3357
来自专栏北京马哥教育

运维标准化与流程化建设深度指南

转载声明:本文转载自「FineOPS」,搜索「FineOPS」即可关注。 当下企业很多都热衷于建设运维自动化、智能化,通过技术革新代替繁杂的手工运维,提高生产...

90110
来自专栏高性能服务器开发

5 各类游戏对应的服务端架构

卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:

2982
来自专栏点滴积累

geotrellis使用初探

最近,单位领导要求我研究一下geotrellis(GITHUB地址:https://github.com/geotrellis/geotrellis,官网htt...

4148
来自专栏GopherCoder

『简书API : jianshu 基于 golang (1)』

1934
来自专栏游戏杂谈

游戏版本更新小记

先大概介绍一下项目,卡牌游戏,主要面向女性用户。前期是走IOS市场,后来又移值到Android平台上,在几家大一点的Android渠道上进行运营。Android...

1101
来自专栏BIT泽清

app 上架ios时隐藏开关会不会暴露? 提审时暴露了怎么办?

# ipv6被拒绝,2.1大礼包,后台定位被拒绝,免费的终极解决方案,苹果审核被拒绝了如何取解决,大家齐心协力让天下没有解决不了的问题!

1.9K1
来自专栏魏艾斯博客www.vpsss.net

腾讯云采购节-云服务器 3 折月付 19 元/COM 域名 40 元/订单返券

2905
来自专栏喔家ArchiSelf

面向IoT的协议选择思考

对于使用传感器和保持连接性的IoT系统而言,如何使用这些元素和多种互联网技术相结合呢?

2886

扫码关注云+社区