ByteScope

PCAP Viewer

キャプチャを開いて、1 パケットずつ読む。ファイルはこのタブから出ません。

ファイルはブラウザから送信されません — 処理はすべてローカルで行われます。

.pcap / .pcapng をここにドロップ

クリックして選択も可。このタブ内で読むだけで、送信はしません

このツールが復号・解析しないもの

何もアップロードしません。ファイルはこのタブで読まれ、Web Worker で解析されます。キャプチャを開いても通信は 1 本も出ないので、DevTools を開いたまま空のままであることを確認できます。

  • TLS のアプリケーションデータは復号しません。平文で流れるハンドシェイクの項目は全部出します。SNI、ALPN、提示・合意されたバージョン、暗号スイート、証明書のサブジェクト / 発行者 / 有効期間 / SAN。
  • HTTP/2 は平文(h2c または prior knowledge)のときだけ読めます。TLS の上を流れている場合は読めません。
  • QUIC は Initial パケットだけ復号できます。鍵が公開値から導けるためです(RFC 9001)。Handshake と 1-RTT は復号できないので、HTTP/3 のリクエスト / レスポンス本文は読めません。このページが言えるのは「これは HTTP/3 だ」と ClientHello の SNI / ALPN までで、その先はありません。
  • 未対応のプロトコルは生ペイロードを出すだけです。推測はしません。
  • v1 が解析するリンク層は Ethernet、802.1Q/QinQ VLAN、Linux SLL / SLL2、raw IP、Null/Loopback です。Frame Relay、Token Ring、FDDI のキャプチャは開けますが解析しません。その場合は空のツリーを見せずに、リンク種別の名前を画面に出します。

このツールについて

.pcap または .pcapng をドロップすると、解析に必要な 3 つのペインがそのまま出ます。No. / Time / Source / Destination / Protocol / Length / Info を並べた仮想スクロールのパケット一覧、選択したフレームの解析ツリー、そして双方向に連動する 16 進 / ASCII ペインです。ツリーのフィールドを押せば該当バイトだけが光り、16 進のバイトを押せばそれを含む最も内側のフィールドが開いて選択されます。TCP のフラグや IP のフラグメントビットのようにバイトの内側にある値は、収まっているバイトを光らせたうえでビット位置まで描きます。バイト単位の表示だけでは答えになっていないからです。

アップロードしないことは、このツールの付加機能ではなく前提です。キャプチャファイルは、それを取得したネットワークの地図そのものです——内部アドレス、DNS クエリや TLS SNI に出るホスト名、証明書のサブジェクト、User-Agent、平文プロトコルなら認証情報まで含みます。他のウェブ版ビューアはそれを他人のサーバーに送れと言ってきます。ここではタブがファイルを読み、Web Worker に渡し、メモリ上で解析します。アップロード先そのものが存在しないので、DevTools を開いたまま試せば、キャプチャを開いても通信が 1 本も出ないことを確認できます。

コンテナ層は、従来の libpcap を 4 種類のマジックすべて(リトル / ビッグエンディアン × マイクロ秒 / ナノ秒)で読み、pcapng は複数インタフェース、EPB / SPB、コメント、名前解決ブロックまで扱います。サマリーカードには形式、バイト順、バージョン、各インタフェースのリンク種別とスナップ長、パケット数、キャプチャの時間範囲、そしてコンテナが出した警告をフレーム番号つきで並べます。途中で切れたファイルや壊れたファイルでも致命傷にはしません。読めたところまでを表示し、壊れた箇所は警告として報告します。

解析はリンク層で Ethernet、802.1Q / QinQ VLAN、Linux SLL / SLL2、raw IP、Null/Loopback。その上に ARP、オプションとフラグメント再構成つきの IPv4、拡張ヘッダつきの IPv6、ICMPv4、NDP を含む ICMPv6、全フラグ・オプション・シーケンス解析つきの TCP と UDP。さらに DNS、chunked とセグメント跨ぎ再構成に対応した HTTP/1、TLS のレコードとハンドシェイク、平文 HTTP/2(HPACK 込み)、QUIC。**復号・解析しないもの**は脚注に隠さず、ツリーの上の誠実な但し書きパネルに書いてあります。

よくある質問

キャプチャはどこかに送られますか?

送られません。ファイルは FileReader で読まれ、同じタブ内の Web Worker に渡され、そこで解析されます。使用中このページは通信を 1 本も出さないので、DevTools の Network タブを開いたまま空のままであることを確認できます。このツールでは特に重要な点です。キャプチャには内部トポロジ、ホスト名、しばしば証明書まで入っていて、2 パケット読むためにそれを見ず知らずのサーバーに渡すのは割に合いません。

どのくらいの大きさまで開けますか?

256 MiB までです。解析にはファイル全体がタブのメモリに載る必要があり、それを超えるとブラウザは処理を終える前にタブごと落とす方が普通なので、固まる代わりに正直に断ります。大きいキャプチャは先に分割してください。editcap -c 200000 big.pcap part.pcap なら 20 万パケットずつに切れますし、tcpdump -r big.pcap -w small.pcap -c 100000 なら先頭 10 万パケットを取り出せます。.pcap.gz はタブ内で展開しますが、上限は展開後のサイズに対して同じです。

TLS や HTTPS の中身は復号できますか?

できませんし、できるふりもしません。セッション鍵がなければ TLS のアプリケーションデータは暗号文のままです。平文で流れているものは全部出します。レコード層、ハンドシェイク、SNI、ALPN、提示・合意されたバージョンと暗号スイート、証明書のサブジェクト / 発行者 / 有効期間 / SAN。HTTP/2 は平文(h2c または prior knowledge)のときだけ読めます。TLS の上の h2 は読めません。QUIC は Initial パケットだけが復号できます(鍵は RFC 9001 の公開値から導けるため)。したがって「これは HTTP/3 だ」と示し、ClientHello の SNI と ALPN を出すところまでで、その先はありません。

pcapng は TLS 鍵を持てますが、それは使いますか?

報告はしますが、使いません。pcapng には Decryption Secrets Block があり、SSLKEYLOGFILE を設定したブラウザで取得したキャプチャはセッション鍵をファイル内に抱えていることがあります。Wireshark ならそれで復号します。このツールはブロックを読み、鍵が何組・どの種類あるかを表示し、復号はしません。鍵を黙って持ったまま「暗号化されています」と言うのも、明らかに入っている鍵に触れないのも、どちらも不誠実です。報告してそこで止まるのが v1 の誠実な立ち位置です。

開けたのにツリーが空です。なぜ?

ほぼ確実に、このバージョンが解析しないリンク層です。v1 が扱うのは Ethernet、802.1Q / QinQ、Linux SLL / SLL2、raw IP、Null/Loopback です。Frame Relay、Token Ring、FDDI、radiotap つき 802.11、各種シリアルカプセル化は現実に存在し、そうしたファイルもここで開きます——コンテナもパケット一覧もタイムスタンプも生バイトも本物です——が、解析はフレームで止まります。画面にはリンク種別の名前と、そこで止まったことが明示されます。説明なしの空のツリーこそが、いちばん不誠実な壊れ方だからです。

Wireshark の代わりになりますか?

誰かから送られてきたキャプチャを読むだけなら、たいていは代わりになります。何もインストールせず、アップロードフォームを信用する必要もありません。ライブキャプチャでは勝負になりません。ブラウザにはパケット取得の API がないので、このツールは他の何かが記録したファイルを開くだけです。Wireshark には鍵を与えての復号、数千のディセクタにまたがるエキスパート解析、Lua による拡張もあります。このページが狙うのは「ファイルを開く・目的のパケットを見つける・バイトを読む」という日常の側で、その境界も隠しません。