D~DIDI~DIDIDI!!!!

0%

SDR

概述

软件定义无线电(Software Defined Radio, SDR)是一种无线电广播通信技术,其核心理念是将传统硬件电路实现的无线通信功能通过软件来定义和实现。频带、空中接口协议和功能均可通过软件下载和更新来升级,无需更换硬件设备。这种灵活性使 SDR 成为无线通信安全研究、信号分析和协议逆向工程的重要工具。

SDR 系统分类

不同的 SDR 系统架构在性能、开发难度和成本之间各有取舍:

分类 核心处理器 实时性 开发难度 开发成本 适用场景
基于 FPGA 的 SDR FPGA 极强 高带宽、高吞吐率的通信系统
基于 DSP 的 SDR DSP 较强 信号处理密集型应用
基于 GPP 的 SDR 通用处理器(PC) 一般 安全研究、协议分析、教学

GPP(General Purpose Processor) 即通用处理器,可以简单理解为我们日常使用的电脑。基于 GPP 的 SDR 系统能够高效开发各种通信模块和通信系统,因为可以方便地基于各种编程语言和链接库来实现编码、调制等通信功能。其开发门槛和成本较低,开发周期短,便于调试,是目前最为通用的 SDR 系统实现形式。

基于 GPP 的 SDR 系统通常包含两部分:

  • GPP(主机):运行信号处理软件(如 GNU Radio),负责基带信号处理
  • 外设(SDR 硬件):负责射频信号的收发和模数/数模转换

常见 SDR 设备对比

设备 频率范围 带宽 采样率 接口 全双工 价格 适用场景
RTL-SDR 24MHz-1.7GHz ~2.4MHz 2.4MSPS USB 2.0 否(仅接收) ~$20 入门级监听、ADS-B
HackRF One 1MHz-6GHz 20MHz 20MSPS USB 2.0 否(半双工) ~$300 安全研究、信号分析
BladeRF 300MHz-3.8GHz 28MHz 40MSPS USB 3.0 ~$400 全双工通信研究
USRP B210 70MHz-6GHz 56MHz 61.44MSPS USB 3.0 ~$1,100 专业通信研发
LimeSDR 100kHz-3.8GHz 61.44MHz 61.44MSPS USB 3.0 ~$300 开源通信平台

HackRF One 硬件架构

HackRF One 是最常用的安全研究 SDR 设备之一,由 Great Scott Gadgets 开发。其主要芯片组成:

芯片型号 功能 规格
LPC4320/4330 主控处理器 ARM Cortex-M4,主频 204MHz
XC2C64A CPLD Xilinx CoolRunner-II 系列,1500 门
MAX2837 射频收发器 2.3GHz ~ 2.7GHz 无线宽带
RFFC5072 混频器 提供 80MHz ~ 4200MHz 本振
MAX5864 ADC/DAC 8-bit,22MHz 采样率
Si5351C 时钟生成器 I2C 可编程,800MHz 分频提供 40/50MHz 采样时钟
MGA-81563 低噪声放大器 0.1 ~ 6GHz,3V,14dBm
SKY13317 射频开关(SP3T) 20MHz ~ 6.0GHz,单刀三掷
SKY13350 射频开关(SPDT) 0.01 ~ 6.0GHz,单刀双掷

软件环境搭建

1. GNU Radio 安装

GNU Radio 是最主要的 SDR 信号处理软件框架,提供了丰富的信号处理模块。

1
2
3
4
# 安装 GNU Radio 及相关工具
sudo apt install gnuradio # GNU Radio 核心
sudo apt install gqrx-sdr # GQRX 频谱分析器(GUI 工具)
sudo apt install gr-osmosdr # OsmoSDR 源模块(支持多种 SDR 硬件)

2. 通用依赖安装

在安装各 SDR 设备驱动之前,需要先安装通用的编译依赖:

1
2
3
4
5
sudo apt-get install git build-essential cmake \
libusb-1.0-0-dev liblog4cpp5-dev \
libboost-dev libboost-system-dev \
libboost-thread-dev libboost-program-options-dev \
swig

3. HackRF 驱动安装

1
2
3
4
5
# 通过包管理器安装
sudo apt-get install hackrf libhackrf-dev libhackrf0

# 验证设备连接
hackrf_info

安装完成后,可以使用以下工具:

命令 功能
hackrf_info 查看 HackRF 设备信息
hackrf_transfer 录制/发送 IQ 数据
hackrf_sweep 频谱扫描
hackrf_spiflash 固件刷写

4. BladeRF 驱动安装

1
2
3
4
5
6
# 安装 BladeRF 驱动和工具
sudo apt-get install bladerf libbladerf-dev libudev-dev libsystemd-dev flex

# 安装固件(注意根据实际设备型号选择)
sudo apt-get install bladerf-firmware-fx3 # FX3 固件
sudo apt-get install bladerf-fpga-hostedx115 # FPGA 镜像(x115 型号)

⚠️ 注意:安装固件和 FPGA 镜像时,需要根据实际的 BladeRF 设备型号选择对应的包。

5. USRP B210 驱动安装

Ettus USRP 使用 UHD(USRP Hardware Driver)作为驱动程序。

1
2
3
4
5
6
7
8
9
# 方式一:通过包管理器安装(推荐)
sudo apt install uhd-host

# 下载 FPGA 镜像
sudo uhd_images_downloader

# 验证设备连接
uhd_find_devices
uhd_usrp_probe

也可以从 Ettus 官网下载最新 Release 包进行编译安装:

  • 官方下载页面:https://www.ettus.com/download
  • 提供 Linux 和 Windows(VS 环境)的源码
  • 同时提供设备固件刷写所需的镜像文件

常用工具链

工具 说明 安装方式
GNU Radio SDR 信号处理框架 sudo apt install gnuradio
GQRX GUI 频谱分析器 sudo apt install gqrx-sdr
gr-osmosdr 通用 SDR 源模块 sudo apt install gr-osmosdr
kalibrate GSM 频率校准 源码编译
gr-gsm GSM 信号解码 源码编译
Wireshark 协议分析 sudo apt install wireshark
inspectrum IQ 数据可视化 sudo apt install inspectrum
URH 通用无线电黑客工具 pip install urh

安全提示

⚠️ 重要警告: SDR 技术涉及无线电频谱的接收和发射,使用前请务必注意:

  • 未经授权在公共频段发射信号是违法行为
  • 仅在屏蔽环境或已获授权的场景下进行发射实验
  • 遵守所在地区的无线电管理法规
  • 监听他人通信可能构成违法行为
  • SDR 技术仅可用于合法的安全研究和教学目的

相关文章

本文是 SDR 系列的基础篇。SDR 作为底层硬件平台,支撑了 GSM 嗅探、GPS 欺骗、LTE 信号分析等多种安全研究场景。了解 SDR 的基本概念和设备选型是进行无线通信安全研究的前提。相关内容可参考 GSM、GSM 嗅探、GPS 欺骗、LTE、移动网络等文章。