有没有办法在没有root的情况下在linux中制作键盘记录器?

Posted

技术标签:

【中文标题】有没有办法在没有root的情况下在linux中制作键盘记录器?【英文标题】:Is there any way to make a keylogger in linux without root? 【发布时间】:2021-08-09 03:02:27 【问题描述】:

我想要做什么

我通过读取事件文件制作了一个键盘记录器,但它需要root权限才能工作。我想制作一个无需root权限即可工作的键盘记录器。

我的设备

ubuntu16.04 使用 X11 ubuntu21.04 使用 Wayland

我的想法

我知道在windows上是可行的,在一些使用X11的linux上也可以通过Xlib实现。

但是我的项目需要在X11和Wayland上运行,所以显然不能使用Xlib。

问题

有没有其他方法可以在没有 root 权限的情况下记录密钥?

【问题讨论】:

天哪,我真的希望不要! 您描述了您的目标。你能详细说明是什么让你认为这是可能的吗?我问是因为这似乎是一个不可能的功能。 @Yunnosch python-keylooger pykeylogger 使用 xlib 获取密钥记录,xlib 不需要 root 权限,但 xlib 不能在 Wayland 上工作,所以我想知道有没有办法在 Wayland 上做同样的事情。 【参考方案1】:

这可能是可能的,但任何非 root 解决方案都将依赖于 键盘虚拟化 工具。让我们看看(现代)操作系统是如何工作的:

硬件受内核及其驱动程序的独占控制。可以在该级别实现一个仅依赖于内核但需要管理员权限的键盘记录器。 如果您有一个支持多窗口的系统(X11、XWindow),操作系统会将低级事件传递给窗口管理器,然后将它们传递给客户端程序.在 Windows 中,由于历史原因,该部分包含在内核中。这里同样可以实现一个(仍然是低级别的)键盘记录器,但是如果窗口管理器已经以 root 身份启动,与它进行交互作为一个整体仍然需要管理员权限。至少 X11 服务器可以作为非管理员用户进程启动,在这种情况下,键盘记录器也可以在同一用户下运行。 最后,窗口管理器将事件传递给客户端应用程序。在某些(窗口)系统上,可以实现 钩子,但它们将被限制在同一个进程或进程组或至少同一个用户中。不管它是否可能,如果可能的话,实现它的方式无论如何都取决于窗口管理器

这意味着可以实现用户级别的键盘记录器,但这将取决于窗口系统而不仅仅是内核。换句话说,如果您想同时支持这两种方式,则必须搜索特定于 Wayland 的方式特定于 X11 的方式。

【讨论】:

以上是关于有没有办法在没有root的情况下在linux中制作键盘记录器?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在不使用 ImageMagick 或其他第三方软件的情况下在 R 中制作 GIF?

如何在没有 root 用户的情况下在 Linux (CentOS) 中安装软件包并进行自动依赖处理?

如何在没有 root 权限的情况下在图像文件上安装 grub?

有没有办法在没有参数的情况下在其函数中获取数组结构的索引?

有没有办法在没有 VBA 的情况下在 Excel 中连接两个数组? [复制]

有没有办法在没有投影的情况下在春季数据休息中返回带有 id 的关联对象