tammakiiroha/rc-car-2_4ghz-iq-dataset

GitHub: tammakiiroha/rc-car-2_4ghz-iq-dataset

提供用于逆向分析 2.4 GHz 遥控玩具车无线协议的原始 IQ 数据集、URH 配置文件及验证脚本,支持论文中帧结构识别实验的完整复现。

Stars: 0 | Forks: 0

# 2.4 GHz 遥控玩具车逆向工程 — 原始 IQ 数据集 论文附带数据: [![License: CC BY 4.0](https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/) [英文版本在下方 ↓](#english-version) ## 概述 本仓库包含论文 §4.1(帧结构识别)中使用的 **HackRF 原始 IQ 录音**、**URH 解调设置** 以及 **验证脚本**。 ## 目录结构 ``` experiment_data/ ├── README.md 本ファイル(概要) ├── EXPERIMENT_DATA_INDEX.md 詳細索引(パラメータ・SHA-256 一覧) ├── COVERAGE.md 本データセットが論文のどの主張を支持するか ├── LICENSE CC BY 4.0 ├── CITATION.cff 引用メタデータ │ ├── iq_captures_1s/ 主録音(HackRF, 約 1 秒/操作) │ ├── README.md │ ├── checksums.sha256 │ ├── HackRF-Left forward-...complex16s 左輪前進 (LF) │ ├── HackRF-Left backward-...complex16s 左輪後退 (LB) │ ├── HackRF-Right forward-...complex16s 右輪前進 (RF) │ ├── HackRF-Right backward-...complex16s 右輪後退 (RB) │ ├── HackRF-Light-...complex16s ライト (light) │ └── New1 / New2 ...complex16s 単一フレーム規模の切片 │ ├── iq_bursts_extracted/ フレーム検証用 単一バースト │ ├── README.md │ ├── checksums.sha256 │ └── {left,right} {forward,back}.complex16s, light.complex16s │ ├── urh_project/ URH v2.10.0 プロジェクトファイル │ ├── README.md │ └── URHProject.xml │ └── scripts/ 検証スクリプト ├── README.md └── verify_signal_captures.py ``` ## 录音条件(所有文件通用) | 项目 | 值 | |---|---:| | 中心频率 fc | **2.475 GHz** | | 采样率 fs | **2 Msps** | | 接收带宽 BW | **2 MHz** | | 调制方式 | FSK (1 bit/symbol, 2 sps) | | 数据格式 | interleaved signed 8-bit IQ(扩展名 `.complex16s`,实体为 8-bit)| | SDR | HackRF One (HW r10), Firmware 2024.02.1 | | 软件 | URH v2.10.0 / Ubuntu 17.10 (kernel 4.13.0) | | RX / TX Gain | 20 dB / 20 dB | | TX–RX 距离 | 约 30 cm | ## 帧模型(可在本仓库中验证) ``` 1 フレーム = 24 bytes (192 bits) = [固定ヘッダ 19 bytes] || [操作依存 tail 5 bytes] 固定ヘッダ(全コマンド共通): 20 aa b8 24 ca eb da 25 da 70 20 cf 6e 76 b6 7c de 28 c7 本リポジトリで提供する 5 つの tail: light 06 36 b6 47 00 左輪前進 (LF) 22 52 d8 57 80 左輪後退 (LB) 24 54 9a 27 00 右輪前進 (RF) 27 57 ff 17 00 右輪後退 (RB) 26 d6 4d 8f 00 ``` ## 快速入门 ### 环境要求 - Python ≥ 3.9 - NumPy ### 完整性检查 ``` cd iq_captures_1s && shasum -a 256 -c checksums.sha256 cd ../iq_bursts_extracted && shasum -a 256 -c checksums.sha256 ``` ### 运行验证脚本 ``` python3 scripts/verify_signal_captures.py ``` 脚本将对 `iq_bursts_extracted/` 中的每个突发进行解调、对齐、24 字节帧截取及 5 字节尾部提取,并输出与预期值的比较表。 ### IQ 文件读取(参考代码) ``` import numpy as np raw = np.fromfile("iq_captures_1s/HackRF-Left forward-2_475GHz-2MSps-2MHz.complex16s", dtype=np.int8) iq = raw.reshape(-1, 2).astype(np.float32) samples = iq[:, 0] + 1j * iq[:, 1] # complex baseband, fs = 2 Msps, fc = 2.475 GHz ``` ## 仓库体积与 Git LFS 说明 5 个主要录音文件各 13–17 MB(总计约 78 MB)。使用标准的 `git` 也没有问题,但如果未来要添加更多录音,**建议使用 Git LFS**: ``` git lfs install git lfs track "*.complex16s" git add .gitattributes ``` ## 许可证 [Creative Commons Attribution 4.0 International (CC BY 4.0)](LICENSE) ## 引用 参见 [`CITATION.cff`](CITATION.cff)。使用本数据集时,请引用附带论文。 ## 英文版本 本仓库包含用于识别论文 §4.1 中所述 24 字节帧结构的 **原始 IQ 录音**、**URH 解调设置** 以及 **验证脚本**: ### 文件夹结构 ``` experiment_data/ ├── README.md this file ├── EXPERIMENT_DATA_INDEX.md detailed parameter / file index ├── COVERAGE.md which paper claims this release does (and does not) support ├── LICENSE CC BY 4.0 ├── CITATION.cff citation metadata │ ├── iq_captures_1s/ primary HackRF recordings (~1 s per operation) ├── iq_bursts_extracted/ single-frame bursts for verification ├── urh_project/ URH v2.10.0 project file └── scripts/ verification script ``` ### 录音参数(统一) | | 值 | |---|---:| | 中心频率 `fc` | **2.475 GHz** | | 采样率 `fs` | **2 Msps** | | 接收带宽 `BW` | **2 MHz** | | 调制方式 | FSK (1 bit/sym, 2 sps) | | 文件格式 | interleaved signed 8-bit IQ (`.complex16s`) | | SDR | HackRF One (HW r10), Firmware 2024.02.1 | | 软件 | URH v2.10.0 on Ubuntu 17.10 (kernel 4.13.0) | | RX / TX 增益 | 20 dB / 20 dB | | TX–RX 距离 | ~30 cm | ### 本版本验证的帧模型 ``` 1 frame = 24 bytes (192 bits) = [19-byte fixed header] || [5-byte operation-dependent tail] Fixed header (common to all commands): 20 aa b8 24 ca eb da 25 da 70 20 cf 6e 76 b6 7c de 28 c7 Tails covered by this release: light 06 36 b6 47 00 Left forward (LF) 22 52 d8 57 80 Left backward (LB) 24 54 9a 27 00 Right forward (RF) 27 57 ff 17 00 Right backward (RB) 26 d6 4d 8f 00 ``` ### 快速入门 ``` # integrity check cd iq_captures_1s && shasum -a 256 -c checksums.sha256 cd ../iq_bursts_extracted && shasum -a 256 -c checksums.sha256 # 运行 verification script python3 scripts/verify_signal_captures.py ``` ### 在您自己的代码中读取 IQ 文件 ``` import numpy as np raw = np.fromfile("iq_captures_1s/HackRF-Left forward-2_475GHz-2MSps-2MHz.complex16s", dtype=np.int8) iq = raw.reshape(-1, 2).astype(np.float32) samples = iq[:, 0] + 1j * iq[:, 1] # complex baseband at fs = 2 Msps, fc = 2.475 GHz ``` ### 许可证 在 [Creative Commons Attribution 4.0 International (CC BY 4.0)](LICENSE) 下发布。 ### 引用 参见 [`CITATION.cff`](CITATION.cff)。如果您使用了本数据集,请引用附带的论文。
标签:2.4GHz, HackRF, IQ数据, SDR, URH, 云资产清单, 信号分析, 信号解调, 射频信号处理, 开源数据, 插件系统, 无线电复调, 无线电安全, 无线通信, 物联网安全, 硬件黑客, 软件定义无线电, 逆向工具, 逆向工程, 通信协议分析, 遥控车, 频谱分析