libpcapを介してHTTPデータをスニッフィングし、TCPペイロードを処理した後にすべてのhttpコンテンツ(ヘッダー+ペイロード)を取得しようとしています。
httpスニファ(または他のアプリケーションレベルのスニファ)の作成での私の議論によると、断片化による問題に直面しています-完全なHTTPパケットを取得するには、ストリーム全体を再構築(またはデフラグ)する必要があります。これが私が行う場所です。助けが要る。
期待してくれてありがとう!!
libpcapを介してHTTPデータをスニッフィングし、TCPペイロードを処理した後にすべてのhttpコンテンツ(ヘッダー+ペイロード)を取得しようとしています。
httpスニファ(または他のアプリケーションレベルのスニファ)の作成での私の議論によると、断片化による問題に直面しています-完全なHTTPパケットを取得するには、ストリーム全体を再構築(またはデフラグ)する必要があります。これが私が行う場所です。助けが要る。
期待してくれてありがとう!!
とても簡単です。pcapから取得したイーサネットフレームを取得し、それらからIPパケットを抽出して、フラグメント化されたものを再アセンブルするだけです。次に、重複データを破棄することに注意しながら、シーケンス番号に従ってIPパケットからTCPセグメントを並べ替えます。次に、ストリームをHTTPストリームとして処理します。もちろん、HTTPはパケットで提供されません。これはアプリケーション層プロトコルですが、他のすべての作業を実行すれば、これは明らかになると確信しています。データが正しいことを確認するために、IPヘッダーとTCPセグメントをチェックサムするためにこれらすべてのことを行うときは、注意してください。また、pcapがパケットを見逃した場合は、これを適切に処理するようにしてください。
Linux TCPスタックに沿って支援するために、カーネルで発生するこのプロセスへの簡潔な参照を提供する必要があります。
pcapファイルからhttpコンテンツを再構築するための最良のツールは、justnifferです。これは、IPフラグメンテーションとtcpパケットの再調整にLinuxカーネルのprtionを使用します。
pcapファイルに含まれるデータを再構築するための素晴らしいツールはXplicoです:http ://www.xplico.org
PCapPlusPlusには、トラフィックをスニッフィングし、各ストリームを個別のテキストファイルに出力するコンソールプログラムTCPReassemblyの例が含まれています。多くのオプションの中から、どのストリームをリッスンするかを指示できます。
ドキュメントには、さらに多くのオプションを備えたLinuxアプリtcpflowについても記載されています。