应用程序级别pcap转储

时间:2013-06-28 14:13:55

标签: pcap

是否可以将tcp recv / send的内容转储到pcap文件,然后让wireshark对此进行分析。我想这样做是因为我想记录应用程序对话以调试问题,但我不想编写自己的解析器(wireshark已经支持它),并且不一定信任应用程序正确解析帧。

1 个答案:

答案 0 :(得分:2)

  

以下内容基于我在Windows上专门完成的工作。   我不能说这些可能适用于其他系统的程度如何。   FWIW,我建议编辑你的问题(或至少标记它)   更清楚地了解您的目标操作系统。

如果您正在讨论将直接从TCP客户端收到的内容写入pcap文件,答案是否定的。 pcap file format至少需要一些网络标头,例如IP和TCP标头,以使文件有效。

我看到了四种方法。

  1. 您可以为套接字中的每次读取伪造这些标头。这不一定需要大量的工作,但需要了解网络标题,传输标题和有效负载(即您的数据)之间的关系,以便一切正常工作。如果您只对Wireshark中的有效负载分析感兴趣,这可能是一种有效的方法。但是,如果您想在Wireshark中进行的分析是网络分析(即包含网络标头的分析),那么您将需要避免使用此选项并找出如何直接捕获网络标头。
  2. 您可以使用raw socket来捕获网络层的网络流量。这将为您提供IP数据包 - IP标头,TCP标头和有效负载。您可以使用LINKTYPE_RAW作为链接层标头类型将其转储到pcap文件,Wireshark将正确读取该文件。我以前用过这种方法。
  3. 第三种方法是使用WinPcap来收集您的数据。这是Wireshark在幕后收集数据所使用的软件,这是我现在使用的方法。如果您安装了Wireshark,则WinPcap也已安装。 WinPcap有一个简单的API,包含许多用于打开接口,收集数据并将其转储到pcap或pcap-ng文件的示例。
  4. 第四个选项是最简单的......只需使用Wireshark与您的应用程序同时收集数据。
  5. HTH。