Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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}");
 }
Exemplo n.º 3
0
 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: ********");
 }
Exemplo n.º 4
0
        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);
        }