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://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, 屏幕投射, 嵌入式开发, 无线传输, 硬件工具, 逆向工具