尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Flipper Zero ESP8266 Deauther v2 应用实战:基于 NodeMCU 的 WiFi 侦察与去认证模块搭建指南

Flipper Zero ESP8266 Deauther v2 应用实战:基于 NodeMCU 的 WiFi 侦察与去认证模块搭建指南 Flipper Zero ESP8266 Deauther v2 应用实战基于 NodeMCU 的 WiFi 侦察与去认证模块搭建指南【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper导读本文围绕仓库 Applications/Official/source-OLDER/xMasterX/wifi_deauther 中的 ESP8266 Deauther v2 应用展开完整讲解如何用 NodeMCU 开发板与 Flipper Zero 组合构建一套基于 ESP8266 Deauther v2 原始固件的 WiFi 侦察与去认证测试模块。读完本文你将掌握硬件接线方法、Deauther v2 固件烧录思路、应用在 RogueMaster 固件中的编译集成流程以及 Flipper Zero 上全部菜单命令与 Web 界面关闭等关键配置并理解底层 UART 串口通信与场景管理的源码实现。一、项目背景从 WiFi Marauder 到 ESP8266 Deauther v2该应用appid 为ESP8266_Wifi_Deauther_v2界面名[ESP8266] Deauther v2的核心定位非常明确让 Flipper Zero 通过串口驱动一块搭载了 ESP8266 Deauther v2 固件的 NodeMCU 开发板从而把 Deauther 的完整能力搬到 Flipper 的小屏幕上操作。它的交互框架脱胎于 0xchocolate 的WiFi Marauder Appflipperzero-firmware-with-wifi-marauder-companion而底层固件侧则采用SpacehuhnTech 的 esp8266_deauther v2esp8266_deauther/tree/v2/esp8266_deauther。这个设计有一个关键收益由于 Flipper 端应用直接面向 Deauther v2 的原始固件你不需要为 NodeMCU 单独编译任何定制固件只需烧录 Deauther v2 官方仓库的最新二进制即可烧录与升级成本都降到最低。README 同时致谢了 SequoiaSan 的FlipperZero-Wifi-ESP8266-Deauther-Module该模块已内置于 RogueMaster 固件源码中启用并编译即可用并指出其拥有漂亮的菜单界面但作者在 NodeMCU 上编译时未能让菜单完整跑通——这也是本应用采用 v2 官方固件路线的原因之一。从源码看应用被声明为FlipperAppType.EXTERNAL类型见 application.fam属于独立 FAP 应用fap_category为GPIO_Extra需要gui模块栈空间 1KB应用图标为 wifi_10px.png。也就是说它既可以作为外部 FAP 单独编译分发也可按 README 所述集成进 RogueMaster 完整固件。⚠️ 用途声明去认证Deauth与 WiFi 干扰属于无线电攻击行为本文内容仅用于安全研究、固件与硬件学习、以及在自己拥有或已获授权的网络环境中测试请遵守所在地法律法规。二、硬件准备与接线NodeMCU 与 Flipper Zero 的连接作者使用的是NodeMCU 开发板基于 ESP8266接线非常简单。接线参考 SequoiaSan 的 FlipperZero-WiFi-Scanner 模块接线指南关键点是串口 RX/TX 交叉连接NodeMCUFlipper ZeroGGNDVIN5VRXU_TXTXU_RX实际接线说明VIN → 5VNodeMCU 通过 Flipper Zero 的 5V 引脚供电。Flipper 侧应用在启动时会调用furi_hal_power_enable_otg()见 wifi_deauther_app.c开启OTG 5V 输出退出应用时再调用furi_hal_power_disable_otg()关闭因此供电由 Flipper 应用生命周期自动管理RX ↔ U_TX、TX ↔ U_RX必须交叉连接这是 UART 通信的基本规则通信参数在 wifi_deauther_uart.c 中硬编码为USART1、波特率115200。需要留意的是应用初始化 UART 时会先执行furi_hal_console_disable()再接管串口wifi_deauther_uart_init退出时furi_hal_console_enable()恢复控制台因此该 UART 与 Flipper 的调试控制台共用引脚二者不会同时占用。三、ESP8266 侧固件直接烧录 Deauther v2 官方二进制由于 Flipper 端应用发送的是 Deauther v2 原生串口命令NodeMCU 上不需要刷入任何为 Flipper 特制的固件。流程是从 SpacehuhnTech 的esp8266_deautherv2 分支获取最新固件二进制使用 esptool / NodeMCU PyFlasher 等工具将固件烧录到 NodeMCUv2 分支固件编译产物可直接用烧录后 NodeMCU 默认会开启 Deauther 自带的 WiFi 接入点与 Web 管理界面可用手机/电脑连接后通过 Web UI 操作。烧录完成后将板子接上 Flipper Zero 并启动 Deauther v2 应用二者即通过 UART 建立命令通道。应用侧发送命令的方式在 wifi_deauther_scene_console_output.c 中可以看到选中菜单项后应用将命令字符串连同\n换行符通过wifi_deauther_uart_tx()写入串口与 Deauther v2 CLI 的交互方式完全一致。四、在 RogueMaster 固件中编译集成README 给出了在 RogueMaster 固件中集成该应用的完整步骤# 1. 克隆 RogueMaster 固件含子模块 git clone --recursive https://github.com/RogueMaster/flipperzero-firmware-wPlugins.git cd flipperzero-firmware-wPlugins/ # 2. 将 wifi_deauther 整个文件夹复制到 applications 目录 # 3. 在 meta/application.fam 中添加 APPS_wifi_deauther # 启用该应用条目使其进入固件应用清单 # 4. 编译资源与固件更新包 ./fbt resources icons ./fbt updater_package对应到当前仓库wifi_deauther应用自身的构建描述位于 application.fam字段含义如下| 字段 | 值 | 说明 | | ---- | -- | ---- | |appid|ESP8266_Wifi_Deauther_v2| 应用唯一标识 | |name|[ESP8266] Deauther v2| Flipper 菜单中显示的名称 | |apptype|FlipperAppType.EXTERNAL| 外部 FAP 应用可独立编译分发 | |entry_point|wifi_deauther_app| 入口函数见 wifi_deauther_app.c | |cdefines|APP_WIFI_deauther| 编译宏定义 | |requires|gui| 依赖的 Flipper 模块 | |stack_size|1 * 1024| 应用线程栈大小 | |order|30| 应用排序 | |fap_icon|wifi_10px.png| 应用图标 | |fap_category|GPIO_Extra| FAP 应用分类目录 |编译产物为独立.fap文件你也可以通过 Flipper 的文件管理器将编译好的 FAP 复制到 SD 卡apps/GPIO_Extra/目录下加载而不必每次都重新整编固件。五、Flipper Zero 端完整菜单命令详解应用启动后进入主菜单共 11 个菜单项NUM_MENU_ITEMS定义见 wifi_deauther_app_i.h菜单结构定义见 wifi_deauther_scene_start.c。选择菜单项后应用会把对应的实际命令追加\n通过 UART 发给 NodeMCU输出实时回显到控制台文本框中。菜单项可选项实际发送命令说明View Log fromstart / end—本地操作控制台输出聚焦在开头或结尾Help—help查看 Deauther 帮助信息Stop—stop all停止全部攻击/任务ScanAll / SSIDs / Stationsscan/scan aps/scan stations扫描所有 / 仅 AP / 仅站点退出控制台时会自动发送stopscan停止扫描SelectAll / SSIDs / Stationsselect all/select aps/select stations选择攻击目标可配合键盘输入额外参数DeselectAll / SSIDs / Stationsdeselect all/deselect aps/deselect stations取消选择目标ShowSSIDs / Stations / All / Selectedshow ap/show station/show all/show selected显示扫描到的 AP、站点、全部或已选目标Attackdeauth / deauthall / beacon / probeattack deauth/attack deauthall/attack beacon/attack probe发起攻击进入该菜单时控制台会提示“Press BACK to send stopscan”按返回键即可停止SettingsGet / Remove AP / Set SSID / Set Pass / Saveget settings/set webinterface false/set ssid: pwned/set password: deauther/save settings查看与修改 Deauther 配置详见下节Sysinfo—sysinfo显示系统信息Reboot—reboot重启 NodeMCU除上述菜单外wifi_deauther_app_i.h 的注释还列出了 Deauther 固件侧支持的完整命令族Scan、AttackBeacon/Deauth/Probe/Rickroll、SniffBeacon/Deauth/ESP/PMKID/Pwnagotchi、Channel、Update、Reboot。其中 Sniff 与 Channel 等命令未直接映射到菜单若需使用可通过任意支持键盘输入的命令入口自定义发送应用内置TextInput视图输入缓冲区 512 字节见 wifi_deauther_app_i.h。菜单→命令的分派逻辑在 wifi_deauther_scene_start.c按下确认键后根据当前选中项索引取出actual_commands数组中的对应命令存入selected_tx_string若该菜单项被标记为INPUT_ARGS如 Select/Deselect则先进入键盘输入场景补充参数否则直接进入控制台输出场景。命令执行结束后on_exit回调会自动发送stopscan\n清理扫描任务wifi_deauther_scene_console_output.c。六、关闭 Web 界面只保留 Flipper 串口控制NodeMCU 上 Deauther v2 默认开启自带的 WiFi 接入点SSID 默认为pwned密码默认为deauther与 Web 管理界面。如果你只想用 Flipper Zero 通过串口发送命令控制 Deauther、不希望额外暴露一个 WiFi 热点README 给出了完整的关闭流程在 Flipper 的Settings菜单中依次操作选择Remove AP实际发送set webinterface false→ 选择Save发送save settings→ 选择Reboot发送reboot重启完成后 Deauther 自带的pwned接入点将不再出现。对应到菜单源码Settings 项共 5 个子选项wifi_deauther_scene_start.c选项实际命令用途Getget settings查看当前配置Remove APset webinterface false关闭 Deauther 自带的 AP 与 Web 管理界面Set SSIDset ssid: pwned自定义 AP 的 SSIDSet Passset password: deauther自定义 AP 的密码Savesave settings将配置写入 ESP8266 的 Flash 持久保存需要提醒关闭 Web 界面后若日后需要恢复默认 AP 设置需要重新打开 Web 界面set webinterface true或对 NodeMCU 进行擦除重刷deauth 板自带reset命令可恢复默认配置。这条链路同时说明了一个设计细节——所有配置修改都落到 Deauther v2 固件本身的 CLI 命令体系上Flipper 端应用只是把菜单翻译成串口命令固件侧的配置持久化、WiFi 栈与攻击逻辑均未改动这正是直接使用官方固件方案的最大优势。七、源码级原理UART 通信与场景管理要理解这个应用的可靠性关键在两条代码路径7.1 双工 UART 通信wifi_deauther_uart.c 实现了完整的数据通路发送方向wifi_deauther_uart_tx()直接调用furi_hal_uart_tx(USART1, data, len)命令字符串 \n一次性写入接收方向注册中断回调wifi_deauther_uart_on_irq_cbUART 每收到一个字节即放入 FreeRTOSStreamBuffer并置位WorkerEvtRxDone事件标志唤醒接收线程uart_worker线程循环等待事件、从流缓冲区取出数据再通过handle_rx_data_cb回调交给 UI 层输出渲染控制台场景的回调将收到的数据追加进 4KB 的FuriString文本框存储WIFI_deauther_TEXT_BOX_STORE_SIZE 4096若内容超过阈值则截掉前半段随后发送WifideautherEventRefreshConsoleOutput自定义事件刷新文本框显示wifi_deauther_scene_console_output.c。这套ISR 收字节 → 流缓冲区 → 接收线程 → UI 回调的设计避免了在中断上下文做字符串处理长时间运行如持续回显扫描结果也不会阻塞主界面。7.2 场景驱动的主界面wifi_deauther_app.c 展示了标准的 Flipper 应用骨架应用启动即开启 OTG 供电 → 分配ViewDispatcher与SceneManager→ 注册三个视图VariableItemList主菜单、TextBox控制台、TextInput键盘输入→ 初始化 UART → 进入事件循环。三个场景Start / ConsoleOutput / TextInput的 enter/event/exit 回调通过宏展开注册在 wifi_deauther_scene.c 与 wifi_deauther_scene_config.h 中属于 Flipper 场景管理框架的标准用法。八、使用注意事项供电NodeMCU 由 Flipper 的 5V OTG 供电电量消耗较快长时间使用建议外接电源或保证 Flipper 电量充足天线与距离NodeMCU 板载 PCB 天线增益有限测试距离与效果取决于实际环境合法性扫描与去认证功能请仅在自有设备、实验室或获得明确授权的环境中使用非法使用可能违反当地无线电管理法规版本匹配本应用面向esp8266_deauther v2固件设计若 NodeMCU 刷入的是 v3 或其他版本固件命令集不兼容需按本仓库 README 指引改回 v2 分支二进制。总结wifi_deauther应用用最简洁的架构解决了Flipper Zero ESP8266 Deauther组合的核心问题Flipper 端只做命令翻译与结果展示攻击与无线能力全部由官方 v2 固件承载。从 NodeMCU 的四线接线到./fbt编译集成再到 11 个菜单项对应的完整命令表以及 Web 界面关闭流程本文已覆盖 README 的全部实操要点并深入到 UART 双工通信、场景管理与构建清单的源码细节。对照 wifi_deauther 源码目录 中的scenes/、wifi_deauther_uart.c与application.fam你可以进一步研究或改造这个应用例如新增 Sniff/Channel 命令映射、调整控制台缓冲区大小或修改菜单项结构。【免费下载链接】FlipperPlayground (and dump) of stuff I make or modify for the Flipper Zero项目地址: https://gitcode.com/GitHub_Trending/fl/Flipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表