public void AddPacketToListView(PacketListItem item) { if (item.DirectionCol == "S") { item.NameCol = db.GetServerZoneOpName(int.Parse(item.MessageCol, NumberStyles.HexNumber)); item.CommentCol = db.GetServerZoneOpComment(int.Parse(item.MessageCol, NumberStyles.HexNumber)); } else { item.NameCol = db.GetClientZoneOpName(int.Parse(item.MessageCol, NumberStyles.HexNumber)); item.CommentCol = db.GetClientZoneOpComment(int.Parse(item.MessageCol, NumberStyles.HexNumber)); } item.CategoryCol = item.Set.ToString(); if (item.MessageCol == "0142" || item.MessageCol == "0143" || item.MessageCol == "0144") { using (MemoryStream stream = new MemoryStream(item.Data)) { using (BinaryReader reader = new BinaryReader(stream)) { stream.Position = 0x20; int category = reader.ReadUInt16(); item.ActorControl = category; item.NameCol = db.GetActorControlTypeName(category); } } } PacketListView.Items.Add(item); }
private void MessageSent(long epoch, byte[] message, int set) { var res = Parse(message); PacketListItem item = new PacketListItem() { IsVisible = true, ActorControl = -1, Data = message, MessageCol = res.header.MessageType.ToString("X4"), DirectionCol = "C", CategoryCol = set.ToString(), TimeStampCol = Util.UnixTimeStampToDateTime(res.header.Seconds).ToString(@"MM\/dd\/yyyy HH:mm:ss"), SizeCol = res.header.MessageLength.ToString(), Set = set }; mainWindow.Dispatcher.Invoke(new Action(() => { mainWindow.AddPacketToListView(item); })); }
private void ReloadCurrentPackets() { PacketListItem[] array = new PacketListItem[PacketListView.Items.Count]; PacketListView.Items.CopyTo(array, 0); PacketListView.Items.Clear(); foreach (var item in array) { AddPacketToListView(item); } }
public static PacketListItem[] Load(string path) { List <PacketListItem> output = new List <PacketListItem>(); XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNode packets = doc.DocumentElement.SelectSingleNode("/Capture/Packets"); foreach (XmlNode packet in packets.ChildNodes) { PacketListItem packetItem = new PacketListItem(); foreach (XmlNode entry in packet.ChildNodes) { switch (entry.Name) { case "Direction": packetItem.DirectionCol = entry.InnerText; break; case "Message": packetItem.MessageCol = entry.InnerText; break; case "Timestamp": packetItem.TimeStampCol = entry.InnerText; break; case "RouteID": packetItem.RouteIdCol = entry.InnerText; break; case "Data": packetItem.Data = Util.StringToByteArray(entry.InnerText); break; case "Set": packetItem.Set = int.Parse(entry.InnerText); break; } } packetItem.IsVisible = true; output.Add(packetItem); } Debug.WriteLine($"Loaded Packets: {output.Count}"); return(output.ToArray()); }
public bool IsApplicableForFilterSet(PacketListItem item) { bool isApplicable = false; switch (this.type) { case FilterType.Message: if (item.MessageCol == ((int)this.value).ToString("X4")) { isApplicable = true; } break; case FilterType.ActorControl: if (item.ActorControl == (int)this.value) { isApplicable = true; } break; case FilterType.ActorControlName: if (item.ActorControl != -1 && item.NameCol.ToLower().Contains(((string)this.value).ToLower())) { isApplicable = true; } break; case FilterType.PacketName: if (item.NameCol.ToLower().Contains(((string)this.value).ToLower())) { isApplicable = true; } break; case FilterType.StringContents: var findStr = Convert.ToString(this.value).ToLower(); var packetStr = Encoding.UTF8.GetString(item.Data).ToLower(); if (packetStr.Contains(findStr)) { isApplicable = true; } break; default: break; } return(isApplicable); }
public void AddPacketToListView(PacketListItem item) { if (item.DirectionCol == "S") { item.NameCol = db.GetServerZoneOpName(int.Parse(item.MessageCol, NumberStyles.HexNumber)); item.CommentCol = db.GetServerZoneOpComment(int.Parse(item.MessageCol, NumberStyles.HexNumber)); } else { item.NameCol = db.GetClientZoneOpName(int.Parse(item.MessageCol, NumberStyles.HexNumber)); item.CommentCol = db.GetClientZoneOpComment(int.Parse(item.MessageCol, NumberStyles.HexNumber)); } item.CategoryCol = item.Set.ToString(); if (item.MessageCol == "0142" || item.MessageCol == "0143" || item.MessageCol == "0144") { using (MemoryStream stream = new MemoryStream(item.Data)) { using (BinaryReader reader = new BinaryReader(stream)) { stream.Position = 0x20; int category = reader.ReadUInt16(); item.ActorControl = category; item.NameCol = db.GetActorControlTypeName(category); } } } if (RunScriptsOnNewCheckBox.IsChecked) { try { Scripting_RunOnPacket(new PacketEventArgs(item)); } catch (Exception exc) { MessageBox.Show( $"[Main] Script error!\n\n{exc}", "Error", MessageBoxButton.OK, MessageBoxImage.Error); RunScriptsOnNewCheckBox.IsChecked = false; return; } } PacketListView.Items.Add(item); }
private void MessageSent(long epoch, byte[] message, int set) { var res = Parse(message); PacketListItem item = new PacketListItem() { IsVisible = true, ActorControl = -1, Data = message, MessageCol = res.header.MessageType.ToString("X4"), DirectionCol = "C", CategoryCol = set.ToString(), TimeStampCol = Util.UnixTimeStampToDateTime(res.header.Seconds).ToString(@"MM\/dd\/yyyy HH:mm:ss"), SizeCol = res.header.MessageLength.ToString(), Set = set, RouteIdCol = res.header.RouteID.ToString(), PacketUnixTime = res.header.Seconds, SystemMsTime = Millis() }; if (_configFlags.HasFlag(ConfigFlags.DontUsePacketTimestamp)) { item.TimeStampCol = DateTime.Now.ToString(@"MM\/dd\/yyyy HH:mm:ss.fff tt"); } _myTab.Dispatcher.Invoke(new Action(() => { _myTab.AddPacketToListView(item); })); }
public PacketEventArgs(PacketListItem packet) { this.packet = packet; }
public PacketEventArgs(PacketListItem packet, ExpandoObject packetobj, ScriptDebugView debugView) { this.Packet = packet; this.PacketObj = packetobj; this.Debug = debugView; }