// udp public void VerifyPacket2(Packet p) { Console.WriteLine(p.ToString()); EthernetPacket e = (EthernetPacket)p; Assert.AreEqual("00:14:bf:f2:ef:0a", e.SourceHwAddress); Assert.AreEqual("00:16:cf:c9:1e:29", e.DestinationHwAddress); IPPacket ip = (IPPacket)p; Assert.AreEqual(System.Net.IPAddress.Parse("172.210.164.56"), ip.SourceAddress); Assert.AreEqual(System.Net.IPAddress.Parse("192.168.1.104"), ip.DestinationAddress); Assert.AreEqual(IPPacket.IPVersions.IPv4, ip.IPVersion); Assert.AreEqual(IPProtocol.IPProtocolType.UDP, ip.IPProtocol); Assert.AreEqual(112, ip.TimeToLive); Assert.AreEqual(0xe0a2, ip.ComputeIPChecksum()); Assert.AreEqual(1171483602, ip.Timeval.Seconds); Assert.AreEqual(578641.000, ip.Timeval.MicroSeconds); UDPPacket udp = (UDPPacket)(p); Assert.AreEqual(52886, udp.SourcePort); Assert.AreEqual(56924, udp.DestinationPort); Assert.AreEqual(71, udp.UDPLength); Assert.AreEqual(0xe0a2, udp.ComputeIPChecksum()); Assert.AreEqual(0xc8b8, udp.UDPChecksum); Assert.AreEqual(0xc8b8, udp.Checksum); }
// tcp public void VerifyPacket1(Packet p) { Console.WriteLine(p.ToString()); EthernetPacket e = (EthernetPacket)p; Assert.AreEqual("00:16:cf:c9:1e:29", e.SourceHwAddress); Assert.AreEqual("00:14:bf:f2:ef:0a", e.DestinationHwAddress); IPPacket ip = (IPPacket)p; Assert.AreEqual(System.Net.IPAddress.Parse("192.168.1.104"), ip.SourceAddress); Assert.AreEqual(System.Net.IPAddress.Parse("86.42.196.13"), ip.DestinationAddress); Assert.AreEqual(64, ip.TimeToLive); Assert.AreEqual(0x2ff4, ip.ComputeIPChecksum()); Assert.AreEqual(1171483600, ip.Timeval.Seconds); Assert.AreEqual(125234.000, ip.Timeval.MicroSeconds); TCPPacket tcp = (TCPPacket)(p); Assert.AreEqual(56925, tcp.SourcePort); Assert.AreEqual(50199, tcp.DestinationPort); Assert.IsTrue(tcp.Ack); Assert.IsTrue(tcp.Psh); Assert.AreEqual(16666, tcp.WindowSize); Assert.AreEqual(0x2ff4, tcp.ComputeIPChecksum()); Assert.AreEqual(0x9b02, tcp.ComputeTCPChecksum()); Assert.AreEqual(0x9b02, tcp.Checksum); Assert.IsTrue(tcp.ValidTCPChecksum); }
// tcp public void VerifyPacket0(Packet p) { Console.WriteLine(p.ToString()); EthernetPacket e = (EthernetPacket)p; Assert.AreEqual(PhysicalAddress.Parse("00-13-10-03-71-47"), e.SourceHwAddress); Assert.AreEqual(PhysicalAddress.Parse("00-E0-4C-E5-73-AD"), e.DestinationHwAddress); IPPacket ip = (IPPacket)p; Assert.AreEqual(System.Net.IPAddress.Parse("82.165.240.134"), ip.SourceAddress); Assert.AreEqual(System.Net.IPAddress.Parse("192.168.1.221"), ip.DestinationAddress); Assert.AreEqual(IPPacket.IPVersions.IPv4, ip.IPVersion); Assert.AreEqual(IPProtocol.IPProtocolType.TCP, ip.IPProtocol); Assert.AreEqual(254, ip.TimeToLive); Assert.AreEqual(0x0df8, ip.ComputeIPChecksum()); Assert.AreEqual(1176685346, ip.Timeval.Seconds); Assert.AreEqual(885259.000, ip.Timeval.MicroSeconds); TCPPacket tcp = (TCPPacket)(p); Assert.AreEqual(80, tcp.SourcePort); Assert.AreEqual(4324, tcp.DestinationPort); Assert.IsTrue(tcp.Ack); Assert.AreEqual(3536, tcp.WindowSize); Assert.AreEqual(0x0df8, tcp.ComputeIPChecksum()); Assert.AreEqual(0xc835, tcp.ComputeTCPChecksum()); Assert.AreEqual(0xc835, tcp.Checksum); Assert.IsTrue(tcp.ValidTCPChecksum); }
private static void device_PcapOnPacketArrival(object sender, PcapCaptureEventArgs e) { if (e.Packet is EthernetPacket) { EthernetPacket eth = ((EthernetPacket)e.Packet); Console.WriteLine("Original Eth packet: " + eth.ToColoredString(false)); //Manipulate ethernet parameters eth.SourceHwAddress = PhysicalAddress.Parse("00-11-22-33-44-55"); eth.DestinationHwAddress = PhysicalAddress.Parse("00-99-88-77-66-55"); if (e.Packet is IPPacket) { IPPacket ip = ((IPPacket)e.Packet); Console.WriteLine("Original IP packet: " + ip.ToColoredString(false)); //manipulate IP parameters ip.SourceAddress = System.Net.IPAddress.Parse("1.2.3.4"); ip.DestinationAddress = System.Net.IPAddress.Parse("44.33.22.11"); ip.TimeToLive = 11; //Recalculate the IP checksum ip.ComputeIPChecksum(); if (ip is TCPPacket) { TCPPacket tcp = ((TCPPacket)ip); Console.WriteLine("Original TCP packet: " + tcp.ToColoredString(false)); //manipulate TCP parameters tcp.SourcePort = 9999; tcp.DestinationPort = 8888; tcp.Syn = !tcp.Syn; tcp.Fin = !tcp.Fin; tcp.Ack = !tcp.Ack; tcp.WindowSize = 500; tcp.AcknowledgmentNumber = 800; tcp.SequenceNumber = 800; //Recalculate the TCP checksum tcp.ComputeTCPChecksum(); } if (ip is UDPPacket) { UDPPacket udp = ((UDPPacket)ip); Console.WriteLine("Original UDP packet: " + udp.ToColoredString(false)); //manipulate UDP parameters udp.SourcePort = 9999; udp.DestinationPort = 8888; //Recalculate the UDP checksum udp.ComputeUDPChecksum(); } } Console.WriteLine("Manipulated Eth packet: " + eth.ToColoredString(false)); } }
private static void device_PcapOnPacketArrival(object sender, Tamir.IPLib.Packets.Packet packet) { if (packet is EthernetPacket) { EthernetPacket eth = ((EthernetPacket)packet); Console.WriteLine("Original packet: " + eth.ToColoredString(false)); //Manipulate ethernet parameters eth.SourceHwAddress = "00:11:22:33:44:55"; eth.DestinationHwAddress = "00:99:88:77:66:55"; if (packet is IPPacket) { IPPacket ip = ((IPPacket)packet); //manipulate IP parameters ip.SourceAddress = "1.2.3.4"; ip.DestinationAddress = "44.33.22.11"; ip.TimeToLive = 11; //Recalculate the IP checksum ip.ComputeIPChecksum(); if (ip is TCPPacket) { TCPPacket tcp = ((TCPPacket)ip); //manipulate TCP parameters tcp.SourcePort = 9999; tcp.DestinationPort = 8888; tcp.Syn = !tcp.Syn; tcp.Fin = !tcp.Fin; tcp.Ack = !tcp.Ack; tcp.WindowSize = 500; tcp.AcknowledgementNumber = 800; tcp.SequenceNumber = 800; //Recalculate the TCP checksum tcp.ComputeTCPChecksum(); } if (ip is UDPPacket) { UDPPacket udp = ((UDPPacket)ip); //manipulate UDP parameters udp.SourcePort = 9999; udp.DestinationPort = 8888; //Recalculate the UDP checksum udp.ComputeUDPChecksum(); } } Console.WriteLine("Manipulated packet: " + eth.ToColoredString(false)); } }
// dns public void VerifyPacket3(Packet p) { Console.WriteLine(p.ToString()); EthernetPacket e = (EthernetPacket)p; Assert.AreEqual("00:16:cf:c9:1e:29", e.SourceHwAddress); Assert.AreEqual("00:14:bf:f2:ef:0a", e.DestinationHwAddress); IPPacket ip = (IPPacket)p; Assert.AreEqual(System.Net.IPAddress.Parse("192.168.1.172"), ip.SourceAddress); Assert.AreEqual(System.Net.IPAddress.Parse("66.189.0.29"), ip.DestinationAddress); Assert.AreEqual(IPProtocol.IPProtocolType.UDP, ip.IPProtocol); Assert.AreEqual(0x7988, ip.ComputeIPChecksum()); UDPPacket udp = (UDPPacket)(p); Assert.AreEqual(3619, udp.SourcePort); Assert.AreEqual(53, udp.DestinationPort); Assert.AreEqual(47, udp.UDPLength); Assert.AreEqual(0x7988, udp.ComputeIPChecksum()); Assert.AreEqual(0xbe2d, udp.UDPChecksum); Assert.AreEqual(0xbe2d, udp.Checksum); }