重构PCAP嗅探数据
我试图通过libpcap嗅探HTTP数据,并在处理TCP有效负载后获取所有http内容(头+负载)。重构PCAP嗅探数据
根据我在Writing an http sniffer (or any other application level sniffer)的讨论,我面临着由于碎片而导致的问题 - 我需要重建整个流(或进行碎片整理)以获得完整的HTTP数据包,这是我需要一些帮助的地方。
感谢预期!
这真的很简单。只需从pcap获得的以太网帧,并从它们中提取IP数据包,重新组装所有碎片。然后,根据序列号从IP数据包重新排列TCP段,注意丢弃任何重复的数据。然后,将该流处理为HTTP流。当然,HTTP不会进入数据包;它是一个应用层协议,但是我相信,一旦你完成了所有这些其他工作,这将是显而易见的。在你做所有这些事情时,请注意IP头和TCP段的校验和,以确保你的数据是正确的。另外,如果pcap发生错过任何数据包,请确保您正确处理此问题。
为了帮助你前进的Linux TCP stack,因为它在内核中出现应提供简明参考这一进程。
而不是重新组装流youself,您可以使用tcptrace重新组装PCAP文件。我相信-e
会做到这一点。
一旦你有一体的应用层数据,可以应用简单的HTTP报头解析.... Perhps从文库例如http://github.com/ry/http-parser
谢谢乔......如果我自己做不到,我会尝试这些工具。再次感谢 ! – Ishi 2010-05-27 12:29:37
谢谢!我明白了:) – Ishi 2010-05-27 12:27:53