从PCAP嗅探重建数据

Ish*_*shi 12 defragmentation http sniffer libpcap

我试图通过libpcap嗅探HTTP数据,并在处理TCP有效负载后获取所有http内容(标头+有效负载).

根据我在编写一个http嗅探器(或任何其他应用程序级嗅探器)的讨论,我面临着由于碎片问题 - 我需要重建整个流(或对其进行碎片整理)以获得完整的HTTP数据包,这就是我的地方需要一些帮助.

在期待中感谢!!

Whi*_*ind 9

这真的很简单.只需从pcap获取以太网帧并从中提取IP数据包,重新组合任何碎片.然后,根据序列号重新排序IP数据包中的TCP段,注意您丢弃任何重复数据.然后,将流处理为HTTP流.当然,HTTP不包含在数据包中; 它是一个应用层协议,但我相信一旦你完成了所有这些其他工作,这将是显而易见的.在执行所有这些操作时要注意校验IP标头和TCP段,以确保您的数据正确无误.此外,如果pcap碰巧丢失任何数据包,请确保您正确处理此问题.

为了帮助您,Linux TCP堆栈应该在内核中提供对此过程的简明引用.


Joe*_*erg 5

您可以使用tcptrace重新组合pcap文件,而不是重新组合您自己的流.我相信-e会这样做.

一旦将应用程序层数据整合在一起,就可以应用简单的HTTP头解析....来自诸如http://github.com/ry/http-parser等库的Perhps