0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HackRF接收和发送信号的功能初探

蛇矛实验室 来源:蛇矛实验室 2024-01-02 18:17 次阅读

HackRF介绍

HackRF是一款开源软件无线电(SDR)平台,由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围,从1 MHz到6 GHz,支持大部分常见的无线通信频段。采用软件定义无线电技术,HackRF提供了自定义和控制无线信号处理的能力,包括接收、发送、解码和干扰。配备高速ADCDAC,它能够实现各种无线应用,并通过USB接口与计算机连接,方便集成到各种软件和开发平台中。作为一个功能强大且灵活的平台,HackRF为安全研究人员、软件无线电从业者和爱好者提供了一个开放的环境,用于探索和实验无线通信技术和安全应用。

HackRF功能

HackRF可实现的功能可简要分为如下几点:

接收和解码无线信号:HackRF可以接收并解码各种无线信号,如无线电广播、无线电通信、无线电定位等。用户可以使用HackRF来监听和分析无线信号,了解无线通信的工作原理

发送和模拟无线信号:HackRF可以生成和发送各种无线信号,如无线电广播、无线电通信、无线电干扰等。用户可以使用HackRF进行无线通信实验、无线信号干扰测试等。

破解和分析无线协议:HackRF可以用于破解和分析各种无线协议,如无线门禁系统、汽车遥控器、无线键盘鼠标等。用户可以使用HackRF来分析无线协议的加密算法和通信流程,从而进行安全评估和漏洞分析。

定位和跟踪无线信号:HackRF可以用于定位和跟踪无线信号的发射源。用户可以使用HackRF来进行定位和跟踪无线设备,如无线摄像头、无线麦克风等,从而实现无线设备的定位和监控。

在这一小节中,我们主要了解HackRF 接收和发送信号的功能,并在后续小节逐渐深入HackRF的各个功能。

注意:在使用HackRF设备时,在特定频率和特定功率广播需要执照,某些情况下甚至是非法的。请各位安全人员严格遵守相关无线电法规!

HackRF信号接收

Windows环境搭建

SDRsharp官网下载后,解包执行 install-rtlsdr.bat 自动下载 zadig.exe程序与此SDRsharp软件同级目录。SDRSharp.exe 为SDRsharp主程序,在运行SDRsharp.exe程序前需进行以下步骤:

将 HackRF One 连接计算机 USB,此时电脑无法识别HackRF One,我们需要打开 zadig 选择Options->Lists All Devices->HackRF One,并点击下图中按钮进行驱动安装。

935b4ec8-a956-11ee-8b88-92fbcf53809c.png

安装成功后在设备管理器显示如下图,说明驱动安装成功:

9375ce88-a956-11ee-8b88-92fbcf53809c.png

信号收听

1.收听FM广播

FM频率:

在全世界范围内,FM 广播波段属于无线电频谱的VHF部分,通常使用 87.5到108.0 MHz。

打开 SDRsharp后先将Source设置为HackRF后再进行其他操作。

939649f6-a956-11ee-8b88-92fbcf53809c.png

HackRF Controller 为配置面板,DEVICE 下为设备名称,LNA Gain 与 VGA Gain 分别是 AFE 增益控制,AMP 为 RX AMP 启用/停止, PPM 为频率误差补偿。

通常在 FM 频率 LNA 设置在白天设置为 16或24,晚上设置为 8 即可正常工作,VGA 可根据信号进行调节,这里我设置为 24,AMP 也要勾选。设置完成后点击 CLOSE 或直接关闭即可。点击启动按钮显示如下图所示,出现的波峰为HackRF接收信号经SDRsharp解析识别到的可能信号源。

93b4f090-a956-11ee-8b88-92fbcf53809c.png

此时鼠标点击不同波峰处进行收听,即可切换至相应频率的FM电台。

2.收听对讲机

将频率设定到440MHz附近,设置如下图所示,图中Radio选择 NFM,并将 Correct IQ 勾选去除,点击开始收听后,在波形窗口中偶尔出现的波峰即是对讲机发出的信号,即瀑布图中偶尔出现的红线。

93ea2b84-a956-11ee-8b88-92fbcf53809c.png

3.收听GSM信号

GSM 信号有两个频率 870MHZ,950MHZ。下图为收听870MHz的波形图。

94116514-a956-11ee-8b88-92fbcf53809c.png

4.收听其他信号

除了接收以上信息外,在指定频率下,HackRF还可收听航空、WiFi等信号。这里不再演示,大家感兴趣可自行查找频率范围并测试收听进行学习。

HackRF信号发送

ubuntu环境安装

apt-get installHackRF libHackRF-dev libHackRF0

HackRF连接计算机,运行HackRF_info命令会输出以下信息

942f1f00-a956-11ee-8b88-92fbcf53809c.png

我们可以使用HackRF_transfer命令来接收或发送信号。

9446a2ba-a956-11ee-8b88-92fbcf53809c.png

-d 表示要使用的HackRF的ID,如果你只插了一台HackRF,·这个参数就可以忽视
-r 启用该参数需要指定文件名称,该参数是指将接收的音频保存到指定文件中,以便后期采用
-t 启用该参数需要指定文件名称,该参数是指从文件读取音频
-w 此参数是指自动保存文件为WAV,此参数是为了和SDR#(一款无线电软件,支持windows)兼容
-f 此参数为设置发送/接收的频率,单位是Hz,范围从0MHz到7250MHz
-i 此参数为设置发送/接收的中频,单位是Hz,范围从2150MHz到2750MHz
-o 此参数为设按置前端本地震荡器的频率(LO),单位是Hz,范围从84MHz到5400MHz
-m 此参数是选择镜像抑制滤波器,0为旁路,1为低通,2为高通
-a 此参数为是否启用RX/TX射频放大电路,0为禁用,1为启用
-p 此参数为是否启用天线端口电源,0为禁用,1为启用
-l RX LNA(中频)增益,可以设置0-40db,8db间隔
-g RX VGA(基频)增益,可以设置0-62db,2db间隔
-x TX VGA(基频)增益,可以设置0-47db,1db间隔
-s 此参数为设置采样率,单位是Hz,范围从2-20Mhz,默认为10Mhz
-n 此参数为接收/发送的样本的个数,默认为无限制
-S 此参数为设置缓冲区大小
-c 此参数为设置CW信号源模式,振幅0-127(DC值到DAC)
-R 此参数为设置是否开启重复发送,默认为关闭
-b 此参数为以Hz为单位,设置基带滤波器的带宽,以下是可能的值:
1.75/2.5/3.5/5.5/6/7/8/9/10/12/14/15/20/24/28Mhz,计算公式为:
默认值<=0.75*采样率(Hz)
-C 此参数为将内部晶体、时钟设置为ppm
-H 此参数为设置设备使用GPIO引脚同步USB传输

信号发送

我们可以使用下面的命令录制信号。无线遥控设备通常是 315MHZ 和 433.92MHZ,这里指定录制频率为315MHz。运行后,手动触发遥控信号。

HackRF_transfer -r open.raw -f315000000-l16-g 20

945fe9aa-a956-11ee-8b88-92fbcf53809c.png

运行下面的命令重放刚刚录制的遥控信号。

HackRF_transfer -t open.raw -f315000000-x40

947e2ec4-a956-11ee-8b88-92fbcf53809c.png

除了在linux中使用HackRF_transfer接收和发送信号外,在windows中也可通过Universal Radio Hacker软件进行接收和发送。我们可以利用HackRF接收和发送信号的能力,实现重放攻击。为了方便演示,下面以GPS欺骗实验为例,测试HackRF发送信号的功能。

实验:GPS欺骗

我们可以使用GPS-SDR-SIM生成GPS仿真数据,并使用HackRF_transfer命令发送欺骗GPS信号。这个项目的原理是gps-sdr-sim能根据指定的卫星信息文件、坐标信息、采样频率等参数输出二进制的信号文件,将这个二进制文件导入到USRP或者bladeRF之类的无线电射频设备上就可以实现GPS的伪造。

下载并编译 GPS-SDR-SIM。

git clone https://github.com/osqzss/gps-sdr-sim.git
cdgps-sdr-sim
gcc-mp-5gpssim.c-lm-O3 -ogps-sdr-sim

949b45a4-a956-11ee-8b88-92fbcf53809c.png

编译完成后./gps-sdr-sim运行程序,该程序参数详细解析如下。

Usage: gps-sdr-sim[options]
Options:
-e卫星信息文件(必须)
-u用户定义的坐标文件 (动态的位置信息)
-g NMEA坐标文件 (动态的位置信息)
-l坐标,维度-经度-海拔,例如:30.286502,120.032669,100
-t  模拟的开始时间 YYYY/MM/DD,hhss
-d 持续时间 [秒] (最大: 300)
-o二进制文件的输出位置 (默认: gpssim.bin)
-s 采样频率 [Hz] (默认: 2600000)
-b二进制文件格式 [1/8/16] (默认: 16)
-v 更多细节信息

我们在世界地图中随意选取一个坐标与星历数据生成GPS仿真数据

./gps-sdr-sim-ebrdc0010.22n -l95.64899170484503,25.988308575432956-b8

94b1fd94-a956-11ee-8b88-92fbcf53809c.png

电脑连接HackRF后使用HackRF_transfer程序发射GPS数据。

HackRF_transfer-tgpssim.bin-f1575420000 -s2600000 -a1 -x0

94cfd594-a956-11ee-8b88-92fbcf53809c.png

注 :其中1575420000指定的是发射的频率,而2600000是采样频率,并且HackRF 会在发送完300秒GPS信号后会自动停止。

我这里测试大概在2分钟后,手机高德地图被欺骗。

总结

在这一小节中,我们初步了解了HackRF的接收和发送信号的功能。并通过指定操作进行了接收和发送,并以GPS欺骗实验为例,对HackRF One的信号发送有了一定程序的理解。在后续的小节中,我们会以GNU Radio相关实验为例深入了解HackRF One的信号接收和发送能力。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • USB接口
    +关注

    关注

    9

    文章

    672

    浏览量

    55002
  • 计算机
    +关注

    关注

    19

    文章

    6653

    浏览量

    84609
  • dac
    dac
    +关注

    关注

    43

    文章

    1973

    浏览量

    189570
  • 无线通信
    +关注

    关注

    56

    文章

    4202

    浏览量

    142369
  • 遥控器
    +关注

    关注

    18

    文章

    815

    浏览量

    64275

原文标题:软件无线电安全之HackRF One初探

文章出处:【微信号:蛇矛实验室,微信公众号:蛇矛实验室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    新手问题,发送信号的频率越高,信号传输的速率越快吗

    新手问题,发送信号的频率越高,信号传输的速率越快吗,求解答
    发表于 06-27 10:18

    蓝牙hc06与电脑连接,串口调试助手发送信息,手机没反应

    请问蓝牙hc06通过ttl与电脑连接。通讯时手机发送信息,电脑可以接收,但电脑串口调试助手发送信息,手机没反应,是hc06坏了? 想做蓝牙小车,但是手机发指令给蓝牙,没反应。所以想知道是否蓝牙坏了,还是其他。(情况如图)
    发表于 04-27 20:32

    433M无线发送模块跟接收模块原理

    想了解发送模块发送信号了,接收模块什么接收信号。新手求指教。是不是有匹配地址。比如说我有一个发送模块两个一样的
    发表于 05-04 11:18

    拓扑网络中EndDevice进行组播和广播的发送信息A时Router接收到的信号A是直接收到的吗?

    在一个拓扑网络中,包含一个Coordinator,若干个Router和若干个EndDevice。我想知道:1:EndDevice进行组播和广播的发送信息A时,Router接收到的信号A是直接收
    发表于 08-17 06:49

    请问如果主机发送信息过快导致从机无法接收数据怎么可以恢复?

    请问如果主机发送信息过快 ,导致从机无法接收数据怎么可以恢复,让从机能正常接收
    发表于 10-18 09:08

    请问Altium这种接受发送信号线要差分走线吗?

    这种接受发送信号线是要差分走线吗
    发表于 09-05 05:35

    为什么ucos-ii中断发送信号量程序会跑死呢?

    if((SCI1StateReg & 0x20) == 0x20)//接收数据有效{ OSSemPost(SemEvent_GPRSDataAnalysis);//发送信号量}OSIntExit();}
    发表于 09-25 00:36

    请问任务的调度执行是在请求信号量之后还是发送信号量之后?

    学习到STM32的操作系统UCOSII,对于信号量的理解还不够透彻。任务的调度执行是在他请求信号量OSSempend()之后,还是发送信号量OSSempost()之后?
    发表于 10-14 21:52

    ucos开发手册中10.4任务同步,任务2请求信号量之后不是要发送信号量吗?

    在原子哥的ucos开发手册中,实验使用信号量进行任务同步中,任务1用来发送信号量,任务2用来请求信号量,但是任务2请求信号量之后不是要发送信号
    发表于 03-10 03:20

    多次发送信号量会怎么样

    多次发送信号量会怎么样?信号量的值是不是会一直增加?比如说按一个按键,发送一个信号量然后蜂鸣器响一下,我快速按几个按键,蜂鸣器确实会响几下,验证了
    发表于 05-22 14:48

    黑白电视信号发送接收

    黑白电视信号发送接收:􀂄  1.1 发送过程与接受过程1.2 显像管原理与电子扫描1.3 黑白全电视信号
    发表于 09-22 08:00 60次下载

    DTMF信号发送/接收电路芯片MT8880

    DTMF信号发送/接收电路芯片MT8880。一、特点:(1)DTMF8880是CMOS大规模集成电路功耗低(52mW),并且将发送接收电路
    发表于 03-11 13:16 2137次阅读
    DTMF<b class='flag-5'>信号</b><b class='flag-5'>发送</b>/<b class='flag-5'>接收</b>电路芯片MT8880

    向从未有人到过的星球发送信号时,会发生什么呢?

    目前在地球上的许多地方,我们已经能够流畅使用无线网络。但是当我们向从未有人到过的星球发送信号时,又会发生什么呢?
    的头像 发表于 07-17 19:09 3443次阅读

    无线电信号发送接收

    广大无线电爱好者都知道无线电通信是利用电磁波在空间的传播来传递信息的。 但是电磁波又是怎样把信息传递出去的呢?对于无线电信号是怎样发送接收的,估计大部分人就不太清楚了,来聊聊无线电信号
    发表于 03-09 10:17 1.5w次阅读

    【Z站推荐】为什么发送CANFD加速报文要开启发送延迟补偿(TDC)?

    ?众所周知,CAN控制器发送信号时,是经过收发器后发往CAN总线后,再经过收发器反馈总线信号。那么发送过程中,控制器发送信号
    的头像 发表于 07-22 15:13 598次阅读
    【Z站推荐】为什么<b class='flag-5'>发送</b>CANFD加速报文要开启<b class='flag-5'>发送</b>延迟补偿(TDC)?