关于 URH(Universal Radio Hacker) 的详细先容、安装指南、设置方法及利用阐明

[复制链接]
发表于 2025-10-10 03:24:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
URH:开源无线电协议分析工具

一、URH简介

URH 是一款开源的 无线电协议分析工具,专注于解码、分析和逆向工程无线通讯协议(如 Wi-Fi、蓝牙、RFID、LoRa、Zigbee 等)。它支持信号捕获、协议树构建、数据可视化及自界说脚本扩展,实用于安全研究、物联网物联网装备调试和通讯协议开辟。
焦点功能:

  • 多协议支持:内置 200+ 种常见协议解码器(如 IEEE 802.11、BLE、Modbus)。
  • 信号处置惩罚:频谱分析、时频图、IQ 图体现。
  • 协议逆向:自动辨认未知协议并天生剖析规则。
  • 脚本扩展:通过 Python 或 Lua 编写自界说解码逻辑。

二、硬件与软件要求

1. 硬件预备

组件阐明支持 RF 的硬件装备RTL-SDR、HackRF One、USRP 等电脑Windows/macOS/Linux(64位)2. 软件环境


  • 操纵体系:Linux (Debian/Ubuntu)、macOS、Windows
  • 依靠库:Python 3.8+、NumPy、SciPy、PyQt5
  • 保举工具:GNU Radio(信号处置惩罚)、Wireshark(辅助分析)

三、安装指南

1. Linux/macOS 安装
  1. # 使用pip安装
  2. sudo pip3 install urh
  3. # 验证安装
  4. urh --version
复制代码
2. Windows 安装


  • 下载预编译安装包:https://github.com/URH-project/URH/releases
  • 运行 URH_Setup.exe 完成安装

四、硬件驱动设置

1. RTL-SDR 设置(Linux)
  1. # 安装驱动
  2. sudo apt-get install rtl-sdr
  3. # 检查设备是否被识别
  4. lsusb | grep RTL2832U
复制代码
2. HackRF One 设置(Windows/macOS)


  • 下载官方驱动:https://hackrf.com/pages/download
  • 毗连装备后重启 URH

五、根本利用阐明

1. 信号捕获

示例:捕获 Wi-Fi 信道 6
  1. urh start --device=rtl_sdr --freq=2437000000  # 2.4 GHz 频段中心频率
复制代码
捕获参数阐明:
参数阐明--device无线电装备名称(如 rtl_sdr)--freq目标频率(单位:Hz)--gain增益值(0~31,默认自动)
2. 协议解码

内置协议解码示例(BLE):

  • 启动 URH 并打开捕获文件(.urh 或 .sdr)
  • 在左侧协议树中睁开 BLE 节点
  • 右侧面板体现解码后的数据(如 UUID、Characteristic Value)
自界说解码规则:

  • 创建 .xml 解码文件(如 custom_ble.xml):
  1. <protocol name="CustomBLE">
  2.     <field name="ManufacturerID" type="uint16" endianness="big"/>
  3.     <field name="Data" type="bytes" length="4"/>
  4. </protocol>
复制代码

  • 加载规则:
  1. urh decode --input captured.sdr --decoder custom_ble.xml
复制代码

3. 数据可视化

时频图体现:

  • 在信号捕获界面点击 View → Spectrum
  • 调解 FFT 点数(发起 1024~4096)
IQ 图体现:
  1. urh plot --iq input.sdr
复制代码

六、高级设置

1. 协议树扩展

编写 Python 解码插件:
  1. from urh.protocol import Protocol, Field
  2. class MyProtocol(Protocol):
  3.     def __init__(self):
  4.         super().__init__()
  5.         self.fields = [
  6.             Field("Magic", "uint32", 4),
  7.             Field("Payload", "bytes", variable_length=True),
  8.         ]
  9.         
  10.     def decode(self, data):
  11.         self.Magic = int.from_bytes(data[:4], byteorder='big')
  12.         self.Payload = data[4:]
  13.         return self
复制代码
注册插件:
将脚本生存为 my_protocol.py,并在 URH 设置中启用。

2. 脚本自动化

示例:自动重放 BLE 广播包
  1. from urh import URH
  2. urh = URH()
  3. urh.open_file("ble_broadcasts.urh")
  4. for packet in urh.packets:
  5.     if packet.protocol == "BLE":
  6.         urh.send_packet(packet.raw_data)
复制代码

七、典范应用场景


  •         物联网物联网装备破解

    • 分析智能家居装备的 BLE 通讯协议
    • 破解穿着装备的运动传感器数据
           
  •         无线安全审计

    • 检测未加密的 LoRa 传感器数据泄漏
    • 分析恶意软件的 RF 信标信号
           
  •         协议开辟验证

    • 对比自研协议与尺度规范的兼容性
    • 天生测试用例(如 Zigbee 网络组网测试)
           

八、学习资源


  • 官方文档:https://urh.readthedocs.io
  • GitHub 堆栈:https://github.com/URH-project/URH
  • 社区论坛:https://forum.URH-project.com

结语
URH 是无线电协议分析范畴的强大工具,其机动性和开源特性使其成为研究职员和开辟者的理想选择。无论是逆向工程未知协议,还是优化现有通讯体系,URH 都能提供从信号层到应用层的全方位支持。发起连合 GNU Radio 举行信号处置惩罚实行,并加入社区项目贡献解码规则。
 
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表