2010-11-18 63 views
4

是否有可能使用工具跟踪XWindow协议?我认为wireshark会是一个很好的框架来主持这样的想法,但似乎没有支持。应该做些什么来实现这个目标?跟踪XWindow协议

回答

3

Wireshark的确实有解剖XWindow的协议的能力。

但是:您必须首先能够捕获X-client(应用程序)和X-Server之间的实际X-Window流量,然后Wireshark才能对其进行剖析。

在本地计算机上运行的应用程序(X-Windows客户端)和X-Windows服务器之间的X-Windows流量可能使用“Unix域套接字”在客户端和服务器之间进行直接进程间通信。没有使用底层网络协议,因此流量(AFAIK)无法通过Wireshark进行解析)。

自从我处理X以来已经有一段时间了,但我认为基本上需要的是X-Server运行在一个盒子上,以便服务器正在监听(并愿意接受)网络连接。如果远程节点(或本地节点?)上的Xclient应用程序通过网络连接到XServer,那么您将能够捕获该流量以供Wireshark解剖。

X很复杂;如果您不熟悉运行X的细节,则需要阅读或询问其他信息。我早就知道了与X有关的细节。

-1

我不知道的XWindow的协议是什么,但你可以做一个Lua剥离为Wireshark的:

http://wiki.wireshark.org/Lua

+0

这是X窗口系统的协议,而Wireshark *已经*有一个解剖器。这里的难点在于捕获流量,至少在UNX系统上,如果GUI程序和显示器位于同一台计算机上,流量不会超过支持嗅探的网络接口,则会超过不支持嗅探的“UNIX域套接字”,除了在另一个答案中使用strace hack。 – 2014-09-10 18:26:41

3

原则上可以捕获使用strace通过Unix套接字的X-Window协议。然后可以使用text2pcap将这个数据包打包成Wireshark。

实施例:

在Unix套接字前进到X-服务器具有PID 1998与文件描述符41

捕获的X窗口协议帧:

bash$ sudo strace -e trace=read,write -e read=41 -p 1998 2>&1 | grep '^[ ]|' >/tmp/xdata.log 

准备所捕获的数据进行的Wireshark:

bash$ text2pcap -T 1234,6000 /tmp/xdata.log /tmp/xdata.dump 

现在可以使用wireshark /tmp/xdata.dump

0

早在上世纪八十年代,就有了一个开源的Xwindow代理程序,它将放置在服务器和客户端之间。它是用'C'编写的,可以很容易地修改来计算消息的类型,或在每个方向传递的数据量。它还认识到当人们在中断处理程序中使用错误的函数时会导致格式错误的Xprotocol。 我不记得名字,但也许搜索“Xwindow代理”可能会有所帮助......

+0

也许你正在考虑'xtrace'?它仍然有效:http://xtrace.alioth.debian.org/ – pestophagous 2017-09-28 01:32:50