-
Notifications
You must be signed in to change notification settings - Fork 166
Open
Description
I can not find any sample for creating a TCP packet with options and payload. Whatever I did resulted in the corrupted packet. Is there any sample?
public static IPPacket SimpleTcp()
{
var options = Array.Empty<byte>();
var payloadData = new byte[20];
// ICMP echo request
var buffer = new byte[20 + options.Length + payloadData.Length];
var tcpPacket = new TcpPacket(new ByteArraySegment(buffer)) {
SourcePort = 10,
DestinationPort = 20,
Options = options,
DataOffset = 5 + options.Length / 4,
PayloadData = payloadData
};
tcpPacket.UpdateCalculatedValues();
// IP packet
var ipPacket = new IPv4Packet(IPAddress.Parse("1.1.1.1"), IPAddress.Parse("1.1.1.2")) {
Protocol = ProtocolType.Tcp,
PayloadPacket = tcpPacket
};
ipPacket.UpdateCalculatedValues();
var clonePacket = Packet.ParsePacket(LinkLayers.Raw, ipPacket.Bytes).Extract<IPPacket>();
Console.WriteLine(clonePacket);
// clonePacket is completely corrupted
return clonePacket;
}
}Metadata
Metadata
Assignees
Labels
No labels