远程鼠标 netcat (/dev/input/mice)

远程鼠标 netcat (/dev/input/mice)

我正在使用 nc,我发现这个工具是多么强大和多才多艺。我想知道该文件是如何/dev/input/mice工作的,因为当我这样做时,cat /dev/input/mice您会看到输出,但我不确定如何使用它。

我曾尝试过echo "blablabla" > /dev/input/mice认为它会改变我的鼠标坐标,但没有做任何事情。

我在一篇文章中看到你可以使用 netcat 来远程鼠标(不知道我在哪里看到的)

那么,如果我可以将远程 PC 中的 /dev/input/mice 的写入内容发送到正在侦听的服务器,并将其写入他的 dev/input/mice ¿

我的想法是:

服务器 : nc -l -p 6000 > /dev/input/mice

客户 :nc <IP> 6000 < /dev/input/mice

我认为那行不通,所以有人知道如何执行此操作并解释一下吗?先感谢您

答案1

我写了一个更详细的答案本质上是同样的问题在那里,但主要思想是:

客户:nc -l -p 4567 | uinput

服务器:intercept -g /dev/input/by-id/usb-My-mouse-name | nc 10.1.2.3 4567

这使用拦截工具 - 基于 libudev 和 libevdev 的最小可组合基础设施

答案2

使用设备文件对鼠标事件进行原始处理需要:

  1. 提升的权限,以便您不应该暴露给客户端应用程序
  2. 对鼠标设备的内部工作原理有足够的了解,基本上可以构建您自己的鼠标驱动程序,这当然可以是可加载的内核模块,并且可以通过您自己创建的本地服务进行访问,该服务可以接收来自网络的命令并通过自定义协议将它们发送到内核模块,或者
  3. 您可以简单地创建一个应用程序,将加载的鼠标驱动程序的功能公开给某种外部网络接口,在这种情况下,客户端最简单的解决方案是将其设为一个接口,并通过以下任一REST方式操作它:curlbrowser

但上述解决方案似乎都不安全......

幸运的是,有一些工具可以让您免去如此艰苦的努力……并为您的问题提供安全的解决方案。

我想当您说“您想远程控制鼠标”时,您的意思是控制目标图形用户界面中显示的鼠标。这是 X-Windows 服务器提供的服务,可以使用 ssh 通过命令行轻松安全地控制。
抱歉,我真的不知道如何netcat适合这张照片......

因此,您可以做的就是简单地使用xdotoolssh 连接来模拟鼠标事件:

$ ssh user@machine xdotool mousemove 0 0 click 1

是的,就是这么简单!

看:
Linux 中的鼠标事件如何工作?
https://stackoverflow.com/questions/1029027/x11-move-an-existing-window-via-command-line

以防万一,您想要控制目标操作系统中看到的鼠标光标。因为如果您的目标是创建一个使用鼠标的终端应用程序(这是物理连接到客户端的鼠标),那么您绝对应该选择基于ncurses.ncurses使用开源终端鼠标服务器,还可以用于通过 ssh 和简单的终端提供精致的 GUI 界面。另外,ncurses 不依赖于 x-server 运行,因为它不会以任何方式影响服务器的鼠标,它只是使用客户端的鼠标来控制应用程序。

无论如何,如果您的目标只是简单地使用 Linux 设备文件,请尝试将文档发送到音频设备并看看它听起来如何……具有 root 权限的简单猫和管道就可以工作。

相关内容