protected void AccountLogin(byte type, List <byte> data) { UInt32 client_token = (uint)System.Environment.TickCount; List <byte> hash = Bsha1.DoubleHash(client_token, _serverToken, _password); byte[] packet = Connection.BuildPacket((byte)0x3a, BitConverter.GetBytes(client_token), BitConverter.GetBytes(_serverToken), hash, System.Text.Encoding.ASCII.GetBytes(_account), Zero); Connection.Write(packet); }
public LogonRequestPacket( uint clientToken, uint serverToken, string username, string password) : base( BuildPacket( Sid.LOGONRESPONSE2, BitConverter.GetBytes(clientToken), BitConverter.GetBytes(serverToken), Bsha1.DoubleHash(clientToken, serverToken, password.ToLowerInvariant()), Encoding.ASCII.GetBytes(username + "\0") ) ) { Log.Verbose($"LogonRequestPacket:\n" + $"\tClient Token: {clientToken}" + $"\tServer Token: {serverToken}" + $"\tUsername: {username}"); }
public RealmLogonRequestPacket( uint clientToken, uint serverToken, string realm, string password) : base( BuildPacket( Sid.LOGONREALMEX, BitConverter.GetBytes(clientToken), Bsha1.DoubleHash(clientToken, serverToken, password), Encoding.ASCII.GetBytes(realm + "\0") ) ) { Log.Verbose($"RealmLogonRequestPacket:\n" + $"\tType: {Type}\n" + $"\tClient Token: {clientToken}\n" + $"\tServer Token: {serverToken}\n" + $"\tRealm: {realm}\n" + $"\tPassword: ********"); }
protected void RealmList(byte type, List <byte> data) { UInt32 count = BitConverter.ToUInt32(data.ToArray(), 8); Int32 offset = 12; for (ulong i = 1; i <= count; i++) { offset += 4; String realmTitle = ReadNullTerminatedString(System.Text.Encoding.ASCII.GetString(data.ToArray()), ref offset); String realmDescription = ReadNullTerminatedString(System.Text.Encoding.ASCII.GetString(data.ToArray()), ref offset); if (_realm == null && i == 1) { OnRealmUpdate(realmTitle); //Logger.Write("Logging on to realm {0}", realmTitle); } } UInt32 clientToken = 1; byte[] packet = Connection.BuildPacket((byte)0x3e, BitConverter.GetBytes(clientToken), Bsha1.DoubleHash(clientToken, _serverToken, "password"), System.Text.Encoding.ASCII.GetBytes(_realm), Zero); Connection.Write(packet); }