0

私は、sharppcap を使用して TCP パケットをキャプチャしました。TCP パケットから HTTP パケットを再構築したいのですが、方法がわかりません。TCP データで HTTP パケットの開始を見つけることができる場所を読みました...次のコードを使用して、byte[] TCP データを文字列に変換しようとしました: string s = System.Text.Encoding.UTF8.GetString(tcp_pack.Data); しかし、文字列は読み取れません。メモ帳で開くバイナリ ファイルのようなものです。データが暗号化されているか、コードが間違っているためですか? TCP パケットから HTTP パケットを再構築するにはどうすればよいですか?

4

2 に答える 2

0

「Encoding.BigEndianUnicode.GetString(tcp_pack.Data)」を試してください

于 2010-04-15T09:30:50.363 に答える
0

メモリ内の TCP セッションを再構築する必要があるため、これを行う簡単な方法はありません。

基本的に、送信されるメッセージが 1 つのパケットよりも大きい場合は、複数のパケットに分割されます。したがって、これらのパケットをキャプチャし、正しい順序で並べ替え、データを手動で再構築する必要があります。

メッセージが短く単純で、複数の部分に分割されていない場合は、ペイロードの形式を確認する必要があります。最初に ASCII でデコードしてみてください。

于 2010-11-10T23:26:38.030 に答える