2010-11-18 6 views
4

XWindowプロトコルをツールで追跡することは可能ですか?私はwiresharkがこのような考えをホストする良い枠組みだと思っていましたが、サポートはないようです。この目標を達成するためには何をすべきでしょうか?トラッキングXWindowプロトコル

答えて

3

Wiresharkのは、X Windowのプロトコルを分析する能力を持っていません。

しかし、まず、Xクライアント(アプリ)とXサーバの間の実際のXウィンドウトラフィックをキャプチャしてからWiresharkが解読できるようにする必要があります。

ローカルマシン上で実行されているアプリケーション(X-Windowsクライアント)とX-Windowsサーバー間のX-Windowsトラフィックは、おそらくクライアントとサーバー間の直接プロセス間通信(IPC)を行うために "Unixドメインソケット" 。基盤となるネットワークプロトコルは使用されていないため、トラフィックは(AFAIK)Wiresharkによる解剖のために捕捉できません)。

私はXを扱って以来、しばらくしていましたが、基本的には、サーバーがネットワーク接続をリッスンしている(そして受け入れる)ようなボックスでX-Serverを実行する必要があると思います。リモートノード(またはローカルノード?)上のXclientアプリケーションがネットワーク経由でXServerに接続すると、そのトラフィックをWiresharkで解読できるようになります。

Xは複雑です。あなたがXの実行の詳細に慣れていない場合、いくつかの読書や追加情報を求める必要があります。私は長い間、Xに関連する詳細を隠してしまった。

-1

私はX Windowのプロトコルが何であるかわからないんだけど、あなたがWiresharkのためのLuaの解剖を作ることができる:

http://wiki.wireshark.org/Lua

+0

これはXウィンドウシステム用のプロトコルであり、Wireshark *は既にそれを解読しています。ここでの難しさは、少なくともUN \ * Xシステム上では、GUIプログラムとディスプレイが同じマシン上にある場合、トラフィックがスニッフィングをサポートするネットワークインターフェイスを経由しない場合、トラフィックをキャプチャすることです。他の答えでstraceのハック以外の、スニッフィングをサポートしていない "UNIX-domain socket" –

3

原則として、straceを使用してUnixソケットを経由するX-Windowプロトコルをキャプチャすることは可能です。次に、text2pcapを使用してこのパケットをWiresharkにラップすることができます。

例:ファイル記述子41とUnixソケットにPID 1998とXサーバに移行

捕捉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 

/tmp/xdata.dumpでwiresharkを使用できるようになりました。

0

80年代には、サーバーとクライアントの間に配置されるオープンソースのXwindowプロキシプログラムがありました。それは 'C'で書かれ、簡単に変更可能なメッセージの種類や、各方向に渡るデータの量をカウントすることができます。また、人が割り込みハンドラで間違った機能を使用した場合に発生する不正なXprotocolも認識しました。 名前を覚えられないかもしれませんが、おそらく "Xwindowプロキシ"を検索すると助けになるかもしれません...

+0

おそらくあなたは 'xtrace'を考えていますか?それでも動作します:http://xtrace.alioth.debian.org/ – pestophagous

関連する問題