Skip to content

[Share] Fix for l2jattacker.

Featured Replies

Hello Mxc forum,

 

In my attempt to correct l2jattackers and other packet flooding sh***s i tried to rework the mmocore, i didn't find the way so i made a code for packethandler debug,

Anyway here we are:

 

 

Index: java/config/server.properties

===================================================================

--- java/config/server.properties (revision 3695)

+++ java/config/server.properties (working copy)

@@ -64,6 +64,8 @@

# Define how many players are allowed to play simultaneously on your server.

MaximumOnlineUsers=100

 

+# Packet Handler Debug

+PacketHandlerDebug = False

 

# Minimum and maximum protocol revision that server allow to connect.

# You must keep MinProtocolRevision <= MaxProtocolRevision.

Index: java/net/sf/l2j/Config.java

===================================================================

--- java/net/sf/l2j/Config.java (revision 3695)

+++ java/net/sf/l2j/Config.java (working copy)

@@ -728,7 +728,8 @@

    public static int        SELECTED_NODE_ID;

    public static int        LINKED_NODE_ID;

    public static String     NEW_NODE_TYPE;

-

+    public static boolean PACKET_HANDLER_DEBUG;

+    

    /** Show "data/html/servnews.htm" whenever a character enters world.*/

    public static boolean SERVER_NEWS;

    /** Show L2Monster level and aggro ? */

@@ -1185,7 +1186,7 @@

 

                EXTERNAL_HOSTNAME       = serverSettings.getProperty("ExternalHostname", "*");

                INTERNAL_HOSTNAME       = serverSettings.getProperty("InternalHostname", "*");

-

+                PACKET_HANDLER_DEBUG = Boolean.parseBoolean(serverSettings.getProperty("PacketHandlerDebug", "False"));

                GAME_SERVER_LOGIN_PORT  = Integer.parseInt(serverSettings.getProperty("LoginPort","9014"));

                GAME_SERVER_LOGIN_HOST  = serverSettings.getProperty("LoginHost","127.0.0.1");

 

Index: java/net/sf/l2j/gameserver/clientpackets/L2GameClientPacket.java

===================================================================

--- java/net/sf/l2j/gameserver/clientpackets/L2GameClientPacket.java (revision 3695)

+++ java/net/sf/l2j/gameserver/clientpackets/L2GameClientPacket.java (working copy)

@@ -46,6 +46,9 @@

}

catch (Throwable t)

{

+ if (!Config.PACKET_HANDLER_DEBUG)

+ return;

+

_log.severe("Client: "+getClient().toString()+" - Failed reading: "+getType()+" - L2J Server Version: "+Config.SERVER_VERSION+" - DP Revision: "+Config.DATAPACK_VERSION);

t.printStackTrace();

}

@@ -90,6 +93,9 @@

}

catch (Throwable t)

{

+ if (!Config.PACKET_HANDLER_DEBUG)

+ return false;

+

_log.severe("Client: "+getClient().toString()+" - Failed running: "+getType()+" - L2J Server Version: "+Config.SERVER_VERSION+" - DP Revision: "+Config.DATAPACK_VERSION);

t.printStackTrace();

}

Index: java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java

===================================================================

--- java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java (revision 3695)

+++ java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java (working copy)

@@ -813,6 +813,9 @@

 

private void printDebug(int opcode, ByteBuffer buf, GameClientState state, L2GameClient client)

{

+ if (!Config.PACKET_HANDLER_DEBUG)

+ return false;

+

int size = buf.remaining();

      _log.warning("Unknown Packet: "+Integer.toHexString(opcode)+" on State: "+state.name()+" Client: "+client.toString());

      byte[] array = new byte;

@@ -822,6 +825,9 @@

 

private void printDebugDoubleOpcode(int opcode, int id2, ByteBuffer buf, GameClientState state, L2GameClient client)

{

+ if (!Config.PACKET_HANDLER_DEBUG)

+ return false;

+

int size = buf.remaining();

      _log.warning("Unknown Packet: "+Integer.toHexString(opcode)+":" + Integer.toHexString(id2)+" on State: "+state.name()+" Client: "+client.toString());

      byte[] array = new byte;

Index: java/net/sf/l2j/gameserver/serverpackets/L2GameServerPacket.java

===================================================================

--- java/net/sf/l2j/gameserver/serverpackets/L2GameServerPacket.java (revision 3695)

+++ java/net/sf/l2j/gameserver/serverpackets/L2GameServerPacket.java (working copy)

@@ -44,6 +44,9 @@

}

catch (Throwable t)

{

+ if (Config.PACKET_HANDLER_DEBUG)

+ return false;

+

_log.severe("Client: "+getClient().toString()+" - Failed writing: "+getType()+" - L2J Server Version: "+Config.SERVER_VERSION+" - DP Revision: "+Config.DATAPACK_VERSION);

t.printStackTrace();

}

Index: java/net/sf/l2j/loginserver/L2LoginPacketHandler.java

===================================================================

--- java/net/sf/l2j/loginserver/L2LoginPacketHandler.java (revision 3695)

+++ java/net/sf/l2j/loginserver/L2LoginPacketHandler.java (working copy)

@@ -19,6 +19,7 @@

 

import java.nio.ByteBuffer;

 

+import net.sf.l2j.Config;

import net.sf.l2j.loginserver.L2LoginClient.LoginClientState;

import net.sf.l2j.loginserver.clientpackets.AuthGameGuard;

import net.sf.l2j.loginserver.clientpackets.RequestAuthLogin;

@@ -87,6 +88,9 @@

 

private void debugOpcode(int opcode, LoginClientState state)

{

+ if (!Config.PACKET_HANDLER_DEBUG)

+ return false;

+

System.out.println("Unknown Opcode: "+opcode+" for state: "+state.name());

}

}

Index: java/net/sf/l2j/loginserver/clientpackets/L2LoginClientPacket.java

===================================================================

--- java/net/sf/l2j/loginserver/clientpackets/L2LoginClientPacket.java (revision 3695)

+++ java/net/sf/l2j/loginserver/clientpackets/L2LoginClientPacket.java (working copy)

@@ -19,6 +19,7 @@

 

import java.util.logging.Logger;

 

+import net.sf.l2j.Config;

import net.sf.l2j.loginserver.L2LoginClient;

 

import com.l2jserver.mmocore.network.ReceivablePacket;

@@ -43,6 +44,8 @@

}

catch (Exception e)

{

+ if (!Config.PACKET_HANDLER_DEBUG)

+ return;

_log.severe("ERROR READING: "+this.getClass().getSimpleName());

e.printStackTrace();

return false;

 

Credits: me,

 

Hope you enjoy this.

  • 4 weeks later...

are u kidding me? DS commited that on l2js timeline 1 year ago >.> at least when u copy someone change ur variable name >.>

Also what u did is a boolean check, which is not such a big deal to acct so lame and point out credits xD

are u kidding me? DS commited that on l2js timeline 1 year ago >.> at least when u copy someone change ur variable name >.>

Also what u did is a boolean check, which is not such a big deal to acct so lame and point out credits xD

 

I knew it :P!!! Already fixed :)!

Hi it says to me [Hidden post: This post has been hidden by a moderator.]

Why i can't see that??

 

Hi it says to me [Hidden post: This post has been hidden by a moderator.]

Why i can't see that??

 

you must be VIP or Donator member to see it

you must be VIP or Donator member to see it

 

aaaah oks i will donate soon thanx :D

Why can not I see the Share?

you must be VIP or Donator member to see it

 

lol, just lol. I wonder how long this forum will exist with this kind of attitude.

 

And especially for a simple copied fix I guess.

[Hidden post: This post has been hidden by a moderator.]

 

For his government which appears here in this house is!

 

So do not question me saw Scuttle

[Hidden post: This post has been hidden by a moderator.]

 

For his government which appears here in this house is!

 

So do not question me saw Scuttle

 

:/ aff

  • 4 weeks later...

That is fixet thill  in all interlude server so that dont work sry cuz i say it but you dont deserve Karma FOr 1thing what dont work!!

 

Karma Fixet!

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.