准备工作:
这里使用的设备是hackrf,所以需要在kali下安装hackrf的驱动和环境。打开终端,在终端中输入以下命令:
sudo apt-get install hackrf libhackrf-dev libhackrf0
安装完毕之后,插上hackrf,运行以下命令,可查看hackrf的基本情况。如下所示:
hackrf_info
接下来需要安装一些其他软件,在终端输入以下命令:
apt-get install gnuradio gnuradio-dev gr-osmosdr gqrx-sdr wireshark```
安装完毕之后,接上相应的天线。这里首先需要将无线门铃信号先接收,然后再重发出去,所以需要将一根天线连接ANT端,一根连接OUT端,还需要一根天线连接到IN端。连接完毕之后如下所示:
![](https://s1.51cto.com/images/blog/201803/02/8a68fb1ff750f8870c017c8ee96cb35c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
接下来就是需要去获得相应的门铃信号了。这里首先需要确定无线门铃信号的频率,这样才能展开下面的***。如果在windows下面,可以使用sdrsharp-x86这一款软件,而如果在linux下,就可以使用gqrx这一款软件了。两款软件的界面如下所示:
#### gqrx:
![](https://s1.51cto.com/images/blog/201803/02/5923e28789cf1e2dcc0027e4b20c9777.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#### sdrsharp-x86:
![](https://s1.51cto.com/images/blog/201803/02/33eb8a727bdb1dbf7515f03881aaef46.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
## 收集无线信号:
接下来所需要做的就是获取门铃信号的频率了,这里需要通过不断尝试才能获取到相应的频率。通过寻找,我们发现无线门铃信号频率在315MHZ附近,如下图所示:
![](https://s1.51cto.com/images/blog/201803/02/0f4c981866f47fae586e36bab1a17729.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
找到所需要的频率之后,接下来的操作就是录制这个无线门铃信号了。我们先将hackrf插入电脑,通过hackrf_info指令确定hackrf已经和电脑成功连接可以使用。然后在终端内键入如下命令来录制门铃的无线信号:
hackrf_transfer -r doorbell.raw -f 315100000 -g 16 -l 32 -a 1 -s 8000000 -b 4000000
执行命令之后,在终端的输出如下:
![](https://s1.51cto.com/images/blog/201803/02/f3a9578ed8461226d8cdcd1eac191cc6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在录制一段时间之后结束信号的录制,在对应的文件夹下面可以找到录制成功的文件。这里需要注意的是如果信号的录制没有完全,或者录制的时候干扰过大,会导致录制出来的信号会有畸变。这时需要对信号进行波形分析,观察信号是否有明显的畸变,所谓的畸变就是由于干扰,导致信号的高低无法分辨,即无法判断出信号是否为0或者1。所以需要对信号进行重新录制,否则实验是无法成功的。
在对信号进行观察的时候需要使用相应的波形观测软件,这里使用的是Audacity,导入频率文件之后,对其进行放大。就可以观察到频率信号的具体情况了。如下图所示:
![](https://s1.51cto.com/images/blog/201803/02/2aa66aea270f204e5b6ac670238ce5f0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
## 重放***
在播放这个频率信号文件时可以采用两种方法,一种是通过一开始安装的Gnu Radio对信号进行重放。这个软件在无线电上应用非常广泛,很方便初学者使用,避免了那些难以记忆的复杂命令,采用可视化的模块拖动就可以完成对信号的重放。
在终端直接输入以下命令:gnuradio-companion
可以打开Gnu Radio,然后通过简单的拖动完成即可完成对录制的频率文件的播放。
如图所示:
![](https://s1.51cto.com/images/blog/201803/02/5cd060195c2abc6fc56364d71cc79385.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
然后指定源文件之后就可以进行重放***了。
当然也可以直接使用hackrf直接去重放获得的频率信号。因此首先我们需要对hackrf的命令有一个基本的了解,hackrf的使用指南可以在hackrf的官网上找到,这里摘录了部分(进行了翻译):
[-r] <filename> # 把接收到的信号、数据保存到文件中;
[-t] <filename> # 从文件中提取、发射射频信号;
[-w] # 接收数据到WVA头中
[-f freq_hz] #设定播放的频率
[-i if_freq_hz] # 中频段 (IF) in Hz [2150MHz to 2750MHz].
[-o lo_freq_hz] # 前端本地振荡器频率 in Hz [84MHz to 5400MHz].
[-a amp_enable] # 选择播放接收使能
[-p antenna_enable] # 天线口功率, 1=Enable, 0=Disable.
[-l gain_db] # 接收低噪声放大器(IF)增益, 0-40dB, 8dB steps
[-g gain_db] # 接收VGA(基带)增益, 0-62dB, 2dB steps
[-x gain_db] # 发送VGA(基带)增益0-47dB, 1dB steps
[-s sample_rate_hz] # 赫兹采样率(8/10/12.5/16/20MHz, default 10MHz).
[-n num_samples] # 传送样本数 (默认是无限的).
[-c amplitude] # CW信号源模式,振幅0-127(DAC直流值).
[-b baseband_filter_bw_hz] 设置基带滤波器带宽。
按照以上的hackrf使用指南,可以写出如下命令来播放门铃信号其中doorbell.raw为录制好的门铃信号:
hackrf_transfer -t doorbell.raw -f 314100000 -x 47 -a 1 -s 8000000 -b 4000000
在终端会出现如下界面。
![](https://s1.51cto.com/images/blog/201803/02/ee67192c11114baf387810d109788f79.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
如果想不断播放,在上面的命令后增加一个-R即可。就可以不断重复播放无线门铃信号了。
转载于:https://blog.51cto.com/13620939/2079945