用户
搜索
  • TA的每日心情
    擦汗
    2021-2-19 17:54
  • 签到天数: 348 天

    连续签到: 1 天

    [LV.8]以坛为家I

    版主

    我是表弟

    Rank: 7Rank: 7Rank: 7

    47

    主题

    334

    帖子

    1028

    魔法币
    收听
    0
    粉丝
    17
    注册时间
    2015-11-20

    秦突出贡献春秋游侠核心白帽i春秋签约作者楚燕魏齐赵积极活跃奖春秋文阁春秋达人幽默灌水王

    0nise 版主 我是表弟 秦 突出贡献 春秋游侠 核心白帽 i春秋签约作者 楚 燕 魏 楼主
    发表于 2017-8-9 11:17:26 224171
    作者:冰尘
    注:本文参与现金奖励,未经允许禁止转载

    HackRF 无线电操作教程/3G物联网中某些不可描述功能
    图片1.png
    图片2.png
    图片3.png
    图片4.png
    利用ss7号信令搞定一些不可描述的功能。
    Hackrf的无线电操作大部分是在GNUradio上完成的,所以我们要进行编译gnuradio以及对应的hackrf配套设备rtl-sdr即可。
    注:kali下直接 sudo apt-get install gnuradio gqrx rtl-sdr
    PyBOMBS (Python Build Overlay Managed Bundle System) 是 GNU Radio 的包管理系统。
    从头开始一键安装GNU Radio在Dell 暗影精灵上实测大约只需要20分钟,下载非常快,主要的时间就剩编译了。 而且安装的都是最新的版本。
    另外,PyBOMBS会帮你解决依赖的问题,省得每次敲一堆make cmake命令了。
    以前自己拖代码回来经常会被重置,而且耗时要几个小时。
    警告:以下部分内容带有攻击性,本次测试经过授权操作,学习者请务必在法律法规允许的范围内进行测试学习。
    安装实例
    [Shell] 纯文本查看 复制代码
    sudo pip install pybombs
    rm -rf ~/.pybombs
    pybombs recipes add gr-recipes git+[url]https://mirrors.tuna.tsinghua.edu.cn/pybombs/recipes/gr-recipes.git[/url]
    pybombs recipes add gr-etcetera git+[url]https://mirrors.tuna.tsinghua.edu.cn/pybombs/recipes/gr-etcetera.git[/url]
    mkdir gnuradio-prefix
    cd gnuradio-prefix
    pybombs prefix init
    pybombs install gnuradio
    . ./setup_env.sh
    gnuradio-companion
    pybombs install rtl-sdr hackrf bladeRF gr-osmosdr gr-bluetooth gr-ieee-80211
    更新
    由于 PyBOMBS recipes 只能通过 git 仓库进行发布。而我们暂时不想维护一个复杂的 git 分支合并历史。所以更新时,需要将 recipe 仓库删除,然后再重新添加回来。
    [Shell] 纯文本查看 复制代码
    pybombs recipes remove gr-recipes
    pybombs recipes remove gr-etcetera
    pybombs recipes add gr-recipes git+[url]https://mirrors.tuna.tsinghua.edu.cn/pybombs/recipes/gr-recipes.git[/url]
    pybombs recipes add gr-etcetera git+[url]https://mirrors.tuna.tsinghua.edu.cn/pybombs/recipes/gr-etcetera.git[/url]
    本镜像使用
    http://github.com/scateu/pybombs-mirror
    脚本进行构建
    [Shell] 纯文本查看 复制代码
     ./setup_env.sh
    uhd_images_downloader   #下载固件
    # 安装udev rules 否则会提示: USB open failed: insufficient permissions.
    sudo cp ./lib/uhd/utils/uhd-usrp.rules /etc/udev/rules.d/99-uhd-usrp.rules
    sudo udevadm control --reload-rules 
    #重新载入
    sudo udevadm trigger       
    #触发一下,省去插拨USB
    由于build-gnuradio脚本经常受到不可抗力的影响,
    导致安装失。于是需要我们进行手动编译。
    手动编译的顺序是
    1. 安装各种依赖包
    2. gnuradio
    3. hackrf / rtlsdr
    4. gr-osmosdr
    首先解决对应的依赖
    [Shell] 纯文本查看 复制代码
    sudo apt-get -y install build-essential cmake git-core autoconf automake  libtool g++ python-dev swig pkg-config libfftw3-dev libboost1.53-all-dev libcppunit-dev libgsl0-dev libusb-dev sdcc libsdl1.2-dev python-wxgtk2.8 python-numpy python-cheetah python-lxml doxygen python-qt4 python-qwt5-qt4 libxi-dev libqt4-opengl-dev libqwt5-qt4-dev libfontconfig1-dev libxrender-dev libusb-1.0

    编译GNURadio
    [Shell] 纯文本查看 复制代码
    git clone --progress [url]http://gnuradio.org/git/gnuradio.git[/url]
    cd gnuradio
    mkdir build
    cd build
    cmake ../
    make -j4   #4代表用4核编译
    sudo make install
    sudo ldconfig
    编译hackrf
    [Shell] 纯文本查看 复制代码
    git clone --progress [url]http://github.com/mossmann/hackrf.git[/url]
    cd hackrf/host
    mkdir build
    cd build
    cmake ../ -DINSTALL_UDEV_RULES=ON
    make
    sudo make install
    sudo ldconfig

    编译rtlsdr(可选)
    [Shell] 纯文本查看 复制代码
    git clone --progress git://git.osmocom.org/rtl-sdr 
    cd rtl-sdr
    mkdir build
    cd build
    cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
    sudo make install
    sudo ldconfig

    编译gr-osmosdr
    [Shell] 纯文本查看 复制代码
    git clone --progress git://git.osmocom.org/gr-osmosdr
    cd gr-osmocom
    mkdir build
    cd build
    cmake ../
    make 
    sudo make install
    sudo ldconfig

    编译gqrx(可选)
    [Shell] 纯文本查看 复制代码
    git clone [url]https://github.com/csete/gqrx.git[/url]
    cd gqrx
    mkdir build
    cd build
    qmake ../gqrx.pro
    make
    sudo make install
    sudo ldconfig

    编译完成后
    我们使用以下工具来进行SDR定义操作
    ·osmocom_fft : 一个简单的HackRF频谱仪,用来显示无线电频谱        
    ·osmocom_siggen : 一个简单的HackRF信号发射源

    ·gqrx : 类似于SDR#的广播接收器
    WFM无线广播发射
    FM介绍
    就是FM啦。WBFM是指宽带FM,现在我们的收音机大多是用WBFM,例如103.9MHz北京交通台,87.6MHz音乐台等。
    值得一提的是,对讲机使用的是NBFM(窄带调频)。
    发射WAV文件
    制备WAV文件
    随便找一个mp3文件什么的,转换成WAV文件。在此建议转换成44.1kHz,双声道。
    例如使用ffmpeg转换:
    [AppleScript] 纯文本查看 复制代码
    ffmpeg -i source.mp3 music.wav
    转换后的结果:
    [Shell] 纯文本查看 复制代码
    $mediainfo jen_ai_marre.wav 
    General
    Complete name                    : jen_ai_marre.wav
    Format                                   : Wave
    File size                                  : 47.0 MiB
    Duration                                : 4mn 39s
    Overall bit rate mode            : Constant
    Overall bit rate                        : 1 411 Kbps
    Audio
    Format                                     : PCM
    Format settings, Endianness  : Little
    Format settings, Sign              : Signed
    Codec ID                                  : 1
    Duration                                  : 4mn 39s
    Bit rate mode                          : Constant
    Bit rate                                     : 1 411.2 Kbps
    Channel count                        : 2 channels
    Sampling rate                          : 44.1 KHz
    Bit depth                                  : 16 bits
    Stream size                               : 47.0 MiB (100%)
    搭框图
    打开gnuradio-companion
    把以下框图搭起来。
    Wav source
    ·samp_rate采样率要设置为250kHz,这个与我们的wav文件采样率为44.1kHz有关。实际试验,如果samp_rate设置为500kHz,放出来的声音会加速一倍。
    ·N Channels表示Wav文件的声道数,填2
    ·File里填写你在上一步制备的Wav文件地址
    Stream Mux
    把两条数据流合并为一条流,例如N0是来自第一条流的采样点,N1来自第二条流采样点,则Stream Mux会将两条流以如下方式输出:
    [N0, N1, N0, N1, N0, N1, ...]
    值得注意的是此处的Type需要填为FloatGNURadio里的数据类型是以颜色表示的。
    file:///C:\Users\0nise\AppData\Local\Temp\ksohtml\wps7C46.tmp.png

    osmocom_sink
    GNURadio里,Sink表示信号输出,Source表示信号输入。
    ◆Device Arguments可以填上hackrf=0
    ◆sample rate设置为samp_rate*4
    ◆Ch0 Freq Corr (ppm)
    ◆HackRF的频率较正值,在没有经过仪表校正时,可以直接先填0,有条件的同学可以使用频谱仪或信号源进行标定,或者给我留言,我这里可以帮你标定。
    ◆Ch0 Frequency
    ◆要发射的频率,此处我填了93e6,表示93MHz
    ◆Ch0 RF Gain(dB)
    ◆表示HackRF放大器是否开启
    ◆尽管此处Gain可任意输入,但事实上只有两档,0和14dB,并不是连续可调的,在此我们填14
    ◆Ch0 IF Gain(dB)
    ◆表示HackRF的中频的增益
    ◆从电路上来看,应试指的是进入MAX2837收发器后给的增益
    ◆在此我们填40
    ◆Ch0 BB Gain(dB)
    ◆表示HackRF的基带增益
    ◆可能指是的进入ADC/DAC芯片后给的增益
    在此我们填20
    ◆Ch0 BandWidth,填250e3
    进一步:通过话筒进行直播发射
    只需要把Wav File Source改为Audio Source即可,注意按照图中标注修改采样率。
    如果上图搭建过程中产生困难,可以参考附录1的grc后缀的XML文件



    发表于 2017-8-9 12:41:37
    没钱,200卖不卖?你卖的话,我200买了。
    坏蛋说小楠结婚了,兔兔跟坏蛋跑了,我还有谁?谁还要我?哎~
    使用道具 举报 回复
    支持一下这种类型的文章~
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册