問題タブ [wireshark-dissector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3422 参照

c++ - Wiresharkプラグイン:UDPフレームごとに複数のパケットを使用してペイロードを分析する

複数のアプリケーションレベルのパケットを単一のUDPフレームに配置するプロトコルを分析するためにWiresharkプラグインを作成しています。フレーム内のパケット数を示す囲みプロトコルはありません。したがって、基本的に、ワイヤを通過するペイロードは次のようになります。

この情報を実際に処理するサーバーコードでは、最後に到達するまでフレームをループするだけです。wiresharkのソースコードに含まれているプラ​​グインを調べたところ、このようなループを実行するプロトコルは見つかりませんでした。

他のプロトコルがフレームごとに複数のペイロードをパックすることを私は知っています。Wiresharkディセクタでこのようなプロトコルを処理するための標準的または標準的な方法は何ですか?

0 投票する
2 に答える
2359 参照

c - Wireshark Dissector: 欠落している UDP フレームを特定する方法は?

カスタム Wireshark ディセクタで欠落している UDP フレームをどのように特定しますか?

CQS フィード用のカスタム ディセクタを作成しました(リファレンス ページ)。このフィードを受信するときのサーバー ギャップの 1 つ。Wireshark によると、一部の UDP フレームはまったく受信されません。他のすべてのサーバーにギャップがないため、フレームが送信されたことはわかっています。

CQS フレームは複数のメッセージで構成され、それぞれに独自のシーケンス番号があります。私のカスタム ディセクタは、Wireshark に次のデータを提供します。

そして、このスクリーンショットに示すように、これらの各値をカスタム列に表示しています。ワイヤーシャークのスクリーンショット

最後に処理されたシーケンス番号を(ローカル静的として)保存し、ディセクタがフレームを処理するときにギャップにフラグを立てるコードをディセクタに追加しようとしましたcurrent_sequence != (previous_sequence + 1). GUI でクリックする場所に応じて、ディセクタがランダム アクセスの順序で呼び出される可能性があるため、これは機能しませんでした。したがって、フレーム 10、次にフレーム 15、次にフレーム 11 などを処理できます。

ディセクタがその前のフレーム (または次のフレーム) が欠落しているかどうかを知る方法はありますか?

ディセクタは C で書かれています。

( serverfault.com の関連投稿も参照してください)

0 投票する
2 に答える
360 参照

lua - WiresharkのLua:Tvp.new_real()は存在しませんか?

Lua for Wiresharkのドキュメントには、Tvpクラスにnew_real()メソッドがあると記載されています。ただし、Luaスクリプトで使用しようとすると、このメソッドは存在しないようです。Windowsx64用にWireshark1.3.5(最新の開発バージョン)を使用しています。メソッドの名前が変更されましたか?もしそうなら、何に?この特定の質問に対するより良いサポートフォーラムはありますか?

0 投票する
1 に答える
1231 参照

ruby - Ruby のライブラリ Wireshark

私は大学 4 年のプロジェクトを行っており、このプロジェクトのテーマは、wireshark が提案するものに近い Web インターフェイスを備えたネットワーク アナライザーを実現することです。そのため、Ruby 言語で Wireshark ライブラリをマッピングする必要があります。これにより、キャプチャしたパケットを分析することができます。

ネット上でライブラリに関するマニュアルやドキュメントを探していましたが、うまくいきませんでした。すべての後、開発者のメーリング リストに参加して質問を投稿し、wireshark ライブラリの開発について学ぶことにしました。すべてのプログラミング ライブラリとアイデアは大歓迎です。

前もって感謝します

0 投票する
5 に答える
3941 参照

unit-testing - Wireshark ディセクタをどのようにテストしますか?

Wireshark のディセクタを作成する場合、どのようにテストしますか? UI で視覚的な出力を探すだけでは、重要なプロトコルには十分ではありません。

ディセクタの単体テストの良い方法はありますか?

編集:

プロトコル フレームの構造は動的です。解剖者は何らかの方法でコンテンツを解釈する必要があります。

たとえば、5 番目のフィールドが 1 の場合、6 番目のフィールドとしてバイト配列が続きます。2 の場合は double 配列になり、3 の場合はゼロで終わる文字列を追加する必要があります。

これは通常、毎日の作業キャプチャでは発生しません。だからこそ「ありえない」内容でも合成攻略データが必要なのです。

0 投票する
3 に答える
45262 参照

wireshark - カスタム プロトコル アナライザーを Wireshark に追加するにはどうすればよいですか?

Wireshark で調べているカスタム プロトコルがあります。16 進数をデコードする必要がないように、Wireshark がそれを分析してくれると便利だと思いました。私はプログラム ログでこれを行っていますが、wireshark は会話全体をタイミング情報でキャプチャするので、そこではより便利です。

これは簡単にできますか?

0 投票する
2 に答える
4745 参照

makefile - このプラグインをコンパイルするにはどうすればよいですか?

私はfoodissectorの例に従っていますが、それをコンパイルする方法を知りたいです。

fooディセクタの例は、次のリンクに示されています: http ://www.wireshark.org/docs/wsdg_html_chunked/ChDissectAdd.html

インターリンクディレクトリには、使用できるサポートファイルの良い例が含まれており、Makefile.amやmakefile.commonなどを変更する必要があることに気付くでしょう。fooモジュールを反映するように変更しました。

しかし、今はそれを構築する方法を知りたいです。automakeを実行しようとしましたが、configure.inがないというメッセージが表示されます。申し訳ありませんが、私はまだgnuビルド環境にあまり詳しくありません。

また、このモジュールをスタンドアロンで構築することは可能ですか?または、他のすべてのwiresharkソースを利用できるようにする必要がありますか?もちろん、ubuntuの下にwireshark-devをインストールしました。

0 投票する
1 に答える
420 参照

c - FT_UNIT32 フィールドをリトルエンディアンとして解釈する

カスタム プロトコル用の Wireshark ディセクタを作成中です。ただし、符号なし 32 ビット整数のフィールドがあります。実際にはリトルエンディアン形式で送信されます。Wireshark にそのように解釈させるにはどうすればよいですか?

つまり、私の hf_register_info 構造体には含まれています

そして、私が呼んでいる解剖機能で

0 投票する
1 に答える
970 参照

protocols - Wireshark dissector: 分析されたツリーの前のフィールドの値に依存するフィールドを表示します

独自のプロトコル用にwiresharkでプラグインの開発に取り組んでいます。プロトコルの特性を定義する次の 3 つの構造があります。

hf_register 配列に格納される構造とフォーマット情報は次のとおりです。

ここで、サブコマンドのフォーマット情報は、メイン コマンドの値に基づいています。メインコマンドに存在する値に基づいて2番目のフィールドサブコマンドの値を決定できるように、そのようなものを取得する方法はありますか?

助けてくれてありがとう、ムルナル

0 投票する
1 に答える
4386 参照

lua - lua で Wireshark ディセクタを作成し、動的ポートに設定する


次のように機能するクライアントサーバープロトコルがあります。
クライアントは、サーバー ID を含む udp ブロードキャストを (固定ポートに) 送信します。
サーバーはデータグラムを受信し、それが自分の ID と一致する場合、リッスンしているポートをクライアントに送信します。
次に、クライアントはそのポートへの tcp 接続を開きます。
このために Lua で Wireshark ディセクタを作成しており、tcp 接続用のポートを動的に設定する必要があります (サーバーがリッスンするウィッチ ポートを事前に知りません)。

私はそのようなことを試しました:

私は何が欠けていますか?
前もって感謝します