10 个版本
使用旧的 Rust 2015
0.3.6 | 2019 年 2 月 3 日 |
---|---|
0.3.5 | 2018 年 8 月 24 日 |
0.2.2 | 2018 年 7 月 26 日 |
0.1.0 | 2018 年 7 月 16 日 |
#19 in #keyboard-events
25KB
560 代码行
X11/Xserver 输入镜像工具
捕获一台 PC 上的鼠标和键盘事件,然后通过网络广播它们。然后您可以在其他 PC 上回放这些事件。因此,如果它们具有相同的屏幕分辨率和键盘映射,您可以同时有效地控制多个具有 GUI 界面的设备。
演示
安全
强烈建议仅通过 SSH/OpenVPN/WireGuard 等隧道传输流量。
尽管有一个过度设计的内置加密,您可以在 SecurityConfig.toml
中设置。将 password = ""
设置为将禁用它。将其设置为非空字符串(需要 12 个字符或更多)以启用。如果攻击者已经记录了您的流量并获取了您的密码,他们将能够解密他们记录的所有流量(无 PFS)。此程序仅使用 XChaCha20 和密码作为密钥,随机初始 nonce 以明文形式发送。然后消息发送两次,使用不同的 nonce 加密,作为简单的完整性检查。
安装
下载 最新版本。
sudo apt install xdotool numlockx xinput
可选地,安装并使用 screenkey
进行调试。
用法
在主服务器上使用 grabber
二进制文件,在从服务器上使用 server
。
grabber
需要 GrabberConfig.toml
和 SecurityConfig.toml
。server
需要 ServerConfig.toml
和 SecurityConfig.toml
。示例文件在此存储库中。
如果您想在 VirtualBox 中使用此程序,可能需要禁用从服务器的鼠标集成。
编译
下载 Rust 夜间工具链,然后运行 cargo build --release
。
X11 抓取解决方案
自0.3版本以来,基于Chromium的浏览器可以开箱即用,但您需要将keyboard_and_clicks_interval_ms
(我推荐现在设置为1毫秒)减小。如果您需要最佳性能,可以撤销“使用较慢的方法来捕获点击...”、“更新默认捕获器配置值”和“删除不必要的Xephyr组件”的提交,并为基于Chromium的浏览器使用Xephyr的解决方案。
杂项
MIT许可。
公开了许多函数,也可以用作库。但由于该crate缺乏良好的文档,我建议在使用前浏览源代码。
使用同步网络代码,因此可能不适合在高速网络中控制多个机器。
代码很糟糕,但目前已经可以工作。欢迎改进。
请注意,由于外部因素(例如连接问题、虚拟机资源不均匀,导致程序启动需要更多时间、RNG),设备可能会不同步。如果您在两个浏览器中同时打开没有cookie的YouTube,相同的User Agent,同一IP地址,您可能会得到不同的视频顺序。
依赖项
约3MB
约47K SLoC