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));
            }
        }
        public void OnPacketArrival(object sender, PcapCaptureEventArgs e)
        {
            if (e.Packet.Data.Length > 1)
            {
                BattleNetPacketID id = (BattleNetPacketID)e.Packet.Data[1];

                if ((int)id < Events.Length)
                {
                    Events[(int)id].DoEvent(sender, e);
                }
            }
        }
        public void OnPacket(object sender, PcapCaptureEventArgs e)
        {
            ChatMessagePacket packet = new ChatMessagePacket();
            PacketReader reader = new PacketReader(e.Packet.Data);

            reader.ReadHeader();
            packet.MessageID     = reader.MessageID;
            packet.MessageLength = reader.MessageLength;
            packet.EventID       = (ChatEventID)reader.ReadDWord();
            packet.Flags         = reader.ReadDWord();
            packet.Ping          = reader.ReadDWord();
            packet.IP            = reader.ReadDWord();
            packet.AcctNumber    = reader.ReadDWord();
            packet.RegAuth       = reader.ReadDWord();
            packet.Username      = reader.ReadString();
            packet.Text          = reader.ReadString();

            Events[(int)packet.EventID].DoEvent(packet, e);
        }
 public void DoEvent(ChatMessagePacket packet, PcapCaptureEventArgs args)
 {
     if (Event != null)
         Event(packet, args);
 }
Example #5
0
 private void device_OnPacketArrival(object sender, PcapCaptureEventArgs e)
 {
     DisplayPacketData(e.Packet);
 }
Example #6
0
 // This handles every incoming packet
 private void PacketHandler(object sender, PcapCaptureEventArgs e)
 {
 }
 public void DoEvent(Object sender, PcapCaptureEventArgs args)
 {
     if (Event != null)
         Event(sender, args);
 }