Notebookcheck Logo

ESP32 采用基于 Rust 的开源 WiFi 协议栈

Espressif ESP32(图片来源:Espressif)
Espressif ESP32(图片来源:Espressif)
经过巧妙的逆向工程,工程师们解放了 EPS32 曾经的闭源 WiFi 协议栈。很快,ESP32 就能实现多种令人兴奋的工作模式。
Open Source

一种用于 ESP32 的实验性开源 WiFi 协议栈刚刚推出。这个用 async rust 编写的项目被称为 Ferris on Air 或 FoA,是一个概念验证型 802.11 协议栈,借助 Embassy(一个基于 rust 的嵌入式设备框架)为实现不同的接口铺平了道路。最终,该框架将为 ESP32 带来网状网络和 AirDrop 等功能。尽管这些功能可能令人兴奋,但它们并不总是可能实现的。

ESP32 在很大程度上是开源的。遗憾的是,WiFi 和蓝牙模块是闭源的,这很可能是因为 ESP32 的制造商 Espressif 受这些模块的硬件 NDA 约束。幸运的是,对于这个项目来说,Espressify 确认该项目可以合法地对这些模块进行逆向工程,并根据 Apache 许可发布研究结果。然而,逆向工程并非易事。

为了打开 WiFi 模块,团队使用了美国国家安全局开发的开源逆向工程工具 Ghidra,分析其代码结构、逻辑和函数名称(Esprssif 善意地将其留在代码中)。利用这些信息,研究小组深入了解了控制 WiFi 模块的每个硬件寄存器的功能。然后,团队结合使用物理和仿真 ESP32 硬件分析,成功逆向工程了 WiFi 模块。值得注意的是,研究小组必须建造一个 DIY 法拉第笼来隔离来自 ESP32 的 WiFi 信号。为此,团队使用了一个内衬导电织物的木制立方体、一根光纤电缆来连接 ESP32 的信号,并用汽车电池为整个装置供电。

Ferris on Air 目前仍处于早期阶段,但已迅速获得了广泛的关注和功能。有关该项目的整个逆向工程过程和更多详细信息,请参见下文。

Please share our article, every link counts!
Mail Logo
> Notebookcheck中文版(NBC中国) > 新闻 > 新闻档案 > 新闻档案 2024 12 > ESP32 采用基于 Rust 的开源 WiFi 协议栈
Stephen Pereyra, 2024-12-30 (Update: 2024-12-30)