>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
C

将廉价 ESP32 开发板改造成 Flipper Zero

Flipper Zero 仍然是最受极客、实验室和无线协议爱好者追捧的小工具之一。然而,并非所有人都愿意花超过 20,000 卢布购买它。尤其是如果你只是需要一个周末项目或压力测试路由器的设备。

开发者 Sor3nt 采用了不同的方法。他将整个 Flipper Zero 操作系统移植到了流行且廉价的 ESP32 微控制器上。该项目名为 Flipper-Zero-ESP32-Port,让你只需花费几千卢布的硬件就能获得熟悉的界面、服务和应用程序。

Board

先说说安全问题

项目社区最近发生了一起不愉快的事件。一个名为"L15Dev"或"Bitwire"的第三方固件在网上出现。这个自定义版本包含病毒和后门,会窃取保存的 Wi-Fi 密码和转储文件。

如果你决定尝试这个项目,只通过作者官方仓库或基于浏览器的 Web 烧录工具进行刷机。不要使用来自可疑 Telegram 频道的第三方二进制文件。

硬件需求

在"裸"控制器上运行系统是行不通的,因为该项目需要显示屏和控制组件。该固件最适合现成的开发板:

  • LilyGo T-Embed CC1101(基于 ESP32-S3)。这是目前最佳选择。它配备 320×170 显示屏、编码器、CC1101 射频模块、NFC 读卡器连接器(PN532)和 MicroSD 卡槽。
  • Waveshare ESP32-C6-LCD(1.9 英寸和 1.47 英寸版本)。基于 RISC-V 芯片的更经济选择,带触摸屏。
  • DIY 构建:使用 ESP32-S3 配合 ILI9XXX 显示屏和普通按钮。

Waveshare C6 板配 1.47 英寸屏幕有个重要限制。它板载只有 512 KB RAM,完全没有外部 PSRAM。系统根本没有足够的 RAM 来处理重型任务。它仍然可以扫描接入点,但 WPA 握手捕获会因错误 ESP_ERR_NO_MEM 而崩溃。购买前请注意这一点。

Interface

哪些功能被移植了

作者努力保留原始原生软件,为 ESP32 外设进行适配。

Wi-Fi 审计和攻击

在原版 Flipper 中,Wi-Fi 仅通过外部模块可用。这里,微控制器的射频通道被充分利用:

  • 网络扫描、信号强度测量和显示认证详情。
  • 捕获 WPA/WPA2/WPA3 握手并保存为 PCAP 文件。
  • 发送取消认证数据包(Deauther)。
  • 使用自定义字典文件发送虚假 SSID(Beacon Spam)。
  • Evil Portal 用于设置钓鱼接入点。该移植版本增加了 NAPT 桥接功能。受害者连接到虚假接入点,在登录页面输入密码,设备会将他们桥接到真实互联网以避免怀疑。

Mesh / Buddy 模式实现得很巧妙。如果你有几个没有外壳的廉价 ESP32 板,可以用文件夹 1 中的特殊固件进行刷机,并通过 ESP-NOW 协议将它们连接到主版。辅助模块作为自主扫描器工作:被动捕获空气中的握手,保存到自己的内存中,并在主版上线时传输数据。

射频和 NFC 工作

连接 CC1101 和 PN532 模块后,设备转变为经典信号情报工具:

  • Sub-1 GHz:在 433–868 MHz 频率范围内接收和发射,保存原始转储 2,频谱分析仪,以及字典暴力攻击生成器。不错的附加功能是轮胎压力传感器(TPMS)解码器。
  • NFC:读取、写入和模拟卡片,对 Mifare Classic 和 Ultralight 进行字典攻击,内置交通卡解析器。
  • 蓝牙:向 iOS、Android 和 Windows 发送服务数据包(BLE Spam),AirTag 模拟(FindMy),以及作为无线键盘或鼠标运行(HID)。
  • 红外端口:学习遥控器信号,内置电视、空调和其他家用电器的通用遥控器数据库。

此外,移植版本还包括 BadUSB(从闪存盘运行 Ducky 脚本)、文件管理器、JS 脚本引擎,甚至还有经典游戏 DOOM 的移植。

内部工作原理

将针对特定 STM32 微控制器编写的固件移植到 Xtensa 和 RISC-V 架构并非易事。开发者采用了尽可能保留原始 Furi OS 架构的方法:

  1. 操作系统:Furi OS 运行在 FreeRTOS 之上。作者保留了原始的线程、互斥锁、消息队列和事件总线系统。
  2. 硬件抽象层(HAL):STM32 输出调用被重写为 ESP-IDF 驱动。例如,显示屏渲染调用通过 3 工作,红外端口由 RMT 模块处理,蓝牙使用 Bluedroid 堆栈。
  3. 图形适配:原始 Flipper Zero 界面采用 128×64 单色屏幕设计。固件将图像渲染到内部帧缓冲区,然后放大两倍并转换为 RGB565 彩色格式输出到 TFT 矩阵。
  4. 巧妙的内存技巧:在 STM32 中,通过 4 分配内存时,堆默认被清零。在 ESP32 中,它包含垃圾数据。因此,许多 Flipper 应用程序崩溃并出现错误。该问题通过简单的重定义解决:移植版本中的 5 函数被硬链接到 6。

还有一个尚未解决的限制。该移植版本无法访问硬件加密模块(Flipper Enclave)。因此,无法解密加密的 Keeloq 数据库用于 Sub-1 GHz——无法进行欺骗。只有开放算法 7 起作用。

如何尝试

从源代码构建固件需要安装 ESP-IDF v5.4.1。对于 Windows,仓库提供了一个便捷的脚本 8 来处理所有环境设置和烧录流程。

但如果你不想编译代码,Web 烧录工具是最简单的选择:

  1. 在 Chrome 或 Edge 中打开在线烧录工具
  2. 通过 USB 连接开发板并按下 Flash 按钮。
  3. 从项目 releases 下载压缩包 9,解压到格式化为 FAT32 的 SD 卡,然后插入开发板。

总结

Sor3nt 交付了一个高质量的工程项目。这不仅仅是尝试在 ESP32 屏幕上绘制类似的图标——这是一个完整的操作系统移植,保留了应用程序架构。

这是 Flipper Zero 的完整替代品吗?如果你需要一个现成的、坚不可摧的"开箱即用"设备,装在漂亮的外壳里——可能不是。但如果你想实验射频频谱,以合理的价格构建便携式 Wi-Fi 测试仪,或者学习 Furi OS 的内部结构,LilyGo T-Embed 配合这个固件是一个绝佳选择。

相关项目