2010-11-18 3 views
4

Ist es möglich, XWindow-Protokoll mit einem Tool zu verfolgen? Ich dachte, wireshark wäre ein guter Rahmen, um eine solche Idee zu hosten, aber es scheint keine Unterstützung zu geben. Was sollte getan werden, um dieses Ziel zu erreichen?Tracking XWindow-Protokoll

Antwort

3

Wireshark tut die Möglichkeit, das XWindow Protokoll sezieren.

jedoch: Sie zunächst in der Lage sein, den tatsächlichen X-Window-Verkehr zwischen einem X-Client (app) und einem X-Server zu erfassen, bevor es sezieren kann Wireshark.

X-Windows-Verkehr zwischen einer App (X-Windows-Client) und einem X-Windows-Server, der auf Ihrem lokalen Rechner ausgeführt wird, verwendet wahrscheinlich "Unix Domain-Sockets" für direkte Interprozesskommunikation zwischen Client und Server . Es wird kein zugrunde liegendes Netzwerkprotokoll verwendet und daher ist der Datenverkehr (AFAIK) für die Analyse durch Wireshark nicht erfassbar.

Es ist eine Weile her, seit ich mit X beschäftigt habe, aber ich denke im Grunde ist, dass ein X-Server auf einer Box läuft, so dass der Server Netzwerkverbindungen abhört (und will). Wenn eine Xclient-Anwendung auf einem Remote-Knoten (oder lokalen Knoten?) Dann über das Netzwerk mit dem XServer verbunden wird, können Sie diesen Datenverkehr für die Dissektion durch Wireshark erfassen.

X ist kompliziert; Wenn Sie mit den Details zum Ausführen von X nicht vertraut sind, müssen Sie etwas lesen oder nach zusätzlichen Informationen fragen. Ich habe seit langem Details gelöscht, die sich auf X beziehen.

-1

Ich bin mir nicht sicher, was das XWindow Protokoll ist, aber man konnte eine Lua Dissector für Wireshark machen:

http://wiki.wireshark.org/Lua

+0

Es ist das Protokoll für das X Window System, und Wireshark * hat bereits einen Dissektor dafür. Die Schwierigkeit hier ist die Erfassung * des Datenverkehrs, da, zumindest auf UN \ * X-Systemen, das GUI-Programm und die Anzeige auf demselben Rechner liegen, der Datenverkehr nicht über eine Netzwerkschnittstelle läuft, die das Sniffing unterstützt, es geht über ein "UNIX-Domain-Socket", die kein Sniffing unterstützt, außer mit dem strace-Hack in einer anderen Antwort. –

3

Es ist im Prinzip möglich, das X-Window-Protokoll zu erfassen, das über den Unix-Socket unter Verwendung von strace läuft. Dann ist es möglich, dieses Paket für Wireshark mit text2pcap zu verpacken.

Beispiel:

capture X-Fenster-Protokollrahmen, die mit pid 1998 über Unix-Sockets mit Dateideskriptor zu X-Server geht 41:

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

bereiten die erfassten Daten für wireshark:

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

Jetzt kann man wireshark auf /tmp/xdata.dump verwenden.

0

Zurück in den 80er Jahren gab es eine Open-Source-Xwindow Proxy-Programm, das zwischen dem Server und dem Client platziert werden würde. Es war in 'C' geschrieben und leicht modifizierbar, um Arten von Nachrichten oder Datenvolumen, die in jede Richtung gehen, zu zählen. Es erkannte auch fehlerhaftes Xprotocol, das entstehen würde, wenn Leute die falschen Funktionen in Interrupt-Handlern benutzten. Ich kann mich nicht an den Namen erinnern, aber vielleicht hilft die Suche auf "Xwindow proxy" ...

+0

vielleicht denkst du an "Xtrace"? es funktioniert immer noch: http://xtrace.alioth.debian.org/ – pestophagous