問題タブ [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.
udp - ディセクタでwireshark設定を変更しますか?
UDP 上のプロトコル用に、C で Wireshark のディセクタを作成しています。私はヒューリスティック分析を使用していますが、私のものと同じポートの標準的な分析ツールを備えた別のプロトコルが存在するため、私のパケットはその他のプロトコルとして分析されています。ディセクタを機能させるには、「最初にヒューリスティック ディセクタを試す」UDP 設定を有効にする必要がありますが、プラグインが (コードで) 登録されたときにそのプロパティを変更したかったので、ユーザーが手動で変更する必要はありません。epan/prefs.h で、関数prefs_set_prefが存在することに気付きました! しかし、プラグインで使用すると、起動時に Wireshark がバス エラー 10 でクラッシュします。
だから私はこれを試しました:
G_MODULE_EXPORT void plugin_register(void){
prefs_set_pref("udp.try_heuristic_first:true");
// My proto_register goes here
}
epan/prefs.h には以下があるため:
ありがとう
wireshark - Wireshark dissector - dissectortable:add(pattern, dissector) を任意のパターンで使用するには?
Wireshark のカスタム ディセクタを作成しています。私は自分のディセクタを、このようなディセクタ テーブルに追加しています...
ただし、私のディセクタが udp ポート 7777 だけを処理するのではなく、任意の udp ポートまたは少なくとも非常に広い範囲を処理するようにしたいと考えています。
これどうやってするの?
ドキュメントには、7777(パターン)を範囲で置き換えることができると書かれていますが、その構文が何であるかはわかりません。
ありがとうございました!
wireshark - Wireshark ディセクタ プラグインをコンパイルするには?
私はwiresharkディセクタプラグインを書いています。私は、wireshark のドキュメントの第 9 章と、他のいくつかの Web サイトを調べました。彼らは、関連するファイルとディセクタ名を反映するように変更する必要があると言っMakefile.common
ています。Makefile.am
Mac に Wireshark をインストールしました。Applications/Wireshark.app
フォルダー内で Makefiles を検索しました。何も見つかりませんでした。ディセクタプラグインをコンパイルするプロセスは何ですか?
前もって感謝します!
c - 「ヒープ破損」を引き起こす Wireshark プラグイン
Wireshark ディセクタを作成していて、奇妙なメモリ管理の問題が発生しています。私は次の機能を持っています:
この関数はいくつかの場所 (proto_reg_hanoff_foo
およびdissect_foo
) で使用されるため、結果を特定のプールに割り当てません。
私 proto_reg_handoff_foo
は関数の戻り値を取得し、それを別のメモリ位置にコピーし、元の結果を解放しています:
奇妙なことに、行で Windows によってトリガーされるブレークポイント (またはデバッガーの外部での単純なクラッシュ) を取得していますwmem_free(NULL, tmp)
。でエラーが発生したという事実以外に、収集できる実際のデバッグ情報はありませんwmem_core.c:72
。
注意: 3 番目のパラメーターfoo_hex2bytes
を受け入れるように my を変更し、単純に(または必要に応じて) 渡しました。これにより、アプリケーションが閉じられているときに同様のクラッシュが発生します。また、すべてのメモリを使用して手動でクリアしようとしました(アプリケーションが14Kのメモリしか使用せず、さらに多くのメモリを使用できる場合でも、動作する場合があります)。wmem_allocator_t
wmem_epan_scope()
wmem_packet_scope()
malloc()
null pointer
編集:問題は並んでいるようですsscanf(...)
-十分なメモリを割り当てておらず、オーバーランしていました。割り当てサイズを増やすことで修正されました。