public void MergePacket(MetinPacket toMerge)
        {
            Merged = true;
            List <byte> merged = new List <byte>();

            merged.AddRange(Data);
            merged.AddRange(toMerge.Data);
            Data   = merged.ToArray();
            Length = Data.Length;
            DecryptPacket();
            PacketString = string.Format("{0} | ID: {1} - {3} | Len: {2} | GuessedType : {4}", Route, Id.ToString("X2"),
                                         Length.ToString("D4"), Id.ToString("D3"), Type);
        }
Esempio n. 2
0
        private void CurrentDevice_OnPacketArrival(object sender, CaptureEventArgs e)
        {
            MetinPacket p =
                new MetinPacket(TcpPacket.GetEncapsulated(Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data)),
                                _authPort, _gamePort, ProcessTxt.Text);

            if (_needToMerge)
            {
                if (p.Length > 0 && (p.SourcePort == _mergingPacket.SourcePort))
                    _mergingPacket.MergePacket(p);
                else
                {
                    if (!(!p.PSH && pshChk.Checked))
                        PacketList.Items.Add(p);
                    return;
                }

                if (p.Length != 1452)
                    _needToMerge = false;

                return;
            }

            if (p.Length == 1452)
            {
                _needToMerge = true;
                _mergingPacket = p;
                return;
            }

            if (_mergingPacket != null && p.Length != 0)
            {
                PacketList.Items.Add(_mergingPacket);
                _mergingPacket = null;
            }

            if (!(!p.PSH && pshChk.Checked))
                PacketList.Items.Add(p);
        }
 public void AddRange(MetinPacket[] mPackets)
 {
     foreach (MetinPacket mPacket in mPackets)
         Add(mPacket);
 }
 public void Add(MetinPacket mPacket)
 {
     _mPackets.Add(mPacket);
 }
 public void Add(MetinPacket mPacket)
 {
     _mPackets.Add(mPacket);
 }
 public void MergePacket(MetinPacket toMerge)
 {
     Merged = true;
     List<byte> merged = new List<byte>();
     merged.AddRange(Data);
     merged.AddRange(toMerge.Data);
     Data = merged.ToArray();
     Length = Data.Length;
     DecryptPacket();
     PacketString = string.Format("{0} | ID: {1} - {3} | Len: {2} | GuessedType : {4}", Route, Id.ToString("X2"),
                                  Length.ToString("D4"), Id.ToString("D3"), Type);
 }