[Help]I need L2jAttacker Fix
Forum rules
READ NOW: L2j Forums Rules of Conduct
READ NOW: L2j Forums Rules of Conduct
-
- Posts: 12
- Joined: Tue Jan 05, 2010 6:45 pm
[Help]I need L2jAttacker Fix
L2J Revision 3883:
L2JDP Revision 6988:
Hello Guys
I am working in l2j Interlude Pack and i want if you can give me an l2jattacker fix...
Thanks
L2JDP Revision 6988:
Hello Guys
I am working in l2j Interlude Pack and i want if you can give me an l2jattacker fix...
Thanks
-
- Posts: 12
- Joined: Tue Jan 05, 2010 6:45 pm
Re: [Help]I need L2jAttacker Fix
No-One have the fix??
- Stake
- Posts: 383
- Joined: Sun Mar 23, 2008 9:33 pm
- Location: Hungary
- Contact:
Re: [Help]I need L2jAttacker Fix
Hi!
Interlude has the latest revision at 1433. What fix do you mean?
Interlude has the latest revision at 1433. What fix do you mean?



-
- Posts: 12
- Joined: Tue Jan 05, 2010 6:45 pm
Re: [Help]I need L2jAttacker Fix
L2JAttacker is already fixed?
- janiii
- L2j Veteran
- Posts: 4269
- Joined: Wed May 28, 2008 3:15 pm
- Location: Slovakia
Re: [Help]I need L2jAttacker Fix
check this: http://www.l2jserver.com/trac/changeset/3774
DO NOT EVEN TRY TO MESS WITH ME!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
-
- Posts: 22
- Joined: Sun Jan 31, 2010 3:15 pm
Re: [Help]I need L2jAttacker Fix
this is for gracia final i need for interlude plsjaniii wrote:check this: http://www.l2jserver.com/trac/changeset/3774
- janiii
- L2j Veteran
- Posts: 4269
- Joined: Wed May 28, 2008 3:15 pm
- Location: Slovakia
Re: [Help]I need L2jAttacker Fix
for interlude:
http://www.pastebin.cz/31377
http://www.pastebin.cz/31377
Code: Select all
Index: java/net/sf/l2j/gameserver/GameServer.java===================================================================--- java/net/sf/l2j/gameserver/GameServer.java (revision 3898)+++ java/net/sf/l2j/gameserver/GameServer.java (working copy)@@ -59,7 +59,6 @@ import net.sf.l2j.gameserver.datatables.SummonItemsData; import net.sf.l2j.gameserver.datatables.TeleportLocationTable; import net.sf.l2j.gameserver.datatables.ZoneData;- import net.sf.l2j.gameserver.geoeditorcon.GeoEditorListener; import net.sf.l2j.gameserver.handler.AdminCommandHandler; import net.sf.l2j.gameserver.handler.ItemHandler;@@ -134,6 +133,7 @@ import net.sf.l2j.gameserver.handler.itemhandlers.Firework; import net.sf.l2j.gameserver.handler.itemhandlers.FishShots; import net.sf.l2j.gameserver.handler.itemhandlers.Harvester;+import net.sf.l2j.gameserver.handler.itemhandlers.Maps; import net.sf.l2j.gameserver.handler.itemhandlers.MercTicket; import net.sf.l2j.gameserver.handler.itemhandlers.MysteryPotion; import net.sf.l2j.gameserver.handler.itemhandlers.PaganKeys;@@ -151,7 +151,6 @@ import net.sf.l2j.gameserver.handler.itemhandlers.SpecialXMas; import net.sf.l2j.gameserver.handler.itemhandlers.SpiritShot; import net.sf.l2j.gameserver.handler.itemhandlers.SummonItems;-import net.sf.l2j.gameserver.handler.itemhandlers.Maps; import net.sf.l2j.gameserver.handler.skillhandlers.BalanceLife; import net.sf.l2j.gameserver.handler.skillhandlers.BeastFeed; import net.sf.l2j.gameserver.handler.skillhandlers.Blow;@@ -229,6 +228,7 @@ import net.sf.l2j.gameserver.util.DynamicExtension; import net.sf.l2j.gameserver.util.FloodProtector; import net.sf.l2j.status.Status;+import net.sf.l2j.util.IPv4Filter; import com.l2jserver.mmocore.network.SelectorServerConfig; import com.l2jserver.mmocore.network.SelectorThread;@@ -660,6 +660,7 @@ SelectorServerConfig ssc = new SelectorServerConfig(Config.PORT_GAME); L2GamePacketHandler gph = new L2GamePacketHandler(); _selectorThread = new SelectorThread<L2GameClient>(ssc, gph, gph, gph);+ _selectorThread.setAcceptFilter(new IPv4Filter()); _selectorThread.openServerSocket(); _selectorThread.start(); _log.config("Maximum Numbers of Connected Players: " + Config.MAXIMUM_ONLINE_USERS);Index: java/net/sf/l2j/loginserver/SelectorHelper.java===================================================================--- java/net/sf/l2j/loginserver/SelectorHelper.java (revision 3898)+++ java/net/sf/l2j/loginserver/SelectorHelper.java (working copy)@@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit; import net.sf.l2j.loginserver.serverpackets.Init;+import net.sf.l2j.util.IPv4Filter; import com.l2jserver.mmocore.network.IAcceptFilter; import com.l2jserver.mmocore.network.IClientFactory;@@ -37,10 +38,12 @@ public class SelectorHelper implements IMMOExecutor<L2LoginClient>, IClientFactory<L2LoginClient>, IAcceptFilter { private ThreadPoolExecutor _generalPacketsThreadPool;+ private IPv4Filter _ipv4filter; public SelectorHelper() { _generalPacketsThreadPool = new ThreadPoolExecutor(4, 6, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());+ _ipv4filter = new IPv4Filter(); } /**@@ -66,7 +69,7 @@ */ public boolean accept(SocketChannel sc) {- return !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress());+ return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } }Index: java/net/sf/l2j/util/IPv4Filter.java===================================================================--- java/net/sf/l2j/util/IPv4Filter.java (revision 0)+++ java/net/sf/l2j/util/IPv4Filter.java (revision 0)@@ -0,0 +1,149 @@+/*+ * This program is free software: you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free Software+ * Foundation, either version 3 of the License, or (at your option) any later+ * version.+ * + * This program is distributed in the hope that it will be useful, but WITHOUT+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more+ * details.+ * + * You should have received a copy of the GNU General Public License along with+ * this program. If not, see <http://www.gnu.org/licenses/>.+ */++package net.sf.l2j.util;++import java.net.InetAddress;+import java.nio.channels.SocketChannel;+import java.util.ArrayList;+import java.util.HashMap;+import java.util.Map.Entry;++import com.l2jserver.mmocore.network.IAcceptFilter;++/**+ * Formatted Forsaiken's IPv4 filter [DrHouse]+ * + * @author Forsaiken+ *+ */+public class IPv4Filter implements IAcceptFilter, Runnable+{+ private HashMap<Integer, Flood> _ipFloodMap;++ private static final long SLEEP_TIME = 5000;++ public IPv4Filter()+ {+ _ipFloodMap = new HashMap<Integer, Flood>();+ Thread t = new Thread(this);+ t.setDaemon(true);+ t.start();+ }++ /**+ * + * @param ip+ * @return+ */+ private static final int hash(byte[] ip)+ {+ return ip[0] & 0xFF | ip[1] << 8 & 0xFF00 | ip[2] << 16 & 0xFF0000+ | ip[3] << 24 & 0xFF000000;+ }++ protected static final class Flood+ {+ long lastAccess;++ int trys;++ Flood()+ {+ lastAccess = System.currentTimeMillis();+ trys = 0;+ }+ }++ public boolean accept(SocketChannel arg0)+ {+ InetAddress addr = arg0.socket().getInetAddress();+ int h = hash(addr.getAddress());++ long current = System.currentTimeMillis();+ Flood f;+ synchronized (_ipFloodMap)+ {+ f = _ipFloodMap.get(h);+ }+ if (f != null)+ {+ if (f.trys == -1)+ {+ f.lastAccess = current;+ return false;+ }++ if (f.lastAccess + 1000 > current)+ {+ f.lastAccess = current;++ if (f.trys >= 3)+ {+ f.trys = -1;+ return false;+ }++ f.trys++;+ } else+ {+ f.lastAccess = current;+ }+ } else+ {+ synchronized (_ipFloodMap)+ {+ _ipFloodMap.put(h, new Flood());+ }+ }++ return true;+ }++ public void run()+ {+ while (true)+ {+ long reference = System.currentTimeMillis() - (1000 * 300);+ ArrayList<Integer> toRemove = new ArrayList<Integer>(50);++ synchronized (_ipFloodMap)+ {+ for (Entry<Integer, Flood> e : _ipFloodMap.entrySet())+ {+ Flood f = e.getValue();+ if (f.lastAccess < reference)+ toRemove.add(e.getKey());+ }+ }++ synchronized (_ipFloodMap)+ {+ for (Integer i : toRemove)+ {+ _ipFloodMap.remove(i);+ }+ }++ try+ {+ Thread.sleep(SLEEP_TIME);+ } catch (InterruptedException e)+ {++ }+ }+ }+}\ No newline at end of file
DO NOT EVEN TRY TO MESS WITH ME!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
-
- Posts: 22
- Joined: Sun Jan 31, 2010 3:15 pm
Re: [Help]I need L2jAttacker Fix
just added this but when i can still attack 127.0.0.1 7777 like beforejaniii wrote:for interlude:
http://www.pastebin.cz/31377Code: Select all
Index: java/net/sf/l2j/gameserver/GameServer.java===================================================================--- java/net/sf/l2j/gameserver/GameServer.java (revision 3898)+++ java/net/sf/l2j/gameserver/GameServer.java (working copy)@@ -59,7 +59,6 @@ import net.sf.l2j.gameserver.datatables.SummonItemsData; import net.sf.l2j.gameserver.datatables.TeleportLocationTable; import net.sf.l2j.gameserver.datatables.ZoneData;- import net.sf.l2j.gameserver.geoeditorcon.GeoEditorListener; import net.sf.l2j.gameserver.handler.AdminCommandHandler; import net.sf.l2j.gameserver.handler.ItemHandler;@@ -134,6 +133,7 @@ import net.sf.l2j.gameserver.handler.itemhandlers.Firework; import net.sf.l2j.gameserver.handler.itemhandlers.FishShots; import net.sf.l2j.gameserver.handler.itemhandlers.Harvester;+import net.sf.l2j.gameserver.handler.itemhandlers.Maps; import net.sf.l2j.gameserver.handler.itemhandlers.MercTicket; import net.sf.l2j.gameserver.handler.itemhandlers.MysteryPotion; import net.sf.l2j.gameserver.handler.itemhandlers.PaganKeys;@@ -151,7 +151,6 @@ import net.sf.l2j.gameserver.handler.itemhandlers.SpecialXMas; import net.sf.l2j.gameserver.handler.itemhandlers.SpiritShot; import net.sf.l2j.gameserver.handler.itemhandlers.SummonItems;-import net.sf.l2j.gameserver.handler.itemhandlers.Maps; import net.sf.l2j.gameserver.handler.skillhandlers.BalanceLife; import net.sf.l2j.gameserver.handler.skillhandlers.BeastFeed; import net.sf.l2j.gameserver.handler.skillhandlers.Blow;@@ -229,6 +228,7 @@ import net.sf.l2j.gameserver.util.DynamicExtension; import net.sf.l2j.gameserver.util.FloodProtector; import net.sf.l2j.status.Status;+import net.sf.l2j.util.IPv4Filter; import com.l2jserver.mmocore.network.SelectorServerConfig; import com.l2jserver.mmocore.network.SelectorThread;@@ -660,6 +660,7 @@ SelectorServerConfig ssc = new SelectorServerConfig(Config.PORT_GAME); L2GamePacketHandler gph = new L2GamePacketHandler(); _selectorThread = new SelectorThread<L2GameClient>(ssc, gph, gph, gph);+ _selectorThread.setAcceptFilter(new IPv4Filter()); _selectorThread.openServerSocket(); _selectorThread.start(); _log.config("Maximum Numbers of Connected Players: " + Config.MAXIMUM_ONLINE_USERS);Index: java/net/sf/l2j/loginserver/SelectorHelper.java===================================================================--- java/net/sf/l2j/loginserver/SelectorHelper.java (revision 3898)+++ java/net/sf/l2j/loginserver/SelectorHelper.java (working copy)@@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit; import net.sf.l2j.loginserver.serverpackets.Init;+import net.sf.l2j.util.IPv4Filter; import com.l2jserver.mmocore.network.IAcceptFilter; import com.l2jserver.mmocore.network.IClientFactory;@@ -37,10 +38,12 @@ public class SelectorHelper implements IMMOExecutor<L2LoginClient>, IClientFactory<L2LoginClient>, IAcceptFilter { private ThreadPoolExecutor _generalPacketsThreadPool;+ private IPv4Filter _ipv4filter; public SelectorHelper() { _generalPacketsThreadPool = new ThreadPoolExecutor(4, 6, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());+ _ipv4filter = new IPv4Filter(); } /**@@ -66,7 +69,7 @@ */ public boolean accept(SocketChannel sc) {- return !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress());+ return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } }Index: java/net/sf/l2j/util/IPv4Filter.java===================================================================--- java/net/sf/l2j/util/IPv4Filter.java (revision 0)+++ java/net/sf/l2j/util/IPv4Filter.java (revision 0)@@ -0,0 +1,149 @@+/*+ * This program is free software: you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free Software+ * Foundation, either version 3 of the License, or (at your option) any later+ * version.+ * + * This program is distributed in the hope that it will be useful, but WITHOUT+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more+ * details.+ * + * You should have received a copy of the GNU General Public License along with+ * this program. If not, see <http://www.gnu.org/licenses/>.+ */++package net.sf.l2j.util;++import java.net.InetAddress;+import java.nio.channels.SocketChannel;+import java.util.ArrayList;+import java.util.HashMap;+import java.util.Map.Entry;++import com.l2jserver.mmocore.network.IAcceptFilter;++/**+ * Formatted Forsaiken's IPv4 filter [DrHouse]+ * + * @author Forsaiken+ *+ */+public class IPv4Filter implements IAcceptFilter, Runnable+{+ private HashMap<Integer, Flood> _ipFloodMap;++ private static final long SLEEP_TIME = 5000;++ public IPv4Filter()+ {+ _ipFloodMap = new HashMap<Integer, Flood>();+ Thread t = new Thread(this);+ t.setDaemon(true);+ t.start();+ }++ /**+ * + * @param ip+ * @return+ */+ private static final int hash(byte[] ip)+ {+ return ip[0] & 0xFF | ip[1] << 8 & 0xFF00 | ip[2] << 16 & 0xFF0000+ | ip[3] << 24 & 0xFF000000;+ }++ protected static final class Flood+ {+ long lastAccess;++ int trys;++ Flood()+ {+ lastAccess = System.currentTimeMillis();+ trys = 0;+ }+ }++ public boolean accept(SocketChannel arg0)+ {+ InetAddress addr = arg0.socket().getInetAddress();+ int h = hash(addr.getAddress());++ long current = System.currentTimeMillis();+ Flood f;+ synchronized (_ipFloodMap)+ {+ f = _ipFloodMap.get(h);+ }+ if (f != null)+ {+ if (f.trys == -1)+ {+ f.lastAccess = current;+ return false;+ }++ if (f.lastAccess + 1000 > current)+ {+ f.lastAccess = current;++ if (f.trys >= 3)+ {+ f.trys = -1;+ return false;+ }++ f.trys++;+ } else+ {+ f.lastAccess = current;+ }+ } else+ {+ synchronized (_ipFloodMap)+ {+ _ipFloodMap.put(h, new Flood());+ }+ }++ return true;+ }++ public void run()+ {+ while (true)+ {+ long reference = System.currentTimeMillis() - (1000 * 300);+ ArrayList<Integer> toRemove = new ArrayList<Integer>(50);++ synchronized (_ipFloodMap)+ {+ for (Entry<Integer, Flood> e : _ipFloodMap.entrySet())+ {+ Flood f = e.getValue();+ if (f.lastAccess < reference)+ toRemove.add(e.getKey());+ }+ }++ synchronized (_ipFloodMap)+ {+ for (Integer i : toRemove)+ {+ _ipFloodMap.remove(i);+ }+ }++ try+ {+ Thread.sleep(SLEEP_TIME);+ } catch (InterruptedException e)+ {++ }+ }+ }+}\ No newline at end of file

- janiii
- L2j Veteran
- Posts: 4269
- Joined: Wed May 28, 2008 3:15 pm
- Location: Slovakia
Re: [Help]I need L2jAttacker Fix
you asked for the java code that fixed l2jattacker vulnerability. i gave it to you, extra made the interlude patch only for you. if it doesn't work for you, i can't help you any more, sry.
DO NOT EVEN TRY TO MESS WITH ME!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
-
- Posts: 22
- Joined: Sun Jan 31, 2010 3:15 pm
Re: [Help]I need L2jAttacker Fix
i have the server at my pc but if i attack from my pc i lag in 3 seconds i tried from other pc and i didnt laged at all... maybe cause its the same pc?janiii wrote:you asked for the java code that fixed l2jattacker vulnerability. i gave it to you, extra made the interlude patch only for you. if it doesn't work for you, i can't help you any more, sry.
- janiii
- L2j Veteran
- Posts: 4269
- Joined: Wed May 28, 2008 3:15 pm
- Location: Slovakia
Re: [Help]I need L2jAttacker Fix
l2jattacker needs much resources. you probably dont understand what it does and when it is successfull in flooding your server and when not.
if you start it and it shows a high connected number but no disconnected and no killer errors, then has not yet crashed the server.
when you see the killer error number is getting higher, it means the gameserver is already dead. if this happens from the start of the l2jkiller, then you are protected because the connections from it get dropped straight away. if it happens after a while, it means your gameserver crashed because of the flood.
if you start it and it shows a high connected number but no disconnected and no killer errors, then has not yet crashed the server.
when you see the killer error number is getting higher, it means the gameserver is already dead. if this happens from the start of the l2jkiller, then you are protected because the connections from it get dropped straight away. if it happens after a while, it means your gameserver crashed because of the flood.
DO NOT EVEN TRY TO MESS WITH ME!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
forum flOOder dancing dEVILoper ♀
I don't give private support - PM will be ignored!
- Stake
- Posts: 383
- Joined: Sun Mar 23, 2008 9:33 pm
- Location: Hungary
- Contact:
Re: [Help]I need L2jAttacker Fix
getInetAddress() is just for external connections, not for localhost. You can get localhost by using getLocalAddress() instead of getInetAddress(). So if getInetAddress() returns null, then use getLocalAddress().Genoxide wrote:i have the server at my pc but if i attack from my pc i lag in 3 seconds i tried from other pc and i didnt laged at all... maybe cause its the same pc?janiii wrote:you asked for the java code that fixed l2jattacker vulnerability. i gave it to you, extra made the interlude patch only for you. if it doesn't work for you, i can't help you any more, sry.


-
- Posts: 22
- Joined: Sun Jan 31, 2010 3:15 pm
Re: [Help]I need L2jAttacker Fix
so its fixed? when they attack me i still see the digits in gs but i dont lag btw thx to janiii that she made thisStake wrote:getInetAddress() is just for external connections, not for localhost. You can get localhost by using getLocalAddress() instead of getInetAddress(). So if getInetAddress() returns null, then use getLocalAddress().Genoxide wrote:i have the server at my pc but if i attack from my pc i lag in 3 seconds i tried from other pc and i didnt laged at all... maybe cause its the same pc?janiii wrote:you asked for the java code that fixed l2jattacker vulnerability. i gave it to you, extra made the interlude patch only for you. if it doesn't work for you, i can't help you any more, sry.
- Cobra
- Posts: 18
- Joined: Thu Sep 11, 2008 4:46 pm
Re: [Help]I need L2jAttacker Fix
Yes is fixed... you use it on your local Computer and the l2jatacker using a lot of your cpu usage so is logical you have lag.
And as you see the source code is only for the external ip ;] not local .
What admin atack hes server? you? xD
And as you see the source code is only for the external ip ;] not local .
What admin atack hes server? you? xD