1

データではないプロトコル用の Wireshark ディセクタ プラグインを作成していhtonます。エンディアン変換を行わずに 64 ビット データ値を抽出する必要があります。

tvb_get_ntoh64を実行しない Wireshark ライブラリに含まれる のバージョンはありntohますか?

4

1 に答える 1

2

私は自分の質問に対する答えを見つけました。wiresharkドキュメント\wireshark\ doc \ README.developerは、これに対処します。

結果に「tvb_get_ntohs()」または「tvb_get_ntohl()」を使用してから「g_ntohs()」、「g_htons()」、「g_ntohl()」、または「g_htonl()」を使用してリトルエンディアン値をフェッチしないでください。 value-問題のg_ルーチンは、ネットワークバイトオーダー(ビッグエンディアン)とホストバイトオーダーの間で変換されます。リトルエンディアンバイトオーダーではありません。PCがそうである場合でも、Wiresharkが実行されるすべてのマシンがリトルエンディアンであるとは限りません。 「tvb_get_letohs()」および「tvb_get_letohl()」。

調べてみるとtvbuff.h、他のフレーバーもあることがわかります。

extern guint16 tvb_get_letohs(tvbuff_t*, const gint offset);
extern guint32 tvb_get_letoh24(tvbuff_t*, const gint offset);
extern guint32 tvb_get_letohl(tvbuff_t*, const gint offset);
extern guint64 tvb_get_letoh64(tvbuff_t*, const gint offset);

将来この質問をする人が答えを見つけられるように投稿してください。

于 2010-05-28T16:03:05.043 に答える