Wiresharkの出力の解釈


0

Wiresharkキャプチャのアスキーウィンドウには、ドット(。)がたくさんあります。正確にはどういう意味ですか?これらのドットはどのような情報を意味していますか?


4
これらは非ASCIIバイナリデータです。ところで、この質問はセキュリティとは無関係です。

つまり、wiresharkはasciiを使用してビット文字列をデコードしますか?言語に関係なくすべてのテキストを理解するユニコードのようなものを使用しないのはなぜですか?
ミナージュ

回答:


2

これらのドットはどのような情報を意味していますか?

改行、キャリッジフィード、EOF、NULなどの印刷不可能な文字を表します。対応する16進コード(左)を見て、実際のバイトを把握できます。

HTTPSサーバーからクライアントへの「証明書」パケットを表示するこの例を考えてみましょう。「証明書」TLSメッセージには、バイナリデータとテキストデータの両方が含まれています。テキストは証明書自体からのものです。

Wireshark TLSスニペット

「証明書の長さ」フィールドを選択したことに注意してください。これは、証明書の長さが1336バイトであることを示しています。しかし、強調表示されたバイトを見て、「テキスト」が右側にある場合、「1336」とは言わず、「.. 8」と言います。これは、「.. 8」が0x000538のASCII表現であるためです。

あなたが見ればASCIIテーブル、あなたは0x00では「NUL(ヌル文字)」であることがわかります、0x05のは「ENQ(照会)」であり、0x38は「8」です。NULとENQは印刷できません-それらは表示できません-したがって、Wiresharkは「。」を印刷します。代わりに。

しかし、基礎となるプロトコルでは、これらはいずれの場合もテキストではありません。これは24ビット整数です。16進数000538は10進数1336に等しく、次の証明書の長さが1336バイトであることを示します。

さらに下に行くと、証明書が開始されると、通常のASCIIテキストデータ( "Entrust、Inc.")がバイナリの非テキストデータ( "..U ... 0")と混ざり合っています。

HTTPのような完全に「テキストベースの」プロトコルを使用しても、「。」が表示されます。印刷できない文字の場合。「接続:閉じる」の後の「..」に注意してください。これは、「キャリッジリターン-ラインフィード」(CRLF、または\ r \ n)に対応しています。

Wireshark HTTPスニペット

つまり、wiresharkはasciiを使用してビット文字列をデコードしますか?言語に関係なくすべてのテキストを理解するユニコードのようなものを使用しないのはなぜですか?

要するに、Wiresharkは単にバイトを表示しているだけで、これはテキストである場合とそうでない場合がありますが、テキストである場合はUnicodeでなくASCIIである可能性があります。

Wiresharkは、文字列とバイナリの両方のデータバイトをASCII文字として「。」で表示します 印刷できない文字を示すために使用されます。FTP、SMTP、Telnet、HTTP、IRCなど、ASCII文字を使用して通信するネットワークプロトコルは多数あります。ネットワークプロトコルがテキストを使用して通信する場合、ほぼ確実にASCIIを使用します。

私は、UTF / Unicodeを通信の基礎として使用しているプロトコルに精通していません。HTTPなどのUnicode データの通信を希望するプロトコルは、アプリケーション層で次のバイトがUnicodeとして解釈されることを通知ます。(確かではありませんが、それをキャッチして適切に表示できるWiresharkインタープリターが存在することを期待しますが、それでも「パケットバイト」ウィンドウにASCIIが表示されます。 ASCIIのような8ビットテキスト形式で最適に表示されます。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.