远程软件
- 新增 agent-core:平台无关会话层(QUIC/TLS 握手、验证码认证、H.264 编码下行、 latest-wins 丢帧、输入分发),平台差异经 ScreenCapturer / InputInjector 两个 trait 注入;Windows agent 一并改接过来,避免两端各写一份握手/认证造成协议漂移 - 新增 linux-agent:X11 GetImage 采集 + 整帧变更检测;XTest 注入 + 扫描码→X11 keycode 映射(主键区 = scancode+8,E0 扩展键必须查表,含单元测试) - 协议零改动:复用 Set-1 扫描码与虚拟桌面归一化坐标,viewer 无需任何修改 - 修复:静止桌面下关键帧请求无人响应——解码端一旦出错将永远无法恢复。 现在保留最近一帧裸像素,收到 KeyFrameReq 时重编一个真关键帧 - 修复:错误验证码时 AuthFail 送不达——进程退出会带走 QUIC 缓冲区内尚未发出的 数据,客户端只能看到 connection lost;现等对端挂断再退出 - 新增端到端冒烟测试 tests/smoke.rs 与 scripts/linux-smoke.sh(自建 Xvfb,无需 图形桌面):覆盖采集→编码→QUIC 解帧、认证(含错误码拒绝)、Ping/Pong、 静止桌面关键帧恢复,以及输入注入实证(注入后从另一条 X11 连接读回指针坐标) - 该关键帧用例已做变异测试:退回修复会红,恢复后转绿,确认断言有效 - 手册:修正已失效的工具链路径,补充 cargo 镜像说明与 Linux 章节 验证: - Windows: cargo build --release 通过,产物 agent.exe 9.32MB / viewer.exe 8.73MB - Linux(容器): cargo test -p linux-agent 通过,2 passed |
||
|---|---|---|
| .cargo | ||
| agent | ||
| agent-core | ||
| common | ||
| linux-agent | ||
| scripts | ||
| viewer | ||
| .gitattributes | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Git协作规范.md | ||
| README.md | ||
| 构建运行手册.md | ||
mvp-remote
自研远程桌面控制软件(办公场景),技术路线参考网易 UU 远程逆向分析结论。
架构
| Crate | 角色 | 说明 |
|---|---|---|
common |
协议库 | 控制消息 / 视频帧线格式,三端共享契约 |
agent |
被控端 | DXGI 屏幕采集 + openh264(H.264) 编码 + QUIC 服务 + SendInput 键鼠注入 |
viewer |
主控端 | QUIC 客户端 + openh264 解码 + minifb 渲染 + 键鼠采集 + 延迟 HUD |
构建
cargo build --release
产物:target/release/agent.exe(被控端)、viewer.exe(主控端),需附带 3 个 mingw 运行库 DLL(libstdc++-6 / libgcc_s_seh-1 / libwinpthread-1)。
运行
# 被控机
agent.exe --port 47800 --code 123456
# 主控机
viewer.exe --addr <被控机IP> --port 47800 --code 123456
详见《构建运行手册.md》与《Git协作规范.md》。