HackRF One:开源射频探索的万能钥匙
一、HackRF 简介
HackRF One 是一款低成本、高灵活性的 软件定义无线电(SDR)设备,支持从 10 MHz 到 6 GHz 的宽频段射频信号收发。它专为开发者、渗透测试者、无线电爱好者设计,可用于:
- 信号扫描与分析:捕获 Wi-Fi、蓝牙、蜂窝基站等信号
- 协议逆向:破解自定义射频协议(如 LoRa、RFID)
- 数据包注入:伪造 Wi-Fi 认证包、GPS 信号
- 频谱监测:检测非法信号干扰或未授权通信
核心特性:
- 硬件支持:内置 20 dBm 发射功率,支持 QPSK、FSK 等调制方式
- 软件生态:兼容 Gnu Radio、SdrSharp、HackRF Tools 等工具链
- 可扩展性:支持用户开发自定义硬件驱动和信号处理插件
二、安装指南
1. 系统要求
操作系统 | 版本要求 | 硬件要求 |
---|---|---|
Linux | Ubuntu 20.04+/Debian 11+ | USB 3.0 接口 |
Windows | 10/11 (64位) | USB 3.0 接口 |
macOS | 10.15+ | USB 3.0 接口 |
2. 安装步骤
Linux (Ubuntu/Debian)
# 安装依赖库
sudo apt update
sudo apt install libhackrf0 libhackrf-dev python3-hackrf
# 安装官方驱动
sudo hackrf-load-firmware
# 验证安装
hackrf_info
Windows
- 下载驱动安装包:HackRF One Windows Drivers
- 运行安装程序并完成驱动注册
- 安装 Python 绑定:
pip install hackrf
macOS
# 使用 Homebrew 安装
brew install hackrf
# 验证安装
hackrf_info
三、基本使用指南
1. 设备识别
# 查看连接的 HackRF 设备
hackrf_list_devices
2. 信号扫描
扫描 Wi-Fi 频段(2.4 GHz)
hackrf_sweep -f 2400000000 -s 2000000 -g 20 -d 0
解析扫描结果(需配合 Gnu Radio):
- 打开 Gnu Radio Companion
- 拖拽
HackRF Source
→Wi-Fi Decoder
→Spectrum Sink
- 运行并观察频谱图
3. 数据包捕获与分析
捕获 Wi-Fi 认证包(需 root 权限)
sudo tcpdump -i any port 5353 -w wlan_capture.pcap
使用 Wireshark 分析:
- 打开
wlan_capture.pcap
- 过滤条件:
wlan.type == 0
(管理帧) - 查看
Beacon
帧获取 SSID 和密码哈希
4. 基础调制实验
发送 FSK 调制信号(Python 示例)
from hackrf import HackRF
hrf = HackRF()
hrf.set_sample_rate(2000000) # 2 MS/s
hrf.set_center_freq(433975000) # 433.975 MHz
hrf.set_modulation("FSK")
hrf.set_frequency deviation(5000) # 频偏 5 kHz
# 生成测试信号(0 和 1 表示二进制数据)
data = [0] * 1000 + [1] * 1000
hrf.tx(data, 10) # 发送 10 秒信号
hrf.close()
四、高级使用技巧
1. GPS 信号欺骗
模拟 GPS 定位数据
# 使用 gps-sdr-sim 生成测试信号
gps-sdr-sim -f 1575420000 -s 2000000 -P 30 -e 0.0 -g 55 -o gps_test.wav
# 用 HackRF 播放信号
hackrf_tx -f 1575420000 -s 2000000 -i gps_test.wav
2. LoRa 解码
使用 lorawan
工具包解码
# 安装 lorawan 解码器
pip install lorawan
# 解码 LoRaWAN 数据包
lorawan-decode -f 868100000 -s 250000 -r lora_capture.raw
3. 自定义硬件控制
通过 Python 重映射 GPIO
from hackrf import HackRF
hrf = HackRF()
hrf.set_gpio_out(0, 1) # 设置 GPIO0 为高电平
hrf.sleep_ms(1000)
hrf.set_gpio_out(0, 0) # 设置 GPIO0 为低电平
hrf.close()
五、注意事项
-
合法使用:
- 避免干扰合法通信(如航空频段、医疗设备频段)
- 未经授权不得扫描政府或军事设施信号
-
硬件限制:
- 长时间连续发射可能导致设备过热
- 发射功率需符合当地法规(一般 ≤ 20 dBm)
-
驱动更新:
- 定期检查 HackRF GitHub 以获取最新固件
六、学习资源
- 官方文档:https://wiki.hackrf.com/
- 实战教程:https://www.youtube.com/watch?v=ZJYQKdZQvE8
- 社区论坛:https://www.reddit.com/r/hackrf/
结语
HackRF One 是射频探索的起点工具,无论是进行无线安全研究、物联网协议分析,还是业余无线电实验,都能提供强大的支持。建议从简单的信号扫描开始,逐步结合 Gnu Radio 和 Python 开发复杂应用。记住:好奇心需要与责任感并存,始终在合法框架内探索技术的边界。