树莓派打造无线扫描仪.
0x00 什么是SDR?
“软件无线电”(Software Defined Radio — SDR). 实际上软件无线电技术的研究和开发已经有几十年的历史了,最初源于美军的多制式电台项目. 目前我们日常使用的移动通信系统中其实已经大量使用软件无线电技术, 比如基站中的信号处理大量的使用可编程的FPGA和DSP完成, 比如手机当中的基带处理器也越来越多的采用软解调的方法(少数运算量特别大实时性要求特别高的模块除外,比如turbo解码器,扩频相关器等,这些模块往往在基带处理器中嵌入一些高度定制化”硬”核来实现) 首先要先选择一根支持rtl-sdr的电视棒.就是采用RTL2832u(频率范围为64-1700mh)解调芯片的.价格无疑方面是最便宜的无线电(SDR)硬件设备. 普通的电视棒当然不能把原始信号送给电脑,不过用了rtl2832芯片的电视棒被破解了,可以把原始信号送给电脑,这样就可以用电脑分析解调任意信号而不是局限于电视信号了。
0x01 树莓派+SDR 会发生什么呢?
先安装必须的依赖项:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
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的屏幕不同我建议是将下面的注释了.
1
2
3
4
5
6
|
# 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将捕获到信号信息生成地图
1
2
3
4
5
6
7
8
9
|
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