michael-correia/zurf

GitHub: michael-correia/zurf

zurf 是一个基于 Rust 的 Z-Wave 帧解析器,通过 UART 与 Zniffer 固件射频模块通信,将原始 Z-Wave 帧数据解析为更通用的高层格式。

Stars: 1 | Forks: 0

# zurf

zurf logo

`zurf` 是一个 Z-Wave 帧解析器,利用 UART 与刷入了 Z-Wave Zniffer 固件的 Z-Wave 射频模块进行通信。它的目标是将数据解析为一种比原始 ABI 更通用的、更高层级的格式。Zurf 得名于它“驾驭” Z-Waves(Z-Wave 无线电波)。你也可以将其视作 Z-Wave Unwrapped RF(解包的 Z-Wave 射频)。 Zurf 是我用来学习 Rust 的一个项目。因此,你可能会发现一些业余的错误。我欢迎反馈,并希望借此机会不断改进。 ## 功能 目前,`zurf` 还非常基础。它既没有按 command class 对帧进行细分,也没有对安全层之外的 message 进行解封装。这些功能将在未来陆续实现。该项目的规划是创建两个独立的二进制程序:一个是极其轻量级的 daemon,可以在嵌入式设备(或 Linux 桌面)上运行;另一个是跨平台的 GUI,可以在任何操作系统上运行并接收来自该 daemon 的数据。解密功能应该可以正常工作。 ## 许可协议 `zurf` 采用双重许可,以使核心解析引擎能够作为库被重复使用,同时保持 CLI 执行工具的 copyleft 特性: - **库目标 (`src/lib.rs`, `src/frame.rs`, `src/mpdu.rs`, `src/types.rs`)**:采用 **GNU Lesser General Public License v3.0 or later** (`LGPL-3.0-or-later`) 授权。详情请参阅 [LICENSE-LGPL](LICENSE-LGPL)。 - **二进制目标 (`src/main.rs`, `src/transport.rs`)**:采用 **GNU General Public License v3.0 or later** (`GPL-3.0-or-later`) 授权。详情请参阅 [LICENSE-GPL](LICENSE-GPL)。 ## 快速开始 ### 前置条件 - 一台支持 `io_uring` 且具有现代内核的 Linux 系统。 - 一块 Z-Wave Zniffer 开发板。 ### 运行 要运行该 CLI 工具,请指定串口和目标射频区域: ``` cargo run -p zurf-cli -- --port /dev/ttyUSB0 --region uslr --home-id --unauthenticated-key --mesh-authenticated-key --mesh-access-control-key --lr-authenticated-key --lr-access-control-key ```
标签:Rust, UART, Z-Wave, 可视化界面, 无线通信, 物联网, 网络流量审计, 通知系统