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; } }
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); } }
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(); } }