我试图捕获键盘事件。 例如我想从头开始深入研究键盘记录程序。 经过2个小时的战斗,我发现了以下内容
neel@pc1$ ls -l /dev/input/by-id
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd -> ../event1
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-mouse -> ../event2
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-mouse -> ../mouse1
但是当我尝试
neel@pc1$ sudo cat /dev/input/usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd
它什么也没产生 没有输出
经过更多搜索后,现在我想可能是 Xorg 中的某些东西阻止了它。
还有更多信息吗? 并在最后说我如何从该文件读取输入? 或者还有其他捕获键盘事件的方法吗??
你好,
我最近正在尝试完成类似的事情。
看看 logkeys 项目:
http://code.google.com/p/logkeys/
如果您下载源代码,并查看 logkeys.cc 文件,您将找到一种方法来自动检测键盘使用哪个 /dev/input/event。这将允许您从键盘读取原始扫描代码,无论当前哪个程序具有焦点。 logkeys 程序还展示了如何将扫描码转换为字符,以及其他有用的技巧。
希望这有帮助,
马库斯。
您正在读取错误的设备。尝试所有 /dev/input/event* 或在 /var/log/Xorg.0.log 中查找用于键盘的设备。
我建议使用 evtest 应用程序,它列出了所有输入设备并允许您监视它们的事件。
感谢您提供有关
ls -l /dev/input/by-id
的线索,这对我很有帮助!.
defenderdz@defenderdz-pc:~$ ls -l /dev/input/by-id | grep kbd
lrwxrwxrwx 1 root root 9 nov. 28 14:04 usb-Logitech_USB_Receiver-event-kbd -> ../event7
lrwxrwxrwx 1 root root 10 nov. 29 00:33 usb-NOVATEK_USB_Keyboard-event-kbd -> ../event26
lrwxrwxrwx 1 root root 9 nov. 28 14:04 usb-SONiX_USB_DEVICE-event-kbd -> ../event3
defenderdz@defenderdz-pc:~$
'kbd' 是用于键盘设备的后缀(我连接了 3 个键盘)。
您的错误是您访问了错误的文件夹:
/dev/input/
而不是/dev/input/by-id
在我的示例中,正确的路径是:
defenderdz@defenderdz-pc:~$ sudo cat /dev/input/by-id/usb-NOVATEK_USB_Keyboard-event-kbd
���]�I���]�I���]�Ia���]�b���]�b���]�b���]�����]�����]��s���]����]����]����]�>
���]�>
���]�>
d���]�8
���]�8
���]�8
���]�����]�����]��s���]H|���]H|���]H|���]�����]�� ���]��d���]Ǵ���]Ǵ ���]Ǵ
就你而言
neel@pc1$ sudo cat /dev/input/by-id/usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd
我并不是说这是最好的解决方案,但它对我来说效果很好。 您甚至可以通过解析 ls 结果来创建键盘的自动检测...
对于来这里寻找调试键盘问题的方法的人:尝试使用终端命令
xev
。它显示您的外围设备(键盘和鼠标)发出的所有输入事件。也可能对构建键盘记录器有用。
我写了一篇关于如何使用 Vanilla Python 完成此任务的博客文章,其中还包括使用 Pynput 的线程版本。
这篇文章将教您如何解压结构体,以有状态的方式解析键盘输入,并将它们保存到磁盘(包括退格逻辑)。
这是我的红队食谱博客的一部分。在这里查看:https://github.com/0x00wolf/red-team-cookbook/tree/main/Arsenal/Linux-Keyloggers