私はdickを使用していくつかのieee80211パケットを解析しています。
作成したieee80211オブジェクトの値が間違っています。
深く掘り下げて見ると、ieee80211はデータをビッグエンディアンとして扱いますが、実際にはそれを提供しているパケットはリトルエンディアンです。リトルエンディアンパケットがdpktによってビッグエンディアンとして扱われます
実行時にパケットのエンディアンを検出する方法があるので、dpkt.ieee80211に提供する前にビッグエンディアンに変更することができますか?
フィールドはフレームコントロールです。 IEEE802.11の最初のバイトは02で、2番目のバイトは08です。Wiresharkは何とかこれらの2バイトをスワップし、これがデータフレーム(0000 ** 10 ** 00の10の部分です。 08は2番目のバイトですが、最初のバイトになると思います)。 – kroiz
これは役に立ちますか? https://stackoverflow.com/questions/12407145/interpreting-frame-control-bytes-in-802-11-wireshark-trace – Malt
その質問のWiresharkスクリーンショットでは、あなたにリンクすると、wiresharkが** (Normal)**を "Frame Control"ラインに追加します。私のpcap上でWiresharkは**(スワップされた)**と言っています。そしてその質問の最初のバイトは08で、私のpcap 08では2番目のバイトです。だから、Wiresharkが私のIEEE80211で第一バイトと第二バイトを入れ替える必要があることを理解していた人もいます。私はちょうど方法を取得しないでください。 – kroiz