【发布时间】:2014-09-12 16:47:13
【问题描述】:
我是 X windows 的新手,但对 Unix 有一定的了解。
我的项目要求我在 X 窗口系统上跟踪用户输入和输出。例如,如果使用 GUI 配置路由,我想知道使用了什么应用程序以及配置了哪些路由。到目前为止,我已经探索了以下选项并取得了部分成功。
1) 尝试使用 LD_PRELOAD 挂钩 XDrawString 和 XDrawText 等函数。 2)使用xwininfo获取window id和xev等工具。 3)查看了本论坛中的类似讨论,尤其是关于 xev 和 xinput 的讨论
1)如果 X11 是静态链接的,可能无法使用?没有把握。 2)xev 不记录使用 gedit 编辑的文件或尝试从 GUI 重命名文件的按键事件 3)我正在尝试通过 X windows 系统内部。
到目前为止,我很沮丧。任何输入/指针将不胜感激。
【问题讨论】:
-
1) 并非所有 x11 应用程序都使用 xlib。要拦截所有事件,您需要在网络级别(tcpdump / libpcap)进行监听
-
您想创建一个非常复杂的 AI。 X11 界面很容易成为您面临的最微不足道的挑战。 XDrawString 和朋友们不会帮助你(无论是在 LD_PRELOAD 级别还是在 tcpdump 级别),因为这些天几乎没有人使用这部分协议。字符在客户端绘制并作为位图推送到服务器。如果您想知道屏幕上的文本是什么,则必须对像素进行 OCR。
-
xlib 钩子有用吗?我想它不会总是因为根据 Andrey xlib 可能不会一直使用。
标签: x11