public PacketSlice(PacketSlice srcSlice) { Packet = srcSlice.Packet; Offset = srcSlice.Offset; Length = srcSlice.Length; Tag = srcSlice.Tag; }
private void Initialize(IPPacket packet, int offset, int length, int tag) { Packet = packet; Offset = offset; Length = length; Tag = tag; }
public PacketStream GetNextStreamDirection() { if (curDirection == PacketDirection.PACKET_DIRECTION_INCOMING) { curDirection = PacketDirection.PACKET_DIRECTION_OUTGOING; } else if (curDirection == PacketDirection.PACKET_DIRECTION_OUTGOING) { curDirection = PacketDirection.PACKET_DIRECTION_INCOMING; } else if (curDirection == PacketDirection.PACKET_DIRECTION_INVALID) { IPPacket pktIn = null, pktOut = null; if (streamIn.Packets.Count > 0) { pktIn = streamIn.Packets[0]; if (streamOut.Packets.Count > 0) { pktOut = streamOut.Packets[0]; // FIXME: is this check correct for the earliest packet? if (pktIn.CompareTo(pktOut) < 0) { curDirection = PacketDirection.PACKET_DIRECTION_INCOMING; } else { curDirection = PacketDirection.PACKET_DIRECTION_OUTGOING; } } } if (curDirection == PacketDirection.PACKET_DIRECTION_INVALID) { if (pktIn != null) { curDirection = PacketDirection.PACKET_DIRECTION_INCOMING; } else { curDirection = PacketDirection.PACKET_DIRECTION_OUTGOING; } } } if (curDirection == PacketDirection.PACKET_DIRECTION_INCOMING) { return(streamIn); } else { return(streamOut); } }
public void AddPacket(IPPacket p) { if (p.Direction == PacketDirection.PACKET_DIRECTION_INCOMING) { streamIn.AppendPacket(p); } else { streamOut.AppendPacket(p); } }
public int CompareTo(Object obj) { IPPacket otherPacket = obj as IPPacket; return(index.CompareTo(otherPacket.Index)); }
private void messageTbl_RowChanged(object sender, DataRowChangeEventArgs e) { if (e.Action == DataRowAction.Add) { e.Row.BeginEdit(); e.Row["Sender"] = String.Format("{0} [pid={1}, tid={2}]", e.Row["ProcessName"], e.Row["ProcessId"], e.Row["ThreadId"]); int index = (int) e.Row["Index"]; DateTime timestamp = (DateTime) e.Row["Timestamp"]; UInt32 resourceId = (UInt32) e.Row["ResourceId"]; PacketDirection direction = (PacketDirection)((UInt32)e.Row["Direction"]); byte[] data = (byte[]) e.Row["Data"]; string suffix = (data.Length > 1) ? "s" : ""; IPEndpoint localEndpoint = new IPEndpoint((string) e.Row["LocalAddress"], (UInt16) e.Row["LocalPort"]); IPEndpoint remoteEndpoint = new IPEndpoint((string)e.Row["PeerAddress"], (UInt16)e.Row["PeerPort"]); if ((MessageType) ((UInt32) e.Row["MsgType"]) == MessageType.MESSAGE_TYPE_MESSAGE) { MessageContext context = (MessageContext) ((UInt32) e.Row["MsgContext"]); string s = ""; switch (context) { case MessageContext.MESSAGE_CTX_ACTIVESYNC_DEVICE: s = "DeviceLabel = "; break; case MessageContext.MESSAGE_CTX_ACTIVESYNC_STATUS: s = "StatusLabel = "; break; case MessageContext.MESSAGE_CTX_ACTIVESYNC_SUBSTATUS: s = "SubStatusLabel = "; break; case MessageContext.MESSAGE_CTX_ACTIVESYNC_WZ_STATUS: s = "WizardStatusLabel = "; break; case MessageContext.MESSAGE_CTX_SOCKET_CONNECTING: case MessageContext.MESSAGE_CTX_SOCKET_CONNECTED: case MessageContext.MESSAGE_CTX_SOCKET_DISCONNECTED: case MessageContext.MESSAGE_CTX_SOCKET_RESET: case MessageContext.MESSAGE_CTX_SOCKET_LISTENING: SocketEventType evType; switch (context) { case MessageContext.MESSAGE_CTX_SOCKET_CONNECTING: evType = SocketEventType.CONNECTING; break; case MessageContext.MESSAGE_CTX_SOCKET_CONNECTED: if (direction == PacketDirection.PACKET_DIRECTION_INCOMING) evType = SocketEventType.CONNECTED_INBOUND; else evType = SocketEventType.CONNECTED_OUTBOUND; break; case MessageContext.MESSAGE_CTX_SOCKET_DISCONNECTED: evType = SocketEventType.DISCONNECTED; break; case MessageContext.MESSAGE_CTX_SOCKET_RESET: evType = SocketEventType.RESET; break; case MessageContext.MESSAGE_CTX_SOCKET_LISTENING: evType = SocketEventType.LISTENING; break; default: evType = SocketEventType.UNKNOWN; break; } TCPEvent ev = new TCPEvent(timestamp, resourceId, evType, localEndpoint, remoteEndpoint); tmpEventList.Add(ev); break; } if (s != "") e.Row["Description"] = String.Format("{0}\"{1}\"", s, e.Row["Message"]); else e.Row["Description"] = e.Row["Message"]; } else { string msgPrefix = ""; if (localEndpoint.Address.Length > 0) { msgPrefix = String.Format("{0}: ", localEndpoint); } string msgSuffix = ""; if (remoteEndpoint.Address.Length > 0) { msgSuffix = String.Format(" {0} {1}", (direction == PacketDirection.PACKET_DIRECTION_INCOMING) ? "from" : "to", remoteEndpoint); } if (msgPrefix.Length > 0 && msgSuffix.Length > 0) { if (direction == PacketDirection.PACKET_DIRECTION_INCOMING) { e.Row["Description"] = String.Format("{0}Received {1} byte{2}{3}", msgPrefix, data.Length, suffix, msgSuffix); } else { e.Row["Description"] = String.Format("{0}Sent {1} byte{2}{3}", msgPrefix, data.Length, suffix, msgSuffix); } } else { e.Row["Description"] = e.Row["Message"]; } IPPacket pkt = new IPPacket(index, timestamp, resourceId, direction, localEndpoint, remoteEndpoint, data); tmpPacketList.Add(pkt); } e.Row["BgColor"] = GetColorForASState(e.Row); e.Row.EndEdit(); } }
private void packetParser_PacketDescriptionReceived(IPPacket[] packets, string description) { for (int i = 0; i < packets.Length; i++) { DataRow row = dataSet.Tables[0].Select(String.Format("Index = {0}", packets[i].Index))[0]; if (packets.Length == 1) row["Comment"] = description; else if (i == 0) row["Comment"] = String.Format("<{0}", description); else if (i == packets.Length - 1) row["Comment"] = String.Format("{0}>", description); else row["Comment"] = String.Format("...{0}...", description); } }
public PacketSlice(IPPacket packet, int offset, int length, int tag) { Initialize(packet, offset, length, tag); }
public PacketSlice(IPPacket packet, int offset, int length) { Initialize(packet, offset, length, -1); }
public void AddPacket(IPPacket p) { if (p.Direction == PacketDirection.PACKET_DIRECTION_INCOMING) streamIn.AppendPacket(p); else streamOut.AppendPacket(p); }
public void AppendPacket(IPPacket packet) { packets.Add(packet); length += packet.Bytes.Length; }