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); }
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 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); }