Exemple #1
0
 public PacketSlice(PacketSlice srcSlice)
 {
     Packet = srcSlice.Packet;
     Offset = srcSlice.Offset;
     Length = srcSlice.Length;
     Tag    = srcSlice.Tag;
 }
Exemple #2
0
 private void Initialize(IPPacket packet, int offset, int length, int tag)
 {
     Packet = packet;
     Offset = offset;
     Length = length;
     Tag    = tag;
 }
Exemple #3
0
 private void Initialize(IPPacket packet, int offset, int length, int tag)
 {
     Packet = packet;
     Offset = offset;
     Length = length;
     Tag = tag;
 }
Exemple #4
0
 public PacketSlice(PacketSlice srcSlice)
 {
     Packet = srcSlice.Packet;
     Offset = srcSlice.Offset;
     Length = srcSlice.Length;
     Tag = srcSlice.Tag;
 }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
 public void AddPacket(IPPacket p)
 {
     if (p.Direction == PacketDirection.PACKET_DIRECTION_INCOMING)
     {
         streamIn.AppendPacket(p);
     }
     else
     {
         streamOut.AppendPacket(p);
     }
 }
Exemple #7
0
        public int CompareTo(Object obj)
        {
            IPPacket otherPacket = obj as IPPacket;

            return(index.CompareTo(otherPacket.Index));
        }
Exemple #8
0
        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();
            }
        }
Exemple #9
0
        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);
            }
        }
Exemple #10
0
 public PacketSlice(IPPacket packet, int offset, int length, int tag)
 {
     Initialize(packet, offset, length, tag);
 }
Exemple #11
0
 public PacketSlice(IPPacket packet, int offset, int length)
 {
     Initialize(packet, offset, length, -1);
 }
Exemple #12
0
 public void AddPacket(IPPacket p)
 {
     if (p.Direction == PacketDirection.PACKET_DIRECTION_INCOMING)
         streamIn.AppendPacket(p);
     else
         streamOut.AppendPacket(p);
 }
Exemple #13
0
 public PacketSlice(IPPacket packet, int offset, int length, int tag)
 {
     Initialize(packet, offset, length, tag);
 }
Exemple #14
0
 public PacketSlice(IPPacket packet, int offset, int length)
 {
     Initialize(packet, offset, length, -1);
 }
Exemple #15
0
 public void AppendPacket(IPPacket packet)
 {
     packets.Add(packet);
     length += packet.Bytes.Length;
 }
Exemple #16
0
 public void AppendPacket(IPPacket packet)
 {
     packets.Add(packet);
     length += packet.Bytes.Length;
 }