private static byte[] AuthFirst(string user, string pass) { var data = new PacketWriter(); data.WriteInt(8); data.WriteUnicodeString(user); data.WriteUnicodeString(pass); data.WriteBytes(0x00, 0x00, 0x13, 0x22, 0x00, 0x02, 0x01, 0x00); data.WriteZero(10); data.WriteUnicodeString(GetRandomString(23)); // 23 Random characters (Length 46 as unicode) data.WriteInt(1); data.WriteZero(2); return(AuthCipher.WriteHeader(AUTH_1, authKey1, data.ToArray())); }
internal void Start(ServerInfo info) { if (info != null) { byte[] siv = new byte[4]; byte[] riv = new byte[4]; var rng = new Random(Interlocked.Increment(ref rngSeed)); rng.NextBytes(siv); rng.NextBytes(riv); clientCipher = new MapleCipher(info.Version, siv, aesCipher); serverCipher = new MapleCipher(info.Version, riv, aesCipher); var p = new PacketWriter(14, 16); p.WriteShort(info.Version); p.WriteMapleString(info.Subversion); p.WriteBytes(riv); p.WriteBytes(siv); p.WriteByte(info.Locale); SendRawPacket(p.ToArray()); } Receive(); }