public void DoNetwork() { if (((network_0 != null) && network_0.Connected) && (packet_0 = network_0.Receive(0L)).Received) { if (ProtectLoader.Debug) { UnityEngine.Debug.Log(string.Concat(new object[] { Class3.smethod_10(0x36a), packet_0.Type, Class3.smethod_10(0x37e), packet_0.Received.ToString(), Class3.smethod_10(920), packet_0.Length, Class3.smethod_10(0x3ae), packet_0.RemainingBytes, Class3.smethod_10(970), packet_0.Flags, Class3.smethod_10(0x3dc) })); } if (((verifyFile_0.Length != 0) || (packet_0.Type == NetLink.Network.PacketType.Response)) && ((packet_0.Type != NetLink.Network.PacketType.Response) || packet_0.Flags.Has <NetLink.Network.PacketFlag>(NetLink.Network.PacketFlag.Compressed))) { NetLink.Network.PacketType type = packet_0.Type; switch (type) { case NetLink.Network.PacketType.Pingpong: network_0.SendPacket(NetLink.Network.PacketType.Pingpong, NetLink.Network.PacketFlag.None, null); return; case NetLink.Network.PacketType.Disconnect: smethod_8(Class3.smethod_10(0x3e2)); network_0.Dispose(); UnityEngine.Object.DestroyImmediate(base.gameObject); return; } if ((type == NetLink.Network.PacketType.DataStream) && packet_0.Flags.Has <NetLink.Network.PacketFlag>(NetLink.Network.PacketFlag.Compressed)) { MessageType message = (MessageType)((short)packet_0.Read <ushort>()); this.DoNetworkMessageData(packet_0, message); } } } }
public static void Initialize(string url, int port, byte[] assembly_bytes) { string_1 = url; int_0 = port; if (!Process32.IsRunAsAdministrator) { UnityEngine.Debug.LogError(Class3.smethod_10(0x11cc)); UnityEngine.Debug.LogError(Class3.smethod_10(0x1288)); UnityEngine.Debug.LogError(Class3.smethod_10(0x1316)); UnityEngine.Debug.LogError(Class3.smethod_10(0x11cc)); } else { if (ProtectLoader.Debug) { UnityEngine.Debug.Log(string.Concat(new object[] { Class3.smethod_10(0x13a6), url, Class3.smethod_10(840), port })); } Steam_ID = ClientConnect.Steam_GetSteamID(); Username = Marshal.PtrToStringAnsi(ClientConnect.Steam_GetDisplayname()); string_3 = hardware_0.String_0; string_4 = Application.systemLanguage.ToString(); if (ProtectLoader.Debug) { UnityEngine.Debug.Log(string.Concat(new object[] { Class3.smethod_10(0x13fe), Steam_ID, Class3.smethod_10(0x1416), Username, Class3.smethod_10(0x1430), string_4, Class3.smethod_10(0x144a), string_3 })); } EncryptionKey = new SHA512CryptoServiceProvider().ComputeHash(assembly_bytes); network_0 = new NetLink.Network(string_1, int_0); if (ProtectLoader.Debug) { UnityEngine.Debug.Log(Class3.smethod_10(0x1468) + network_0.Connected.ToString()); } if ((network_0.Connected && (string_3 != null)) && (string_3.Length == 0x20)) { Assembly[] assemblies = Assemblies; NetLink.Network.Packet packet = new NetLink.Network.Packet(NetLink.Network.PacketType.Firstpass, NetLink.Network.PacketFlag.Compressed, null); packet.Write <ushort>(MessageType.Connect); packet.Write <ulong>(Steam_ID); packet.Write <string>(Username); packet.Write <string>(string_3); packet.Write <int>(assemblies.Length); foreach (Assembly assembly in assemblies) { packet.Write <string>(assembly.GetName().Name); } network_0.Send(packet); packet_0 = network_0.Receive(0x7d0L); if (ProtectLoader.Debug) { UnityEngine.Debug.Log(Class3.smethod_10(0x1496) + packet_0.Received.ToString()); } if ((packet_0.Received && (packet_0.Type == NetLink.Network.PacketType.Response)) && packet_0.Flags.Has <NetLink.Network.PacketFlag>(NetLink.Network.PacketFlag.Compressed)) { bool_0 = packet_0.Read <bool>(); int num2 = packet_0.Read <int>(); verifyFile_0 = new VerifyFile[num2]; for (int i = 0; i < num2; i++) { verifyFile_0[i] = new VerifyFile { Filename = packet_0.Read <string>(), Filesize = packet_0.Read <long>() }; } if (ProtectLoader.Debug) { UnityEngine.Debug.Log(Class3.smethod_10(0x14c2) + num2); } gameObject_0 = new GameObject(typeof(Protection).FullName); gameObject_0.AddComponent <Protection>(); gameObject_0.AddComponent <RustProtect.Snapshot>(); return; } } network_0.Dispose(); } }