public HandleSelectChannel(Client client) { // if we reach here then that means that the world select succeeded, ensuring that WorldID & channel_id are NOT nil, all cool Random Rand = new Random(System.DateTime.Now.Millisecond); PacketWriter Writer = new PacketWriter(); Writer.WriteShort((short)PacketOpcodes.sSelectChannel); Writer.WriteByte(client.Account.Worlds[client.Account.WorldIndex].ID); Writer.WriteByte(client.Account.Worlds[client.Account.WorldIndex].Channels[client.Account.ChannelIndex].ID); Writer.WriteInt(Rand.Next(40604, 230493854)); Writer.WriteByte(client.Account.Worlds[client.Account.WorldIndex].Channels[client.Account.ChannelIndex].Language); Writer.WriteMapleString("Windows Vista"); Writer.WriteMapleString("ETHERNET"); client.SendPacket(Writer); }
/// <summary> /// Handles account login. /// Encrypts password and send login packet. /// </summary> /// <param name="client">Client from which packet was received</param> /// <param name="packet">Packet to be handled</param>> public HandleLogin(Client client, byte[] packet) { PacketReader Reader = new PacketReader(packet); int Length = Reader.ReadShort(); byte[] Key = Reader.ReadBytes(Length); string PwEncrypted = Encoding.ASCII.GetString(Crypto.WzRSAEncrypt.Encrypt(Key, Length, client.Account.Password)); byte[] Buffer = { 0x00, 0xE0, 0x4D, 0xA6, 0xA5, 0xCF, 0xB4, 0x68, 0xCB, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x32, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 }; PacketWriter Writer = new PacketWriter(); Writer.WriteShort((short)PacketOpcodes.sLogin); Writer.WriteMapleString(client.Account.Username); Writer.WriteMapleString(PwEncrypted); Writer.WriteMapleString("00E04DA6A5CF_B468CBE4"); Writer.WriteBytes(Buffer); client.SendPacket(Writer); }
public HandleLoginInfo(Client client, byte[] packet) { PacketReader Reader = new PacketReader(packet); byte Type = Reader.ReadByte(); if (Type == 4) { MessageBox.Show("Incorrect password."); client.MapleConnect.Close(); client.LoginThread.Abort(); client.Account.LoggingIn = false; client.MForm.ChangedAccount(); } else if (Type == 5) { MessageBox.Show("Username does not exist."); client.MapleConnect.Close(); client.LoginThread.Abort(); client.Account.LoggingIn = false; client.MForm.ChangedAccount(); } else if (Type == 7) { MessageBox.Show("Account already logged in."); client.MapleConnect.Close(); client.LoginThread.Abort(); client.Account.LoggingIn = false; client.MForm.ChangedAccount(); } else { client.Account.AccountID = Reader.ReadInt(); Reader.ReadByte(); Reader.ReadByte(); Reader.ReadByte(); client.Account.Username = Reader.ReadMapleString(); Reader.ReadMapleString(); Reader.ReadInt(); //MessageBox.Show("Actual username: "******"; Account id: " + client.Account.Account_id); PacketWriter Writer = new PacketWriter(); Writer.WriteShort((short)PacketOpcodes.sPin); Writer.WriteByte(1); Writer.WriteByte(0); Writer.WriteInt(client.Account.AccountID); Writer.WriteMapleString(client.Account.Pin); client.SendPacket(Writer); } }
public HandleSheepExploit(Client client) { PacketWriter chat = new PacketWriter(); Random rnd = new Random(DateTime.Now.Millisecond); int rndValue = rnd.Next(); chat.WriteShort(0x2F); chat.WriteInt(rndValue); chat.WriteMapleString("lols"); chat.WriteByte(0); client.SendPacket(chat); /*PacketWriter perion = new PacketWriter(); perion.WriteShort((short)PacketOpcodes.s_shop); perion.WriteInt(1024); for (int i = 0; i <= 6; i++) { client.SendPacket(perion); } perion.Dispose();*/ /*PacketWriter tele = new PacketWriter(); tele.WriteShort((short)PacketOpcodes.s_owl_teleport); tele.WriteInt(338835); // shop id tele.WriteInt(910040003); // map id client.SendPacket(tele); Thread.Sleep(10); tele.Dispose(); PacketWriter chat = new PacketWriter(); chat.WriteShort((short)PacketOpcodes.s_npc_chat); chat.WriteInt(24848); chat.WriteInt(10158151); client.SendPacket(chat); Thread.Sleep(50); chat.Dispose();*/ }