树莓派打造无线扫描仪.

0x00 什么是SDR?


"软件无线电"(Software Defined Radio -- SDR). 实际上软件无线电技术的研究和开发已经有几十年的历史了,最初源于美军的多制式电台项目. 目前我们日常使用的移动通信系统中其实已经大量使用软件无线电技术, 比如基站中的信号处理大量的使用可编程的FPGA和DSP完成, 比如手机当中的基带处理器也越来越多的采用软解调的方法(少数运算量特别大实时性要求特别高的模块除外,比如turbo解码器,扩频相关器等,这些模块往往在基带处理器中嵌入一些高度定制化"硬"核来实现) 首先要先选择一根支持rtl-sdr的电视棒.就是采用RTL2832u(频率范围为64-1700mh)解调芯片的.价格无疑方面是最便宜的无线电(SDR)硬件设备. 普通的电视棒当然不能把原始信号送给电脑,不过用了rtl2832芯片的电视棒被破解了,可以把原始信号送给电脑,这样就可以用电脑分析解调任意信号而不是局限于电视信号了。

0x01 树莓派+SDR 会发生什么呢?


先安装必须的依赖项:

#!bash
sudo apt-get update

sudo apt-get install cmake build-essential python-pip libusb-1.0-0-dev python-numpy git

# 下载rtl-sdr的

cd ~

git clone git://git.osmocom.org/rtl-sdr.git

cd rtl-sdr

mkdir build

cd build

cmake ../ -DINSTALL\_UDEV\_RULES=ON -DDETACH\_KERNEL\_DRIVER=ON

make

sudo make install

sudo ldconfig

sudo pip install pyrtlsdr

# 这个时候相关的驱动就装好了.开始使用FreqShow!

cd ~

git clone https://github.com/adafruit/FreqShow.git

cd FreqShow

然后根据情况修改freqshow.py的配置.因为pi的屏幕不同我建议是将下面的注释了.

#!python
# Initialize pygame and SDL to use the PiTFT display and chscreen.
#os.putenv('SDL_VIDEODRIVER', 'fbcon')
#os.putenv('SDL_FBDEV'      , '/dev/fb1')
#os.putenv('SDL_MOUSEDRV'   , 'TSLIB')
#os.putenv('SDL_MOUSEDEV'   , '/dev/input/touchscreen')
pygame.mouse.set_visible(True)

sudo python freqshow.py

这个时候你就拥有了一个树莓派无线扫描仪.

0x02 捕获来自飞机的信号.


能很容易的捕获到飞机是因为中国民航新航行系统(CNS) .1090Mhz在系统里大量采用了古老的无线标准. 因为航空业巨头们建立了一整套适航规定,飞机上任何一点小小的改动若想获得广泛的应用是非常麻烦的,更不要说对CNS系统的升级换代. ADS-B 是广播式自动相关监视系统,亦即一种航空交通监视系统,而且是使用全球性导航卫星系统、航机的航电设备和地面基础设施, 能够在航机和航管地面站 (air-to-ground 即 aircraft to ATS) 或是空对空 (air-to-air 即 aircraft to aircraft) 之间准确和迅速自动地传送飞航讯息; 其中包括有航机的识别、位置、高度、速度和其他数据或资讯。 简单来说 ADS-B 是由航机直接发出的封包,让地面或其他航机可以得知它的位置、高度、速度等资讯。 ADS-B利用112个未加密的脉冲字在978Mhz、1090Mhz发射的信号。然后通过dump1090将捕获到信号信息生成地图

#!bash
cd ~

git clone git://github.com/MalcolmRobb/dump1090.git

cd dump1090

make

./dump1090 –interactive –net

然后访问pi的8080端口.

更详细的操作可以看下面的链接 https://github.com/antirez/dump1090/

0x03 制造出一架飞机?


GNURadio在按照ads-b协议生成信号.可以定义任意的经纬信息. (说到这里应该很多人都懂了)因为没有条件所以就没有机会实践了..只是提供一条思路! 请实践时不要使用1090Mhz. 你该找一个合法的或者足够安全的频率(比如某些敌国卫星的生癖频率),以最最最低的功率发射,使用闭路射频电缆和衰减器,最好在地下室或者暗室玩这个。后果自负!!!!

0x04 SDR收听FM


那个13碎的小黑阔拿到hackrf问我第一个问题就是怎么听FM.我也是醉了.好吧还是说一下怎么使用树莓派+电视棒听FM.

rtl_tcp -a 192.168.X.X(树莓派的IP)

然后电脑客户机下载 http://sdrsharp.com/downloads/sdr-install.zip 解压后运行 install.bat 自动绿色安装生成目录sdrsharp 直接运行 SDRSharp.exe即可。 选择RTL-SDR / TCP, 点击设置输入树莓派的IP.端口1234参数勾选RTL AGC Tuner AGC,Radio那里选择WFM然后点击开始。调整VFO频率就能听到当地的FM了

下面链接是有关收听一些特别的.如网络频率还有..用的频率(有点敏感.所以只放链接)

http://kmkeen.com/rtl-demod-guide/index.html

0x05


文章有部分是摘抄大牛文章的.另外因为电视棒不具有发射的条件..所以想看. 挟持无线麦.伪造X机信号.以及别人所谓的破解汽车..等等的重放攻击.等我(买or做)HACKRF.之后在说吧..

最后希望这篇文章能为你打开一扇大门.通往哪里就看你了..

并忠告各位看客一句.务必遵守当地无线电和航空安全法规否则后果自负!!!!!!

补充LINK

http://www.satsignal.eu/raspberry-pi/dump1090.html

©乌云知识库版权所有 未经许可 禁止转载


30
wefgod 2014-12-03 10:47:08

好高级,以后可以试试,话说这个是在官方系统的基础上改造的吗?

30
txcbg 2014-11-16 22:26:04

小显示屏不错

30
侠之心 2014-11-15 23:07:44

话说 题主 你是从天蝎第一集里面想到的捕获飞机的信号吗?

30
二狗子 2014-11-13 17:06:23

http://item.taobao.com/item.htm?_u=d1i7ibsj057a&id=21033664310

30
疯狗 2014-11-13 11:45:44

有意思,最近在玩板子,但还没看到无线这里,mark下。

30
deepweb 2014-11-13 10:08:59

HACKRF要3000左右 要是300立马入一个 rtl不能发射 无爱了

30
末笔丶 2014-11-12 12:39:29

树莓pi的ip

30
helen 2014-11-12 08:41:25

然后访问pi的8080端口.....是IP吧

30
mickey 2014-11-11 23:30:54

好文章。讲的很明白,学习了

30
末笔丶 2014-11-11 18:57:27

棒子被你玩坏了?先拿三哥的萝卜去用着先把.

30
末笔丶 2014-11-11 18:54:22

嘘........

30
末笔丶 2014-11-11 18:52:42

我没钱给树莓派配声卡.
Wolfson音频卡的售价为33刀
rtl_fm --help 你可以自己研究一下哦.

30
Anymous 2014-11-11 17:29:46

最后一步你都用电脑了,还用树莓派干什么,有点鸡肋,
应该完全在树莓派上解调才对

30
whale 2014-11-11 15:15:05

那个链接里居然有警用的频段,也就是可以收到条子的通话,可以像韩国电影监视者里的黑老大一样了

30
Kuuki 2014-11-11 14:55:59

买的和题主的棒子一样,结果被我玩坏了,只能收到ADS-B收不到FM

感谢知乎授权页面模版