代码之家  ›  专栏  ›  技术社区  ›  Zombies

wireshark:仅捕获数据层

  •  2
  • Zombies  · 技术社区  · 16 年前

    有没有一种方法可以只捕获数据层而忽略wireshark中的上层?如果没有,是否有其他包转储实用程序可以做到这一点?最好每包一个文件!

    我要寻找的是:一个只将数据(有效负载)层转储到文件的实用程序。

    这是编程相关的…!我真正想做的是比较所有数据报,以便开始了解第三方编码/协议。理想情况下,最好是一个比较多个文件的十六进制比较实用程序!

    3 回复  |  直到 9 年前
        1
  •  5
  •   George    16 年前

    您应该尝试右键单击一个包并选择“跟随TCP流”。然后您可以将TCP通信保存到一个原始文件中,以便进一步处理。这样你就不会得到所有的TCP/IP协议垃圾。

        2
  •  0
  •   Jamie    16 年前

    wireshark中有一个函数可以限制捕获大小,但68字节似乎是最小的值。有一些选项可以在一定数量的kilo、mega、gigabytes之后启动新文件,但是最小的是1-kilobyte,所以可能不有用。

    我建议你看看PCAP库,自己翻阅。我以前使用perl-net::pcap库来完成这项工作,但也可以很容易地用其他语言来完成。

    如果您有可用的Unix/Linux,那么也可以查看tcpdump。您可以限制用-s捕获的数据量。例如“-s 14”通常会得到以太网头,我假设这就是您所说的数据链路层。还可以通过使用-c指定文件大小来控制创建文件的频率。因此,理论上,如果将文件大小设置为捕获大小,则每个数据包将获得一个文件。

        3
  •  0
  •   Tiago Lopo    9 年前

    使用 tshark 我只能通过解码为telnet和打印字段telnet.data来打印数据。

    tshark -r file.pcap -d tcp.port==80,telnet -T fields -e telnet.data
    
    
    
    GET /test.js HTTP/1.1\x0d\x0a,User-Agent: curl/7.35.0\x0d\x0a,Host: 127.0.0.1\x0d\x0a,Accept: */*\x0d\x0a,\x0d\x0a
    
    HTTP/1.1 404 Not Found\x0d\x0a,Server: nginx/1.4.6 (Ubuntu)\x0d\x0a,Date: Fri, 15 Jan 2016 11:32:58 GMT\x0d\x0a,Content-Type: text/html\x0d\x0a,Content-Length: 177\x0d\x0a,Connection: keep-alive\x0d\x0a,\x0d\x0a,<html>\x0d\x0a,<head><title>404 Not Found</title></head>\x0d\x0a,<body bgcolor=\"white\">\x0d\x0a,<center><h1>404 Not Found</h1></center>\x0d\x0a,<hr><center>nginx/1.4.6 (Ubuntu)</center>\x0d\x0a,</body>\x0d\x0a,</html>\x0d\x0a
    

    不是很完美,但它足以满足我的需要,我希望它能帮助一些人。