/// <summary> /// Patches the specified packet. /// </summary> /// <param name="Packet"></param> /// <param name="Decrypter"></param> /// <returns></returns> public static byte[] Patch(byte[] Packet, Rivest Decrypter) { List <byte> Header = new List <byte>(Packet.Take(7).Reverse()); List <byte> Decrypted = new List <byte>(Decrypter.Decrypt(Packet.Skip(7).ToArray())); foreach (byte Byte in Header) { Decrypted.Insert(0, Byte); } return(Decrypted.ToArray()); }
/// <summary> /// Listens to the specified address. /// </summary> /// <param name="IPAddress"></param> /// <param name="Port"></param> public static void Start(IPAddress IPAddress, int Port) { Encrypter = new Rivest(); Decrypter = new Rivest(); Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Server.Bind(new IPEndPoint(IPAddress, Port)); Server.Listen(150); Program.Log("Socket has been started.", false); Program.Log("Server has been started.", false); Program.Log(null); while (true) { Client = Server.Accept(); break; } Protocol.Follow(); }