我試圖通過libpcap嗅探HTTP數據,並在處理TCP有效負載後獲取所有http內容(頭+負載)。重構PCAP嗅探數據
根據我在Writing an http sniffer (or any other application level sniffer)的討論,我面臨着由於碎片而導致的問題 - 我需要重建整個流(或進行碎片整理)以獲得完整的HTTP數據包,這是我需要一些幫助的地方。
感謝預期!
我試圖通過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
爲了重構包含在PCAP文件一個奇妙的工具中的數據是Xplico:http://www.xplico.org
從pcap文件重新構建http內容的最佳工具是justniffer。它使用Linux內核的prtion進行IP分片和TCP分組重新處理。
謝謝!我明白了:) – Ishi 2010-05-27 12:27:53