2009-02-12 47 views
2

有没有办法只捕获数据层并忽略wireshark中的上层?如果没有,是否有不同的数据包转储实用程序可以做到这一点?每个数据包优先1个文件!wireshark:仅捕获数据层

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

这是编程相关...!我真正想要做的就是比较所有的数据报,以便开始理解第三方编码/协议。理想情况下,最好的办法是使用十六进制比较工具来比较多个文件!

+0

Stackoverflow用于提出编程问题。在IT版本的SO准备就绪之前,您可以在此处列出的其中一个网站找到更多帮助:http://stackoverflow.com/questions/321618/where-can-i-ask-questions-that-arent-编程问题 – EBGreen 2009-02-12 16:31:55

+0

这是一个**编程相关的问题,你只是假设它是IT独占的。你知道他们说什么假设..... – Zombies 2009-02-12 16:38:26

回答

5

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

0

在Wireshark中有一个限制捕获大小的函数,但似乎68bytes是最小的值。有一些选项可以在一定数量的千兆,兆,千兆字节之后启动新文件,但最小的也是1千字节,因此可能无用。

我会建议看看pcap库和滚动你自己的。我在过去使用PERL Net :: Pcap库完成了这项工作,但它也可以轻松地在其他语言中完成。

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

0

使用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 

不完美解码,但它是我所需要的足够好了,我希望它可以帮助一些之一。

相关问题