GameCryptographyKey = "
GameCryptographyKey = "B2asd785mbky57d6";
Authentication.cs
// ☺ Created by Mero TQ PVP // ☺ Copyright © 2018 - 2019 TQ Digital // ☺ Test Conquer - Project using System; using System.IO; using System.Text; using Conquer_Online_Server.Network.Cryptography; namespace Conquer_Online_Server.Network.AuthPackets { public unsafe class Authentication : Interfaces.IPacket { public string Password, Username, Server, MacAddress; public Authentication() { } public byte[] ToArray() { throw new NotImplementedException(); } public void Deserialize(byte[] buffer) { if (buffer.Length == 312) { ushort length = BitConverter.ToUInt16(buffer, 0); if (length == 312) { ushort type = BitConverter.ToUInt16(buffer, 2); byte[] temp = new byte[16]; if (type == 1542) { MemoryStream MS = new MemoryStream(buffer); BinaryReader BR = new BinaryReader(MS); BR.ReadUInt16(); BR.ReadUInt16(); Username = Encoding.Default.GetString(BR.ReadBytes(32)); Username = Username.Replace("\0", ""); BR.ReadBytes(37); byte[] PasswordArray = BR.ReadBytes(32); Password = Encoding.Default.GetString(PasswordArray); LoaderEncryption.Decrypt(PasswordArray); Password = Encoding.Default.GetString(PasswordArray); Password = Password.Replace("\0", ""); BR.ReadBytes(31); Server = Encoding.Default.GetString(BR.ReadBytes(16)); Server = Server.Replace("\0", ""); //Console.WriteLine("password:" + Password); BR.Close(); MS.Close(); } } } } public void Send(Client.GameState client) { throw new NotImplementedException(); } } }
LoaderEncryption.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Conquer_Online_Server.Network.Cryptography { public class LoaderEncryption { private static byte[] Key = { 3, 6, 1, 3, 66, 33, 77, 44, 100, 221, 21, 254, 234, 212, 114, 141, 214, 12, 56, 99, 100, 7, 98, 187, 190, 77, 65, 55, 44, 43, 21, 99 }; // idb private static byte[] Key2 = { 6, 4, 1, 7, 2, 33, 77, 66, 65, 44, 21, 254, 43, 212, 90, 44, 214, 12, 56, 99, 67, 7, 87, 99, 0, 77, 43, 11, 44, 22, 21, 99 }; // idb public static void Encrypt(byte[] arr) { int length = Key.Length; for (int i = 0; i < arr.Length; i++) { arr[i] ^= Key[i % length]; arr[i] ^= Key[(i + 1) % length]; } } public static void Decrypt(byte[] arr) { var len = Encoding.Default.GetString(arr).Replace("\0", "").Length; for (int i = 0; i < len; ++i) { arr[i] ^= Key2[88 * i & 0x1F]; arr[i] ^= Key[32 * i & 0x1C]; } } } }