远程软件
用途:不依赖 viewer 的 Minifb 窗口,直接抓 agent 下发的码流并逐帧打印 NAL 结构与解码结果,用于定位解码恢复类问题。 能力 - 打印每帧的 seq / keyframe / 字节数 / NAL 类型(SPS PPS IDR P) - --skip-at N:模拟主控端「积压跳帧」——读出但不解码,用于验证跳帧是否 切断参考链(实测确认:跳掉一帧后所有 P 帧持续解码失败,直到收到 IDR) - 交叉校验帧头 keyframe 标志与码流实际 NAL 类型是否一致 - 末尾补发 KeyFrameReq 并观察 IDR 是否真的回来 用法 cargo run --release -p agent --bin dump_stream -- --port 47800 --code 123456 cargo run --release -p agent --bin dump_stream -- --port 47800 --code 123456 --skip-at 1 注意:KeyFrameReq 必须写在流 2(isend)——agent 的读循环只监听流 2, 写到流 1 会被静默忽略(本工具第一版踩过,误判「修复无效」)。 这个工具是发现 nvenc FORCEIDR 缺陷的直接手段,保留以备回归排查。 |
||
|---|---|---|
| .cargo | ||
| agent | ||
| agent-core | ||
| common | ||
| linux-agent | ||
| scripts | ||
| tools | ||
| vendor/nvenc | ||
| viewer | ||
| .gitattributes | ||
| .gitignore | ||
| B侧设计文档.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| Git协作规范.md | ||
| README.md | ||
| 借鉴映射与落地规范.md | ||
| 多平台架构设计.md | ||
| 打洞与信令设计.md | ||
| 打洞验证记录.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》与《打洞与信令设计.md》。