Zeloksa/WiFi-Remote-Display-ADV

GitHub: Zeloksa/WiFi-Remote-Display-ADV

一款面向 M5Stack Cardputer ADV 的超低延迟 Wi-Fi 投屏工具,通过 USB HID 注入 Python UDP 流媒体脚本实现 Windows 桌面到设备屏幕的实时镜像。

Stars: 12 | Forks: 0

![版本](https://img.shields.io/badge/Version-1.1_ADV-blue) ![硬件](https://img.shields.io/badge/Hardware-Cardputer-orange) ![平台](https://img.shields.io/badge/Platform-M5Stack-red) ![许可证](https://img.shields.io/badge/License-CC_BY--NC_4.0-red) [![Boosty](https://img.shields.io/badge/Support-Boosty-orange)](https://boosty.to/zeloksa) # 📡 WiFi Remote Display 高级版 (V1.1) **WiFi Remote Display ADV V1.1** 是一款专为 **M5Stack Cardputer ADV** 严格优化的超低延迟屏幕镜像 payload 工具。它通过 USB HID 将基于 Python 的 UDP 流媒体引擎无缝注入到目标 Windows PC 中,并通过本地 Wi-Fi 网络接收高速、自适应质量的桌面视频。 *(注意:远程 HID 控制功能,例如远程鼠标和键盘输入,已计划在未来的更新中推出!)* ## ⚡ V1.1 技术亮点 * **零安装 Payload 注入:** 将 Cardputer 作为 USB HID 键盘,自动打开 PowerShell,下载所需依赖项(`mss`、`opencv`),并将原始 Python 流媒体脚本直接写入目标 PC。 * **真正的自适应码率 (ABR):** 通过数学计算监控帧渲染时间和 UDP 丢包情况。如果检测到延迟,会在 PC 端动态降低 JPEG 压缩质量以保持 FPS,并在网络稳定时自动恢复画质。 * **无闪烁直接 UI:** 采用高度优化的屏幕绘制算法,绕过繁重的 RAM 缓冲区。菜单光标仅重写更改的像素,节省了 64KB 的 Heap 内存,并彻底消除了屏幕闪烁。 * **硬件防死锁:** 实施深度的射频模块电源循环(`WiFi.mode(WIFI_OFF)`),以绕过臭名昭著的 ESP32 硬件 bug,这些 bug 会导致在 Wi-Fi 扫描期间无限冻结。 * **异步后台扫描器:** 实时、非阻塞的 Wi-Fi 网络发现,配合动态响应的 UI。 * **NVS Wi-Fi 记忆:** 将您的网络凭证安全地存储在 ESP32 的非易失性存储 (NVS) 中。完全自主运行,无需 SD 卡。 ## ⚠️ 重要要求(必读) 在运行 payload 之前,目标 PC **必须**满足以下条件,否则注入将失败: 1. **必须安装 Python:** 目标 Windows PC (10/11) 必须安装 Python 3.x 并明确将其添加到系统 `PATH` 中。注入的脚本依赖 Python 引擎来捕获和压缩屏幕。 2. **相同的 Wi-Fi 网络:** Cardputer 和目标 PC **必须**连接到完全相同的本地 Wi-Fi 网络,UDP 数据包才能成功路由。 3. **英文键盘布局:** 在 Cardputer 上按下 `[ G ]` 之前,目标 PC 的键盘布局**必须**切换为英文。如果设置为其他语言,PowerShell 注入将输入乱码并失败。 ## 🛠 安装说明 ### 方法一:M5Burner(推荐) 1. 打开 **M5Burner**。 2. 搜索 `WiFi Remote Display ADV` 或 `Zeloksa`。 3. 选择 **V1.1** 版本。 4. 烧录到您的 M5Stack Cardputer。 ### 方法二:手动刷入 1. 从 GitHub 下载源代码。 2. 确保您的 Arduino IDE 中已安装 `M5Cardputer`、`Preferences` 和 `USBHIDKeyboard` 库。 3. 编译并刷入您的设备。 ## 🕹 控制 **网络设置期间:** * **[ W / S ]** 或 **[ ; / . ]**:滚动浏览扫描到的 Wi-Fi 网络。 * **[ ENTER ]**:选择网络 / 确认密码输入。 * **[ ESC / \` ]**:取消密码输入并返回实时网络列表。 **系统就绪菜单:** * **[ G ]**:开始引导和 Payload 注入。 * **[ DEL ]**:硬重置 Wi-Fi(擦除保存的 NVS 凭证并重启)。 **注入期间(引导):** * **[ ESC / \` ]** 或 **[ DEL ]**:立即中止 USB 注入并安全释放所有 PC 按键。 **流媒体传输期间:** * **[ = ] / [ - ]**:放大 / 缩小。 * **[ ; ] / [ . ]**:上移 / 下移摄像机。 * **[ , ] / [ / ]**:左移 / 右移摄像机。 * **[ 0 ] / [ 9 ]**:增大 / 减小 Cardputer 扬声器音量(蜂鸣提示)。 * **[ ESC / \` ]**:停止流媒体传输,终止 PC 脚本,并返回主菜单。 ## 📖 操作指南 ### 1. 网络设置 开机后,Cardputer 会启动**异步后台射频扫描**。网络列表会瞬间填充并实时更新。选择您的 Wi-Fi 网络并输入密码。如果您输入错误或选择了错误的网络,请按 `[ ESC ]` 安全取消并返回实时扫描器。连接成功后,凭证将被永久保存。如果您移动到新位置,请在主菜单中按 `[ DEL ]` 清除记忆。 ### 2. 引导 HUD 按 `[ G ]` 开始 5 步安全检查: * **第 1 步:** 警告您物理连接 USB。 * **第 2 步:** 确认 Python 已在 `PATH` 中。 * **第 3 步:** 验证操作系统兼容性。 * **第 4 步:** 强制您验证 PC 是否处于英文布局。 * **第 5 步:** 显示用于平移和缩放的热键。 ### 3. Payload 投放与流媒体传输 确认后,Cardputer 会锁定其界面,并快速在目标 PC 的 PowerShell 中输入 UDP 流媒体服务器脚本。进度条会跟踪注入过程。**注入会在执行前立即停止。** 您可以在 PC 显示器上查看代码,准备好后,按 PC 键盘上的 `ENTER` 启动流媒体传输。然后 Cardputer 将自动捕获 `0xAA` JPEG 数据包头,并开始渲染实时桌面。 ## 🆕 发布说明:V1.1 的新功能 * **异步 Wi-Fi 扫描器:** 网络扫描器现在在后台运行。网络瞬间出现并实时更新,不会冻结屏幕。 * **全新密码 UI:** 完全重新设计了密码输入界面,使其外观更简洁、更专业。 * **密码循环修复:** 修复了一个严重 bug,该 bug 曾导致连接失败(密码错误或不兼容的 5GHz 网络)会使用户陷入无限循环。 * **取消输入:** 您现在可以按 `[ ESC ]` 安全中止密码输入并返回网络列表,而不会丢失之前扫描到的网络。 * **防重影键盘:** 完全重写了输入引擎。快速输入时按键不再粘滞或重复输入。 ## ☕ 支持项目 支持为 Cardputer 生态系统开发高级诊断工具和 payload: * **[https://boosty.to/zeloksa](https://boosty.to/zeloksa)** *由工程师 Zeloksa 开发。专为 Cardputer ADV 严格优化。*
标签:M5Stack, OpenCanary, USB HID, 屏幕投射, 嵌入式开发, 无线传输, 硬件工具, 逆向工具