Beispiel #1
0
///  заполняем данные в  грид и в XML фаиле

        private void OnAddRowIP(byte[] byteData, int nReceived)
        {
            IPHeader ipHeader = new IPHeader(byteData, nReceived);

            countpackets++;

            // выбираем правило записи

            switch (ipHeader.ProtocolType)
            {
            case Protocol.TCP:

                TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength);

                // считываем из потока данные в xml
                XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(),
                             ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification,
                             ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "",
                             tcpHeader.SourcePort, tcpHeader.DestinationPort, tcpHeader.SequenceNumber, tcpHeader.AcknowledgementNumber,
                             tcpHeader.HeaderLength, tcpHeader.Flags, tcpHeader.WindowSize, tcpHeader.Checksum, tcpHeader.UrgentPointer,
                             tcpHeader.Data);

                if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53")
                {
                    //    AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
                    //    dgvParamProt.Invoke(RowDNSProtocol, new object[] { tcpHeader.Data, (int)tcpHeader.MessageLength });
                }

                break;

            case Protocol.UDP:

                UDPHeader udpHeader = new UDPHeader(ipHeader.Data, (int)ipHeader.MessageLength);

                // считываем из потока данные в xml
                XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(),
                             ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification,
                             ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "",
                             udpHeader.SourcePort, udpHeader.DestinationPort, udpHeader.Length, udpHeader.Checksum, udpHeader.Data);

                if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53")
                {
                    //    AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
                    //    dgvParamProt.Invoke(RowDNSProtocol, new object[] { udpHeader.Data, Convert.ToInt32(udpHeader.Length) - 8 });
                }

                break;

            case Protocol.Unknown:
                break;
            }

            AddPacketToGrid();
        }
Beispiel #2
0
/// Парсим полученный массив байтов в читабельный вид
        private void ParseData(byte[] byteData, int nReceived)
        {
            IPHeader ipHeader  = new IPHeader(byteData, nReceived);
            AddRowIP AddRowIP2 = new AddRowIP(OnAddRowIP);

            dgvPackets.Invoke(AddRowIP2, new object[] { byteData, nReceived });

            //switch (ipHeader.ProtocolType)
            //{
            //    case Protocol.TCP:

            //        TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength);
            //        AddRowTCPProtocol RowTCPProtocol = new AddRowTCPProtocol(MakeTCP);
            //        dgvParamProt.Invoke(RowTCPProtocol, new object[] { tcpHeader });
            //      if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53")
            //        {
            //            AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
            //            dgvParamProt.Invoke(RowDNSProtocol, new object[] { tcpHeader.Data, (int)tcpHeader.MessageLength });
            //        }

            //        break;

            //    case Protocol.UDP:

            //        UDPHeader udpHeader = new UDPHeader(ipHeader.Data,              //IPHeader.Data stores the data being
            //            //carried by the IP datagram
            //                                           (int)ipHeader.MessageLength);//Length of the data field

            //        AddRowUDPProtocol RowUDPProtocol = new AddRowUDPProtocol(MakeUDP);
            //        dgvParamProt.Invoke(RowUDPProtocol, new object[] { udpHeader });


            //        //If the port is equal to 53 then the underlying protocol is DNS
            //        //Note: DNS can use either TCP or UDP thats why the check is done twice
            //       if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53")
            //       {
            //           AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
            //           dgvParamProt.Invoke(RowDNSProtocol, new object[] { udpHeader.Data, Convert.ToInt32(udpHeader.Length) - 8 });
            //        }

            //        break;

            //    case Protocol.Unknown:
            //        break;
            //}
        }
Beispiel #3
0
        /// Парсим полученный массив байтов в читабельный вид 
        private void ParseData(byte[] byteData, int nReceived)
        {
            IPHeader ipHeader = new IPHeader(byteData, nReceived);
            AddRowIP AddRowIP2 = new AddRowIP(OnAddRowIP);
            dgvPackets.Invoke(AddRowIP2, new object[] {byteData, nReceived });

            //switch (ipHeader.ProtocolType)
            //{
            //    case Protocol.TCP:

            //        TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength);
            //        AddRowTCPProtocol RowTCPProtocol = new AddRowTCPProtocol(MakeTCP);
            //        dgvParamProt.Invoke(RowTCPProtocol, new object[] { tcpHeader });
            //      if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53")
            //        {
            //            AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
            //            dgvParamProt.Invoke(RowDNSProtocol, new object[] { tcpHeader.Data, (int)tcpHeader.MessageLength });
            //        }

            //        break;

            //    case Protocol.UDP:

            //        UDPHeader udpHeader = new UDPHeader(ipHeader.Data,              //IPHeader.Data stores the data being
            //            //carried by the IP datagram
            //                                           (int)ipHeader.MessageLength);//Length of the data field

            //        AddRowUDPProtocol RowUDPProtocol = new AddRowUDPProtocol(MakeUDP);
            //        dgvParamProt.Invoke(RowUDPProtocol, new object[] { udpHeader });

            //        //If the port is equal to 53 then the underlying protocol is DNS
            //        //Note: DNS can use either TCP or UDP thats why the check is done twice
            //       if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53")
            //       {
            //           AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
            //           dgvParamProt.Invoke(RowDNSProtocol, new object[] { udpHeader.Data, Convert.ToInt32(udpHeader.Length) - 8 });
            //        }

            //        break;

            //    case Protocol.Unknown:
            //        break;
            //}
        }
Beispiel #4
0
        ///  заполняем данные в  грид и в XML фаиле
        private void OnAddRowIP(byte[] byteData, int nReceived)
        {
            IPHeader ipHeader = new IPHeader(byteData, nReceived);
            countpackets++;

            // выбираем правило записи

            switch (ipHeader.ProtocolType)
            {
                case Protocol.TCP:

                    TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, ipHeader.MessageLength);

                    // считываем из потока данные в xml
                    XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(),
                                 ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification,
                                 ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "",
                                 tcpHeader.SourcePort, tcpHeader.DestinationPort, tcpHeader.SequenceNumber, tcpHeader.AcknowledgementNumber,
                                 tcpHeader.HeaderLength, tcpHeader.Flags, tcpHeader.WindowSize, tcpHeader.Checksum, tcpHeader.UrgentPointer,
                                 tcpHeader.Data);

                    if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53")
                    {
                    //    AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
                    //    dgvParamProt.Invoke(RowDNSProtocol, new object[] { tcpHeader.Data, (int)tcpHeader.MessageLength });
                    }

                    break;

                case Protocol.UDP:

                    UDPHeader udpHeader = new UDPHeader(ipHeader.Data,(int)ipHeader.MessageLength);

                    // считываем из потока данные в xml
                    XmlAddPacket(countpackets.ToString(), ipHeader.SourceAddress.ToString(), ipHeader.DestinationAddress.ToString(),
                                 ipHeader.Version, ipHeader.HeaderLength, ipHeader.DifferentiatedServices, ipHeader.TotalLength, ipHeader.Identification,
                                 ipHeader.Flags, ipHeader.FragmentationOffset, ipHeader.TTL, ipHeader.ProtocolType.ToString(), ipHeader.Checksum, "",
                                 udpHeader.SourcePort, udpHeader.DestinationPort, udpHeader.Length, udpHeader.Checksum, udpHeader.Data);

                    if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53")
                    {
                    //    AddRowDNSProtocol RowDNSProtocol = new AddRowDNSProtocol(MakeDNS);
                    //    dgvParamProt.Invoke(RowDNSProtocol, new object[] { udpHeader.Data, Convert.ToInt32(udpHeader.Length) - 8 });
                    }

                    break;

                case Protocol.Unknown:
                    break;
            }

            AddPacketToGrid();
        }