Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

How to block Map Crash in v83?

Newbie Spellweaver
Joined
Jun 14, 2010
Messages
58
Reaction score
0
I've tried doing this, not sure if i'm doing it right or not. Also, how can i find out the packets that causes Map/Server crash?

Here is what i did for one. Found it in RZ
package net.channel.handler;

import client.MapleCharacter;
import client.MapleClient;
import java.rmi.RemoteException;
import net.AbstractMaplePacketHandler;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;

public final class PetChatHandler extends AbstractMaplePacketHandler {

public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
MapleCharacter player = c.getPlayer();
byte mode = slea.readByte();

if (slea.toString().contains("A8 00 DF 00 00 00 00 00 00 00 01 0D 01 00 31") || slea.toString().contains("A8 00 DF 00 00 00 00 00 00 00 01 0D 01 00 32") ) {
try {
player.getClient().getChannelServer().getWorldInterface().broadcastMessage(null, MaplePacketCreator.serverNotice(6, player.getName() + " tried to use packet edit").getBytes());
} catch (RemoteException e) {
c.getChannelServer().reconnectWorld();
}
player.getClient().disconnect();
} else { //.. do the regular stuff.
int petId = slea.readInt();
slea.readInt();
slea.readByte();
int act = slea.readByte();
if (act > 0x15) {
return;
}
String text = slea.readMapleAsciiString();
c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.petChat(c.getPlayer().getId(), c.getPlayer().getPetIndex(petId), act, text), true);
}
}
}
 
Junior Spellweaver
Joined
Dec 21, 2013
Messages
140
Reaction score
3
Greetings! That is done correctly.

To block 'map crashes' you need not only the packet, but you need to know where it's handled as well in order to block it. You can use the same method as the one you posted

Good luck!
 
Upvote 0
Newbie Spellweaver
Joined
Dec 22, 2013
Messages
57
Reaction score
10
@Modify
That's a bad way of doing it.
For example I can just change [DF 00 00 00] to [E0 00 00 00] (which is the pet id) or anything else in the packet (while avoiding that specific packet check) and still be able to crash everyone in the map.

@DragonNC
I suggest you read every post in this thread (Also compare the handlers since yours is incorrect) for pet crash and knowledge on how to patch future crashes:
http://forum.ragezone.com/f566/packet-block-1040890/
 
Upvote 0
Newbie Spellweaver
Joined
Jun 14, 2010
Messages
58
Reaction score
0
Alright, thanks for the replies, anyways, how do i read 7B 00 04 B7 50 00 00 00 00 ?
i only know 7B 00 is player interaction. i'm not sure how to read the others
 
Upvote 0
Back
Top