跟踪XWindow协议

时间:2010-11-18 09:56:33

标签: x11 wireshark

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

4 个答案:

答案 0 :(得分:4)

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

示例:

使用带有文件描述符41的unix socket上的pid 1998捕获X-window协议帧到X-server:

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

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

答案 1 :(得分:3)

Wireshark 确实能够剖析X-Window协议。

但是:首先必须能够捕获X-client(app)和X-Server之间的实际X-Window流量,然后Wireshark才能解析它。

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

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

X很复杂;如果您不熟悉运行X的详细信息,则需要进行一些阅读或询问其他信息。我很久以前就删除了与X有关的细节。

答案 2 :(得分:0)

回到80年代,有一个开源的Xwindow代理程序将放置在服务器和客户端之间。它写在' C'并且可以轻松修改以计算消息类型或每个方向传递的数据量。它还认识到当人们在中断处理程序中使用错误的函数时会导致格式错误的Xprotocol。 我无法记住这个名字,但也许正在搜索" Xwindow代理"可能有帮助...

答案 3 :(得分:-1)

我不确定XWindow协议是什么,但你可以为Wireshark制作一个Lua Dissector:

http://wiki.wireshark.org/Lua