private void method_3(byte[] byte_1) { if ((byte_1[0] == 60) && (byte_1[1] == 0x70)) { this.SendData(CrossdomainPolicy.GetBytes(), true); SessionManager.StopSession(this.uint_0); } else if (byte_1[0] == 0xb1) { string[] strArray = Constants.DefaultEncoding.GetString(byte_1).Split(new char[] { '\x00b0' }); try { byte[] bytes; foreach (string str in strArray) { bytes = Constants.DefaultEncoding.GetBytes(str + 1); if (bytes.Length > 3) { bytes[bytes.Length - 1] = 0xb0; if (bytes[3] == 0xb2) { if (bytes[1] == 0xa3) { this.SendData(PingComposer.Compose(), false); if (bytes.Length <= 5) { continue; } goto Label_0238; } int num = 4; while (num < bytes.Length) { ClientMessage message = null; try { ushort messageFlag = bytes[1]; byte[] body = new byte[bytes.Length - 4]; for (int i = 0; i < body.Length; i++) { body[i] = bytes[num++]; } message = new ClientMessage(messageFlag, 0, body); } catch (Exception) { Output.WriteLine("Packet formatting exception on packet: " + Constants.DefaultEncoding.GetString(bytes), OutputLevel.DebugNotification); break; } if (message != null) { try { DataRouter.HandleData(this, message); continue; } catch (Exception exception) { Output.WriteLine("Critical error in HandleData stack: " + exception.Message + "\n\n" + exception.StackTrace, OutputLevel.CriticalError); break; } } } continue; } int num4 = 6; while (num4 < bytes.Length) { ClientMessage message2 = null; try { ushort num5 = bytes[1]; ushort messageItem = bytes[3]; byte[] buffer3 = new byte[bytes.Length - 6]; for (int j = 0; j < buffer3.Length; j++) { buffer3[j] = bytes[num4++]; } message2 = new ClientMessage(num5, messageItem, buffer3); } catch (Exception) { Output.WriteLine("Packet formatting exception on packet: " + Constants.DefaultEncoding.GetString(bytes), OutputLevel.DebugNotification); break; } if (message2 != null) { try { DataRouter.HandleData(this, message2); continue; } catch (Exception exception2) { Output.WriteLine("Critical error in HandleData stack: " + exception2.Message + "\n\n" + exception2.StackTrace, OutputLevel.CriticalError); break; } } } } } return; Label_0238: if (bytes[5] == 120) { this.SendData(FacebookInitComposer.Compose(), false); } } catch (Exception exception3) { Console.WriteLine(exception3.ToString()); } } else { SessionManager.StopSession(this.uint_0); } }
private void ProcessData(byte[] Data) { if (Data.Length == 0) { return; } if (Data[0] == 177) { string[] sp = Encoding.Default.GetString(Data).Split('±'); int i = 1; while (i <= sp.Length - 1) { int Pos = 0; byte[] lol = Encoding.Default.GetBytes("±" + sp[i]); while (Pos < lol.Length) { ClientMessage Message = null; try { byte ID = lol[1]; byte Type = (lol[3] == 178) ? (byte)0 : lol[3]; uint MessageId = uint.Parse(lol[1] + "" + Type); int MessageLength = (Type > 0) ? lol.Length - 4 : lol.Length - 2; Pos = (Type > 0) ? 4 : 2; byte[] Content = new byte[MessageLength]; for (int ii = 0; ii < Content.Length; ii++) { Content[ii] = lol[Pos++]; } Message = new ClientMessage(MessageId, Content); } catch (Exception) { SessionManager.StopSession(mId); // packet formatting exception return; } if (Message != null) { if (Program.DEBUG) { Output.WriteLine("[RCV][" + mId + "]: [" + Message.Id + "] " + Encoding.Default.GetString(lol), OutputLevel.DebugInformation); } try { DataRouter.HandleData(this, Message); } catch (Exception e) { Output.WriteLine("Critical error in HandleData stack: " + e.Message + "\n\n" + e.StackTrace, OutputLevel.CriticalError); SessionManager.StopSession(mId); return; } } i++; } } } else if (Data[0] == 60) { Output.WriteLine("Sent crossdomain policy to client " + mId + ".", OutputLevel.DebugInformation); string xmlPolicy = "<?xml version=\"1.0\"?>\r\n" + "<!DOCTYPE cross-domain-policy SYSTEM \"/xml/dtds/cross-domain-policy.dtd\">\r\n" + "<cross-domain-policy>\r\n" + "<allow-access-from domain=\"*\" to-ports=\"2002\" />\r\n" + "</cross-domain-policy>\x0"; SendData(Encoding.Default.GetBytes(xmlPolicy)); SessionManager.StopSession(mId); } else { Output.WriteLine("[RCV][" + mId + "]: " + Encoding.Default.GetString(Data), OutputLevel.DebugInformation); SessionManager.StopSession(mId); } }
private void ProcessData(byte[] Data) { if (Data.Length == 0) { return; } if (Data[0] == 64) { int Pos = 0; while (Pos < Data.Length) { ClientMessage Message = null; try { int MessageLength = Base64Encoding.DecodeInt32(new byte[] { Data[Pos++], Data[Pos++], Data[Pos++] }); uint MessageId = Base64Encoding.DecodeUInt32(new byte[] { Data[Pos++], Data[Pos++] }); byte[] Content = new byte[MessageLength - 2]; for (int i = 0; i < Content.Length; i++) { Content[i] = Data[Pos++]; } Message = new ClientMessage(MessageId, Content); } catch (Exception) { SessionManager.StopSession(mId); // packet formatting exception return; } if (Message != null) { Output.WriteLine("[RCV][" + mId + "]: " + Message.ToString(), OutputLevel.DebugInformation); try { DataRouter.HandleData(this, Message); } catch (Exception e) { Output.WriteLine("Critical error in HandleData stack: " + e.Message + "\n\n" + e.StackTrace, OutputLevel.CriticalError); SessionManager.StopSession(mId); return; } } } } else if (Data[0] == 60) { Output.WriteLine("Sent crossdomain policy to client " + mId + ".", OutputLevel.DebugInformation); SendData(CrossdomainPolicy.GetBytes()); SessionManager.StopSession(mId); } else { SessionManager.StopSession(mId); } }