9

tsharkオプションなどを使用して、(パケット内の)すべてのフィールドに出力を取得することは可能-T fieldsですか?

たとえば、パケット/再構成のすべてのフィールドについて、次のようなものが必要です。

eth.src:f2:3c:91:96:fd:09,ip.src:1.2.3.4,tcp.dst_port:80,http.request.uri:/index.html

\xff(値にコンマが含まれている場合に解析を改善するために、コンマをaに置き換えることができます。)

オプションがあること-eはわかっていますが、コマンドラインで可能なすべてのフィールドを入力する必要があるようです。その上、各パケットで使用されるフィールドのごく一部のみが使用されるため、大量のデータを解析する必要があります。

現在、このオプションを使用して解析する予定ですが、理想的には、「人間が読める形式」の代わりに、次のtshark -Vようなマシンスタイルの用語を使用したいと考えています。http.request.uri

Hypertext Transfer Protocol
    GET /main.php HTTP/1.1\r\n
        [Expert Info (Chat/Sequence): GET /main.php HTTP/1.1\r\n]
            [Message: GET /main.php HTTP/1.1\r\n]
            [Severity level: Chat]
            [Group: Sequence]
        Request Method: GET
        Request URI: /main.php
4

1 に答える 1

15

偶然見つけた:

tshark -T pdml

これはまさに私が必要としているものです:

<packet>
  <proto name="geninfo" pos="0" showname="General information" size="173">
    <field name="num" pos="0" show="323" showname="Number" value="143" size="173"/>
    <field name="len" pos="0" show="173" showname="Frame Length" value="ad" size="173"/>
    <field name="caplen" pos="0" show="173" showname="Captured Length" value="ad" size="173"/>
    <field name="timestamp" pos="0" show="Aug  7, 2011 16:16:13.579504000 EST" showname="Captured Time" value="1312697773.579504000" size="173"/>
  </proto>
  <proto name="frame" showname="Frame 323: 173 bytes on wire (1384 bits), 173 bytes captured (1384 bits)" size="173" pos="0">
    <field name="frame.time" showname="Arrival Time: Aug  7, 2011 16:16:13.579504000 EST" size="0" pos="0" show="Aug  7, 2011 16:16:13.579504000"/>
    ... etc.

これには、Wiresharkフィルター名と、パケットに含まれるすべてのフィールドが含まれます。

更新:これは非常に遅く、ハッキングするtshark.cので、の代わりに印刷-Vしてトリックを実行します。機会があれば、おそらくこれをオプションとして提供する必要があります。abbrevnameheader_field_info *hfinfo;

于 2013-03-06T06:38:16.793 に答える