コード例 #1
0
ファイル: MainWindow.cs プロジェクト: tbs005/VisualSro
 public void AddUnknowPacket(phPacket packet)
 {
 }
コード例 #2
0
ファイル: MainWindow.cs プロジェクト: tbs005/VisualSro
 public void AddFaildPacket(phPacket packet, Exception ex)
 {
 }
コード例 #3
0
ファイル: MainWindow.cs プロジェクト: tbs005/VisualSro
        public void AddPacket(phPacket packet)
        {
            string type     = "Unknow";
            bool   enrypted = false;

            switch (packet.SecurityCount)
            {
            case 1:
                type = "C->S";
                break;

            case 2:     //Server
                type = "S->C";
                break;

            case 3:
                type     = "C->S";
                enrypted = true;
                break;

            case 4:
                type     = "S->C";
                enrypted = true;
                break;
            }
            PacketLog.LogThis(string.Format("Opcode:{0} Type:{1} Encrypted:{2} Data:{3}", packet.OpcodeHEX, type, enrypted, packet.ToString()), 0);

            //Add to OpcodeList
            var opcode = lvOpcodeList.FindItemWithText(packet.OpcodeHEX, true, 0);

            if (opcode == null)
            {
                var lvOpcode = new ListViewItem(packet.OpcodeHEX);
                lvOpcode.SubItems.Add(type);
                lvOpcode.SubItems.Add("Unknow");
                lvOpcode.SubItems.Add("None");
                lvOpcodeList.Items.Insert(0, lvOpcode);

                //Write INI
                opcodesINI.Write(packet.OpcodeHEX, "Opcode", packet.OpcodeHEX);
                opcodesINI.Write(packet.OpcodeHEX, "Name", "Unknow");
                opcodesINI.Write(packet.OpcodeHEX, "Type", type);
                opcodesINI.Write(packet.OpcodeHEX, "Modifier", "None");
            }

            //Add to PacketList
            switch (type)
            {
            case "S->C":
                if (checkServerPackets.Checked)
                {
                    var lvPacket = new ListViewItem(packet.OpcodeHEX);
                    lvPacket.SubItems.Add(type);
                    if (opcode == null)
                    {
                        lvPacket.SubItems.Add("Unknow");     //Name
                        lvPacket.SubItems.Add(packet.ToString());
                        lvPacketList.Items.Insert(0, lvPacket);
                    }
                    else
                    {
                        //Get Name
                        lvPacket.SubItems.Add(opcode.SubItems[2].Text);     //Name
                        lvPacket.SubItems.Add(packet.ToString());

                        //Check for modifier
                        var listenOpcodes = lvOpcodeList.Items.Find("Listen", true);
                        if (listenOpcodes.Length == 0)
                        {
                            if (opcode.SubItems[3].Text == "Ignore")
                            {
                                lvPacket = null;
                                packet.Dispose();
                                packet = null;
                            }
                            else     //Dont ignore
                            {
                                lvPacketList.Items.Insert(0, lvPacket);
                            }
                        }
                        else     //Listen mode is active
                        {
                            if (opcode.SubItems[3].Text == "Listen")
                            {
                                lvPacketList.Items.Insert(0, lvPacket);
                            }
                        }
                    }
                }
                break;

            case "C->S":
                if (checkClientPackets.Checked)
                {
                    var lvPacket = new ListViewItem(packet.OpcodeHEX);
                    lvPacket.SubItems.Add(type);
                    if (opcode == null)
                    {
                        lvPacket.SubItems.Add("Unknow");     //Name
                        lvPacket.SubItems.Add(packet.ToString());
                        lvPacketList.Items.Insert(0, lvPacket);
                    }
                    else
                    {
                        //Get Name
                        lvPacket.SubItems.Add(opcode.SubItems[2].Text);     //Name
                        lvPacket.SubItems.Add(packet.ToString());

                        //Check for modifier
                        var listenOpcodes = lvOpcodeList.Items.Find("Listen", true);
                        if (listenOpcodes.Length == 0)
                        {
                            if (opcode.SubItems[3].Text == "Ignore")
                            {
                                lvPacket = null;
                                packet.Dispose();
                                packet = null;
                            }
                            else     //Dont ignore
                            {
                                lvPacketList.Items.Insert(0, lvPacket);
                            }
                        }
                        else     //Listen mode is active
                        {
                            if (opcode.SubItems[3].Text == "Listen")
                            {
                                lvPacketList.Items.Insert(0, lvPacket);
                            }
                        }
                    }
                }
                break;

            case "None":
                Console.Beep();
                break;
            }
        }