Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Text;
- using Conquer_Online_Server.Network.Cryptography;
- namespace Conquer_Online_Server.Network.AuthPackets
- {
- public class Authentication : Interfaces.IPacket
- {
- public string Username;
- public string Password;
- public string Server;
- public string Mac;
- public Authentication()
- {
- }
- 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 byte[] ToArray()
- {
- throw new NotImplementedException();
- }
- public void Send(Client.GameState client)
- {
- throw new NotImplementedException();
- }
- }
- }
- //////////////////////////////////////////////////////
- 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];
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement