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); } }
private void PacketList_SelectedIndexChanged(object sender, EventArgs e) { PacketDetailTxt.Clear(); if (PacketList.SelectedItem == null) { return; } MetinPacket p = (MetinPacket)PacketList.SelectedItem; if (p.Merged) { PacketDetailTxt.AppendText("Merged Packet\n"); } PacketDetailTxt.AppendText("ID:\t\t\t0x" + p.Id.ToString("X2") + "\n"); PacketDetailTxt.AppendText("ID:\t\t\t0x" + p.Id + "\n"); PacketDetailTxt.AppendText("PSH:\t\t\t" + p.PSH + "\n"); PacketDetailTxt.AppendText("Length:\t\t\t" + p.Length + "\n"); PacketDetailTxt.AppendText("Route:\t\t\t" + p.Route + "\n"); PacketDetailTxt.AppendText("Crypted:\t\t" + p.Crypted + "\r\n\r\n"); PacketDetailTxt.AppendText("Data:\t\t\t" + ByteSupport.ByteArrayToHexString(p.Data, true) + "\r\n\r\n"); if (p.Crypted) { PacketDetailTxt.AppendText("Decrypted Data:\t\t" + ByteSupport.ByteArrayToHexString(p.DecryptedData, true) + "\r\n\r\n"); } PacketDetailTxt.AppendText("ASCII Data:\t\t" + ByteSupport.ByteArrayToAsciiString(p.Data) + "\r\n\r\n"); if (p.Crypted) { PacketDetailTxt.AppendText("ASCII Decrypted Data:\t" + ByteSupport.ByteArrayToAsciiString(p.DecryptedData) + "\r\n\r\n"); } }