1

Pcap.net を使用して、Wireshark ファイル (pcap 拡張子) を含む送信バッファーを使用してパケットを送信していますが、再生中または再生前にパケットの IP を変更する方法はありますか? ここでは、送信前にファイルからのパケットでバッファーを埋めます。

int numPackets = 0;
Packet packet;
while (inputCommunicator.ReceivePacket(out packet) == PacketCommunicatorReceiveResult.Ok)
{
    ILayer layer = packet.Ethernet.ExtractLayer(); --> new layer
    sendBuffer.Enqueue(packet);
    ++numPackets;
}
4

1 に答える 1

1

答えはイエスです。

Pcap.Net フォーラムでの議論が役立つと思います。

一般に、関連するすべてのレイヤー (イーサネット、IPv4、および IPv4 ペイロード) を抽出し、IPv4 のレイヤー IP を変更して、新しいパケットを作成する必要があります。

IPv4 チェックサムが正しいことを確認したい場合は、IPv4 層のチェックサム フィールドを null に設定する必要があります。

TCP または UDP があり、それらのチェックサムが正しいことを確認したい場合は、関連するトランスポート層を抽出し、そのチェックサム フィールドを null に変更して、イーサネット、IPv4、トランスポート、およびトランスポート ペイロード層からパケットを構築する必要があります。

これが役立つことを願っています。

于 2012-03-30T17:15:32.403 に答える