【无线安全1】HackRF接收广播

0x01 环境问题

    用提供的ubuntu14 iso载入vm虚拟机没搞定,hackrf_info基本信息查看不成功错误-1000。

    只好自己在Kali2017 x64上搭建环境,只需要安装GNU radio companion、gqrx,但进入gnuradio发现没有osmosdr模块。

 (进入图形化gnuradio命令是 gnuradio-companion),所以重新安装osmosdr,就可以在右侧模块中找到。

 

 

 

0x02 显示两个波形图的配置

【效果图】

【无线安全1】HackRF接收广播_第1张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

【流程图】

【无线安全1】HackRF接收广播_第2张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0x03 综述

流程图是gnuradio的界面,左侧:

【samp_rate】是采样率,代表接收电磁波频率的宽度,也将是生成波形图的宽度。10M是10MHZ宽度。

若中心是80MHZ,samp_rate是10MHZ,则最左是75MHZ,最右是85MHZ

 

下方两个变量是自己定的,可从右边模块栏拖入,可直接复制。

【center_freq】是中心频率,自己起的,规定波形图中点位置的频率。

【channel_freq】是引导频率,自己起的,标明希望把中点移到哪个频率去。

 

之所以需要channel_freq是希望不改变中心频率的情况下,把范围内某个频率放在波形图中点位置,所以需要引导。

97.9MHZ是97.9e6的值,它是FM广播的中值,所以center_freq是97.9M,但我们感兴趣的频道在96.5MHZ,所以先设channel_freq是96.5MHZ。

 

(注意上方是否已选Generate Options:WX GUI)

 

 

 

 

0x04 模块介绍

4.1 osmocom Source模块

(Open source mobile communication) 开源移动通信协议的实现模块,是最基本的获取信号输入的模块。

在右侧Source中选择,拖入流程图。

【sample_rate】这项属性已自动和前边的变量关联,采样率。

【ch0:Frequency(Hz)】 频率的意思,这里设为我们的中心频率,不写97.9e6,写center_freq用变量表示。

【RF Gain(db)】 增益,从10改为0,一般不需要。

 

 

4.2 WX GUI FFT Sink模块

这个模块是输出波形图。需要把osmocom中源信号连入此模块,操作方法,分别点击方框边的两个蓝色矩形即可连接。

【sample_rate】采样率仍是自动关联了sample_rate变量。

【Baseband Freq】 中心频率,写我们设定的center_freq变量,自动显示为97.9M

【Average】 双击进入属性,把Average从off改为on

 

若此时直接保存运行,可看到单个波形图表,若无信号则表示出了问题。

 

 

4.3 Signal Source模块

这是人工加一个输入信号,由CPU生成需要的信号,和osmocom的原始信号相乘,起到转移中心频率的效果。

【sample_rate】自动关联采样率。

【freqency】频率,指要让中心偏移的频率。让中心频率 减去 目标频率。值设为center_freq - channel_freq

  由于是python代码,所以直接写符合python语法的代码即可,例如两个变量相减。

 

 

4.4 Multiply模块

乘法模块,两个输入,一个输出。

输入分别是原始信号osmocom和人工加的SignalSource信号。

输出连接到4.2的WX GUI FFT Sink模块上,用来输出波形图。

 

注意:这个新的FFT模块,要设

【baseBand Freq】中点频率为目标中点频率,即channel_freq  96.5e6;以及

【Average】开关打开on

 

此时两个FFT波形图,一个是center_freq为中心的,一个是channel_freq为中心的,出现效果图中的效果。

 

但是,如何把广播音频输出?

 

目前,仅是把一份输入信号,显示了两个中心不同的波形图,要把信号输出到声卡去。

我们之前把channel_freq调到中心,是为了输出中心96.5MHz附近200KHz的广播信号音频。

 

 

 

0x05 输出到声卡

【效果图】

【无线安全1】HackRF接收广播_第3张图片

 

【流程图】

【无线安全1】HackRF接收广播_第4张图片

 

定义了新的变量

【channel_width】值200e3表示200KHz,用来表示广播频率的宽度。

 

 

 

0x06 广播部分模块介绍

6.1 Low Pass Filter模块

低通滤波器。允许直流到截止频率(cutoff freq)之间的信号通过。

【cutoff freq】截止频率,此处填入75e3,即75KHz。

【transition width】过渡宽度,此处填入25e3,即25KHz。

【Decimation】降低采样率。我们目前sample_rate是10MHz,而只需要采样200KHz的宽度,即从10e6取200e3,相差50倍。

                         所以,此处填50。但不需要手工算,用Python式子 int(samp_rate / channel_width) 因为这个模块只支持整数。

所以,通过此模块后的信号,采样频率只剩下了200KHz。

 

 

6.2 Rational Resampler模块

合理重采样模块,因为之前低通滤波器后频率200KHz,但声卡支持的是48KHz,所以想先创造一个480KHz的再降10倍。

合理重采样模块就是用来创造480KHz的,它把200KHz先乘以12倍,再除以5倍,就是480KHz。

【interpolation】添加,也就是乘倍,此处填12。

【decimation】  降低,也就是降倍,此处填5。

从此模块输出480KHz信号。

 

 

6.3 WBFM Receive模块

FM信号转音频信号模块。

【quadrature】填输入的信号频率,填480e3,即480KHz。

【Audio Decimation】降低倍数,此处写10,降低10倍。

降低10倍后信号变为48KHz,输出。

 

 

6.4 Audio Sink模块

声卡输出模块,输入48KHz的信号,设定中选择采样率。

【sample_rate】48e3

 

最后,只留下一个FFT波形图,然后就可以开始执行了,播放广播到声卡。

 

 

 

 

你可能感兴趣的:(【无线安全1】HackRF接收广播)