Jump to content

[SHARE]L2Walker Command Restriction


Intrepid

Recommended Posts

I've a few minutes of free time so i made this little patch to kill L2Walker :)

The idea came from L2JOfficial i just searched on the internet for Gracia Final Walker Commands :P

 

Credits to me Please give test results :)

 

V2.: after more research as i see all commands are uppercase so i changed them to uppercase

 

### Eclipse Workspace Patch 1.0
#P l2emu-game
Index: src/main/java/com/l2emu/gameserver/network/clientpackets/Say2.java
===================================================================
--- src/main/java/com/l2emu/gameserver/network/clientpackets/Say2.java	(revision 2030)
+++ src/main/java/com/l2emu/gameserver/network/clientpackets/Say2.java	(working copy)
@@ -15,6 +15,7 @@
package com.l2emu.gameserver.network.clientpackets;

import java.nio.BufferUnderflowException;
+import java.util.HashSet;
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
@@ -29,11 +30,6 @@
import com.l2emu.gameserver.util.IllegalPlayerAction;
import com.l2emu.gameserver.util.Util;

-/**
- * This class ...
- * 
- * @version $Revision: 1.16.2.12.2.7 $ $Date: 2005/04/11 10:06:11 $
- */
public final class Say2 extends L2GameClientPacket
{
	private static final String _C__38_SAY2 = "[C] 38 Say2";
@@ -56,10 +52,19 @@
	public final static int BATTLEFIELD = 20;
	private final static String[] CHAT_NAMES = { "ALL  ", "SHOUT", "TELL ", "PARTY", "CLAN ", "GM   ", "PETITION_PLAYER", "PETITION_GM", "TRADE", "ALLIANCE", "ANNOUNCEMENT", // 10
			"WILLCRASHCLIENT:)", "FAKEALL?", "FAKEALL?", "FAKEALL?", "PARTYROOM_ALL", "PARTYROOM_COMMANDER", "HERO_VOICE", "UNKNOWN", "UNKNOWN", "BATTLEFIELD" };
+	private static final String[] WALKER_COMMAND_LIST = { "USESKILL", "USEITEM", "BUYITEM", "SELLITEM", "SAVEITEM", "LOADITEM", "MSG", "SET", "DELAY", "LABEL", "JMP", "CALL",
+			"RETURN", "MOVETO", "NPCSEL", "NPCDLG", "DLGSEL", "CHARSTATUS", "POSOUTRANGE", "POSINRANGE", "GOHOME", "SAY", "EXIT", "PAUSE", "STRINDLG", "STRNOTINDLG", "CHANGEWAITTYPE",
+			"FORCEATTACK", "ISMEMBER", "REQUESTJOINPARTY", "REQUESTOUTPARTY", "QUITPARTY", "MEMBERSTATUS", "CHARBUFFS", "ITEMCOUNT", "FOLLOWTELEPORT" };
+	private final static HashSet<String> WALKER_COMMAND_LIST_SET = new HashSet<String>(301);
	private String _text;
	private int _type;
	private String _target;
-
+	static
+	{
+		for (String WalkerCmdlist : WALKER_COMMAND_LIST)
+			WALKER_COMMAND_LIST_SET.add(WalkerCmdlist);
+	}
+	
	@Override
	protected void readImpl()
	{
@@ -105,7 +110,9 @@
			activeChar.sendPacket(new SystemMessage(SystemMessageId.DONT_SPAM));
			return;
		}
-		if (Config.BAN_CLIENT_EMULATORS && _type == TELL && _text.startsWith("FOLLOWTELEPORT"))
+		
+		String WalkerCmdlist = "";
+		if (Config.BAN_CLIENT_EMULATORS && _type == TELL && WALKER_COMMAND_LIST_SET.contains(WalkerCmdlist))
		{
			Util.handleIllegalPlayerAction(activeChar, "Client Emulator Detect: Player " + activeChar.getName() + " using l2walker.", IllegalPlayerAction.PUNISH_JAIL);
			// Todo : punish also target (?)

Link to comment
Share on other sites

by using this code it means that its a protection against walker?

 

L2Walker use commands these commands get used in the ALL chat channel(the white one)but you dont see it thats why its a bot that share if its working ofc i shared it for testing restrict these commands so when the walker try to use them the system punish him with a jail by default if you want to change it change that value IllegalPlayerAction.PUNISH_JAIL to another that you want.

Link to comment
Share on other sites

I try apply code to l2jsever but not work player on l2walker can auto accept party but can't FOLLOWTELEPORT

 

 

can you tell me whats the command of the auto accept party?

Link to comment
Share on other sites

Mmm.. good share.

 

I tried to use it on L2jserver, and i did some modification.

 

After This:

 

 "PARTYROOM_ALL",
                                          "PARTYROOM_COMMANDER",
                                          "HERO_VOICE",
                                          "UNKNOWN",
                                          "UNKNOWN",
                                          "BATTLEFIELD"
};

 

add this:

 

		private static final String[] WALKER_COMMAND_LIST = { "USESKILL", "USEITEM", "BUYITEM", "SELLITEM", "SAVEITEM", "LOADITEM", "MSG", "SET", "DELAY", "LABEL", "JMP", "CALL",
				"RETURN", "MOVETO", "NPCSEL", "NPCDLG", "DLGSEL", "CHARSTATUS", "POSOUTRANGE", "POSINRANGE", "GOHOME", "SAY", "EXIT", "PAUSE", "STRINDLG", "STRNOTINDLG", "CHANGEWAITTYPE",
				"FORCEATTACK", "ISMEMBER", "REQUESTJOINPARTY", "REQUESTOUTPARTY", "QUITPARTY", "MEMBERSTATUS", "CHARBUFFS", "ITEMCOUNT", "FOLLOWTELEPORT" };
		private final static HashSet<String> WALKER_COMMAND_LIST_SET = new HashSet<String>(301);

 

After this:

 

	private String _text;
private int _type;
private String _target;

 

Add this:

 

			static
	{
		for (String WalkerCmdlist : WALKER_COMMAND_LIST)
			WALKER_COMMAND_LIST_SET.add(WalkerCmdlist);
	}

 

After this:

 

if (_text.length() > 105)
	{
		activeChar.sendPacket(new SystemMessage(SystemMessageId.DONT_SPAM));
		return;
	}

 

Add This:

 

String WalkerCmdlist = "";
			if (_type == TELL && WALKER_COMMAND_LIST_SET.contains(WalkerCmdlist))
			{
	 			Util.handleIllegalPlayerAction(activeChar, "Client Emulator Detect: Player " + activeChar.getName() + " using l2walker.", IllegalPlayerAction.PUNISH_KICK);
	 			// Todo : punish also target (?)
			}

 

The last part in L2j server there isn't.

 

With this change, does the protection work?

Link to comment
Share on other sites

Mmm.. good share.

 

I tried to use it on L2jserver, and i did some modification.

 

After This:

 

 "PARTYROOM_ALL",
                                          "PARTYROOM_COMMANDER",
                                          "HERO_VOICE",
                                          "UNKNOWN",
                                          "UNKNOWN",
                                          "BATTLEFIELD"
};

 

add this:

 

		private static final String[] WALKER_COMMAND_LIST = { "USESKILL", "USEITEM", "BUYITEM", "SELLITEM", "SAVEITEM", "LOADITEM", "MSG", "SET", "DELAY", "LABEL", "JMP", "CALL",
				"RETURN", "MOVETO", "NPCSEL", "NPCDLG", "DLGSEL", "CHARSTATUS", "POSOUTRANGE", "POSINRANGE", "GOHOME", "SAY", "EXIT", "PAUSE", "STRINDLG", "STRNOTINDLG", "CHANGEWAITTYPE",
				"FORCEATTACK", "ISMEMBER", "REQUESTJOINPARTY", "REQUESTOUTPARTY", "QUITPARTY", "MEMBERSTATUS", "CHARBUFFS", "ITEMCOUNT", "FOLLOWTELEPORT" };
		private final static HashSet<String> WALKER_COMMAND_LIST_SET = new HashSet<String>(301);

 

After this:

 

	private String _text;
private int _type;
private String _target;

 

Add this:

 

			static
	{
		for (String WalkerCmdlist : WALKER_COMMAND_LIST)
			WALKER_COMMAND_LIST_SET.add(WalkerCmdlist);
	}

 

After this:

 

if (_text.length() > 105)
	{
		activeChar.sendPacket(new SystemMessage(SystemMessageId.DONT_SPAM));
		return;
	}

 

Add This:

 

String WalkerCmdlist = "";
			if (_type == TELL && WALKER_COMMAND_LIST_SET.contains(WalkerCmdlist))
			{
	 			Util.handleIllegalPlayerAction(activeChar, "Client Emulator Detect: Player " + activeChar.getName() + " using l2walker.", IllegalPlayerAction.PUNISH_KICK);
	 			// Todo : punish also target (?)
			}

 

The last part in L2j server there isn't.

 

With this change, does the protection work?

 

yes works

Link to comment
Share on other sites

Smart one, i've done the same with another exploit.

 

I didn't know that someone can find the commands of walker. Gj. Any luck with l2net?

Link to comment
Share on other sites

Smart one, i've done the same with another exploit.

 

I didn't know that someone can find the commands of walker. Gj. Any luck with l2net?

 

L2Net dont use commands

Link to comment
Share on other sites

How easily walker can be tracked like in this share... come on, such a simple way to get l2walker caught...

This share killed the only thing that walker was still good at...

So, you cant autocombat with it (cuz most servers have such protection now), nor use scripts, and u have to pay to use it (Means it needs cracking :D)

 

Summary:

You pay or struggling to crack something that lacks of basic bot options(autocombat/scripting).

 

GZ Intrepid you just killed L2Walker...

L2Net winz ftw

 

Link to comment
Share on other sites

How easily walker can be tracked like in this share... come on, such a simple way to get l2walker caught...

This share killed the only thing that walker was still good at...

So, you cant autocombat with it (cuz most servers have such protection now), nor use scripts, and u have to pay to use it (Means it needs cracking :D)

 

Summary:

You pay or struggling to crack something that lacks of basic bot options(autocombat/scripting).

 

GZ Intrepid you just killed L2Walker...

L2Net winz ftw

 

 

should i start to read about L2Net too ? :D

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock