Hello,
I am making anti-bot tool and I want to add two custom bytes after header (packet size).
My packets sended to server will look like
[xx xx] [m][m][nn nn nn nn nn nn nn....
xx - packet size (header)
m - my custom header bytes.
nn - encrypted packet
What's the best place to read my custom header bytes, before processing and decrypting packet on server?
I tried to get them inside L2GamePacketHandler.java with buf.get() before getting opcode of encrypted packet, but when server send to client a keyPacket, client sends back an unknown packet, because something bad is happening.
My code on server:
public ReceivablePacket<L2GameClient> handlePacket(ByteBuffer buf, L2GameClient client)
{
if (client.dropPacket())
return null;
int opcode = buf.get() & 0xFF;
if (opcode == 0xFE)
{
int _byte2 = buf.get(); // get another custom header byte
System.out.println("Found: " + _byte2);
opcode = buf.get() & 0xFF; // now read packet opcode.
}
ReceivablePacket<L2GameClient> msg = null;
GameClientState state = client.getState();
switch (state)
{
case CONNECTED:
switch (opcode)
{
case 0x00:
msg = new ProtocolVersion();
break;
case 0x08:
P.S my two custom bytes are included in packet size.