예제 #1
0
        private void OnReceived(byte[] data, TcpClient client)
        {
            int    command = data[3] << 8 | data[4];
            int    idx     = data[5] << 8 | data[6];
            string result  = $"command: {command} | idx: {idx}\n";

            util.ColorMsg(ConsoleColor.White, ConsoleColor.Black, result);
            switch (command)
            {
            case 8239:
                Send(client, SCMD.OnWeb(data), true);
                break;

            case 10800:
                //Send(client, S10801.OnHash(), false);
                SendToAll(S10801.OnHash());
                break;

            case 10020:
                //Send(client, new S10021().OnLogin(), false);
                SendToAll(new S10021().OnLogin());
                break;

            case 10022:
                MemoryStream ms     = new MemoryStream(util.PacketHeaderRemove(util.PacketResize(data)));
                cs_10022     _10022 = Serializer.Deserialize <cs_10022>(ms);
                Console.WriteLine($"    account_id: {_10022.account_id}");
                Console.WriteLine($"    server_ticket: {_10022.server_ticket}");
                Console.WriteLine($"    platform: {_10022.platform}");
                Console.WriteLine($"    serverid: {_10022.serverid}");
                Console.WriteLine($"    check_key: {_10022.check_key}");
                Console.WriteLine($"    device_id: {_10022.device_id}");
                //Send(client, new S10023().OnTutorial(), false);
                SendToAll(new S10023().OnTutorial());
                //Send(client, S11000._11000(), true);
                break;

            default:
                util.ColorMsg(ConsoleColor.White, ConsoleColor.Black, result);
                util.ColorMsg(ConsoleColor.White, ConsoleColor.Black, "Unknown Packet:");
                util.ColorMsg(ConsoleColor.White, ConsoleColor.Black, util.PrintBytes(data));
                break;
            }
        }
예제 #2
0
        private string Decrypt(byte[] data)
        {
            int    command = data[3] << 8 | data[4];
            int    idx     = data[5] << 8 | data[6];
            string result  = $"command: {command} | idx: {idx}\n";

            byte[] m_bResized = PacketHeaderRemove(PacketResize(data));
            using (var ms = new MemoryStream(m_bResized))
            {
                switch (command)
                {
                case 8239:
                    return("Web Message");

                case 10800:
                    cs_10800 _10800 = Serializer.Deserialize <cs_10800>(ms);
                    result += $"\nplatform: {_10800.platform}";
                    result += $"\nstate: {_10800.state}";
                    break;

                case 10020:
                    cs_10020 _10020 = Serializer.Deserialize <cs_10020>(ms);
                    result += $"\narg1: {_10020.arg1}";
                    result += $"\narg2: {_10020.arg2}";
                    result += $"\narg3: {_10020.arg3}";
                    result += $"\narg4: {_10020.arg4}";
                    result += $"\ncheck_key: {_10020.check_key}";
                    result += $"\ndevice: {_10020.device}";
                    break;

                case 10022:
                    cs_10022 _10022 = Serializer.Deserialize <cs_10022>(ms);
                    result += $"\naccount_id: {_10022.account_id}";
                    result += $"\naccount_id: {_10022.check_key}";
                    result += $"\ndevice_id: {_10022.device_id}";
                    result += $"\nplatform: {_10022.platform}";
                    result += $"\nserverid: {_10022.serverid}";
                    result += $"\nserver_ticket: {_10022.server_ticket}";
                    break;
                }
                return(result);
            }
        }
예제 #3
0
        static void Main()
        {
            try
            {
                string text = Console.ReadLine();
                byte[] m_bBuffer;
                if (text.Contains(","))
                {
                    m_bBuffer = text.Split(',').Select(x => Convert.ToByte(x)).ToArray();
                }
                else
                {
                    m_bBuffer = HexToBytes(text);
                }

                int    start      = 0;
                int    command    = m_bBuffer[start + 3] << 8 | m_bBuffer[start + 4];
                int    idx        = m_bBuffer[start + 5] << 8 | m_bBuffer[start + 6];
                string result     = $"command: {command} | idx: {idx}\n";
                byte[] m_bResized = PacketHeaderRemove(PacketResize(m_bBuffer));
                Console.WriteLine($"\n{command}" + " {");
                using (MemoryStream ms = new MemoryStream(m_bResized))
                {
                    switch (command)
                    {
                    case 10800:
                        Print(result);
                        break;

                    case 10801:
                        sc_10801 _10801 = Serializer.Deserialize <sc_10801>(ms);
                        Print($"    gateway_ip: {_10801.gateway_ip}");
                        Print($"    gateway_port: {_10801.gateway_port}");
                        Print($"    url: {_10801.url}");
                        Print($"    proxy_ip: {_10801.proxy_ip}");
                        Print($"    proxy_port: {_10801.proxy_port}");
                        Print($"    is_ts: {_10801.is_ts}");
                        break;

                    case 10022:
                        cs_10022 _10022 = Serializer.Deserialize <cs_10022>(ms);
                        Print($"    account_id: {_10022.account_id}");
                        Print($"    server_ticket: {_10022.server_ticket}");
                        Print($"    platform: {_10022.platform}");
                        Print($"    serverid: {_10022.serverid}");
                        Print($"    check_key: {_10022.check_key}");
                        Print($"    device_id: {_10022.device_id}");
                        break;

                    case 10023:
                        sc_10023 _10023 = Serializer.Deserialize <sc_10023>(ms);
                        Print($"    result: {_10023.result}");
                        Print($"    user_id: {_10023.user_id}");
                        Print($"    server_ticket: {_10023.server_ticket}");
                        Print($"    server_load: {_10023.server_load}");
                        Print($"    db_load: {_10023.db_load}");
                        break;

                    case 11000:
                        sc_11000 _11000 = Serializer.Deserialize <sc_11000>(ms);

                        Print($"    timestamp: {_11000.timestamp}");
                        Print($"    monday_0oclock_timestamp: {_11000.monday_0oclock_timestamp}");
                        break;

                    case 11001:
                        cs_11001 _11001 = Serializer.Deserialize <cs_11001>(ms);
                        Print($"    timestamp: {_11001.timestamp}");
                        break;

                    case 11003:
                        sc_11003 _11003 = Serializer.Deserialize <sc_11003>(ms);
                        Print($"    id: {_11003.id}");
                        Print($"    name: {_11003.name}");
                        Print($"    level: {_11003.level}");
                        Print($"    exp: {_11003.exp}");
                        break;

                    case 10021:
                        sc_10021 _10021 = Serializer.Deserialize <sc_10021>(ms);

                        Print($"    result: {_10021.result}");
                        foreach (ServerInfo SI in _10021.serverlist)
                        {
                            Print($"    serverlist.ids: {SI.ids}");
                            Print($"    serverlist.ip: {SI.ip}");
                            Print($"    serverlist.port: {SI.port}");
                            Print($"    serverlist.state: {SI.state}");
                            Print($"    serverlist.name: {SI.name}");
                            Print($"    serverlist.tag_state: {SI.tag_state}");
                            Print($"    serverlist.sort: {SI.sort}");
                            Print($"    serverlist.proxy_ip: {SI.proxy_ip}");
                            Print($"    serverlist.proxy_port: {SI.proxy_port}");
                        }
                        Print($"    account_id: {_10021.account_id}");
                        Print($"    server_ticket: {_10021.server_ticket}");
                        Print($"    device: {_10021.device}");
                        break;

                    default:
                        Print(result);
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            finally
            {
                Console.WriteLine("}");
                Main();
            }
        }