GlomarGadaffi/lora-rf-toolkit

GitHub: GlomarGadaffi/lora-rf-toolkit

基于 ESP32 + SX1262 和 Python 的 LoRa 射频逆向工程工具包,支持频谱扫描、I/Q 捕获分析、调制参数估计和未加密帧解码。

Stars: 0 | Forks: 0

# lora-rf-toolkit LoRa RF 逆向工程工具包。扫频、捕获 I/Q 突发信号、分析带宽和扩频因子、解码 chirp 模式,以及从 LoRa 流量中恢复调制参数。 ## 工具 **aspen_sweep.ino** — 频谱扫描器 (ESP32 + SX1262) - 频率扫描 (start, stop, step) - 每个频率的停留时间 - RSSI 日志记录 - 当检测到的载波高于阈值时触发 GPIO - 输出 JSON 扫描报告 **aspen_sniff.py** — I/Q 捕获分析器 - 加载原始 complex64 I/Q 文件 (来自 SDR 或转储的硬件) - STFT 频谱图分析 - 带宽检测 (自动匹配标准 LoRa 125/250/500 kHz) - 通过 chirp 率分析估算扩频因子 - 前导码检测和帧对齐提示 **aspen_analyze.py** — chirp 参数提取器 - 解码 LoRa 前导码 (sync symbols) - 估算频率偏移和时钟偏移 - 报告调制参数 (SF、BW、CR、SyncWord) - 每项估算的置信度评分 **aspen_trip.py** — 实时解码器 (如果 LoRa 帧未加密) - 读取捕获的帧 - 解码 MAC header (收/发,ack,类型) - 可选:如果 CRC 校验通过则转储 payload ## 工作流程 ``` # 1. 扫描 LoRa 存在情况 # (aspen_sweep.ino 运行于 ESP32) # 2. 在检测到的频率上捕获原始 I/Q # (使用 rtl-sdr、hackrf 或硬件 SPI dump) sox -t raw -r 2.4M -b 8 -e unsigned-integer -c 1 capture.raw -t wav capture.wav # 3. 分析 python3 aspen_sniff.py capture.raw --sample-rate 2400000 # → 输出:BW 估计、SF 估计 # 4. 解码参数 python3 aspen_analyze.py capture.raw --sample-rate 2400000 --estimated-bw 125000 # 5. 提取 payload(如果未加密) python3 aspen_trip.py payload.bin --sf 7 --bw 125000 ``` ## 限制 - SF 估算基于启发式算法;LoRa 采用恒包络调制,因此 SNR 必须较高 - 支持扩频因子 7-12;SF6 及以下非常罕见 - 加密的 payload 将解码为原始字节;不进行 LoRaWAN MIC/FPort 解析 - 进行 chirp 分析需要清晰、无重叠的传输信号
标签:ESP32, LoRa, SDR, 云资产清单, 密码管理, 射频, 无线通信, 物联网, 逆向工具, 逆向工程, 防御绕过