Jump to content

[Share] Fix for l2jattacker.


Zake

Recommended Posts

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.

Link to comment
Share on other sites

  • 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

Link to comment
Share on other sites

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 :)!

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • I didn't even want to touch on your name Celestine, but it took a while to want to protect it, right? But then I say, everyone knows that you and your group helped Vraekar in deobfuscating the interfaces, do you want me to post here the dates and videos of the releases of the OMG and Silence interfaces?, and then see Vraekar's?, do you want?, a blatant copy, even their variable names, the theft is blatant, and you who are an admin here at Max and say you are the right one, helped him decrypt and remove the code obfuscation, everyone knows that, and now you come and tell me that his code is not copied?, if you want I can put all the evidence here and this will be very ugly even for you, since those you helped Vraekar and the interface dev community know this, they know about the thefts, very ugly indeed my friend that you still come and tell such a lie.   ps. And just one more thing, did you say that all the code he wrote? you became a joker? Vraekar doesn't program a single line of code, the guy works as a data analyst, what he learned was to copy and paste ready-made codes, but he doesn't write a single line of code.
    • I'd like to join aCis community but i can't handle the contributions that often due to my job. I'm returning to L2 development after a few years away and it would be awesome getting this source to work. I can (and would like to) contribute with reviews and code now and then (i'm software engineer for global companies), but sadly i can't commit the time.   I have a hard sense of ethical to not not leak anything (my current web project is paid from nkdev even when there's a leaked version floating around.)   Please let me know when/if acceptance through donations is available again. @Tryskell   In the mean time, gl on your project. Sounds amazing.
    • I don't understand why you're judging Vraekar at all. He did nothing wrong. I've checked the code from that interface, and all the code inside the UC was written by Vraekar. Nothing was copy-pasted. It's the people who stole this patch and are reselling it at a higher price so who's the scammer here, Vraekar or them?
    • Greetings! I'm looking for someone that knows how to improve the movements on the gameplay and to create a mod for awsd movement so camera won't move with the character on L2 Classic, more info pm and if you already know how to do these, pm with your price, thank you!
    • não é grátis? não consigo ver o link 😞
  • Topics

×
×
  • Create New...