Jump to content

Neo1993k

Members
  • Posts

    671
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by Neo1993k

  1. Program work's but it's very old method and doeasn't work in 99% servers.... Scan Virus: http://www.virustotal.com/en/analisis/86a1a901217ea25c5abf5941faf1162d65abc5c7b625bfcf8b62cea7a3540759-1271109222
  2. Oh Really? omg I didn't know that VelvetValour was she... :( :( :( VelvetValour Sorry for my mistake... And one time Good share thanks!
  3. Nice npc but i don't like interlude ( i need for epilouge ;d). Thanks for share it.
  4. Wow it's very nice share! The best olympiad protection. Thanks men for it GJ
  5. Thanks for share it but i tested it in my L2jServer (epilouge) and not work ;/ Lf good DDos attacker Or u have any server where it work?
  6. Nice share, I will test it later and edit my post but thanks for share... gj
  7. L2Movie Maker + fence builder You start fence builder with //fbuilder and movie maker with //movie Preview: Download: (Core + DP) http://www.4shared.com/get/262392772/2e6ea902/L2Movie_Maker__fence_builder_b.html Credits: KKnD
  8. Stealth nice skeleton :), i wait for ur forum... I will join;]
  9. Hacking forum but with english lang;] it will be good:>
  10. I install and no work;/ any suggestion?:<
  11. Thanks for share it Ventic Good Job.
  12. ahh i can't run program... i Get error when i try run program... (it's application error)
  13. U mean service pack? or what if yes i use Windows XP Professional Service Pack 3
  14. Yes very nice job and i like it temple ;) Thanks for share!
  15. No work for me ;/
  16. Amazing program ;] Very usefull thanks for share!!!
  17. I prefer L2jServer ofc daily update's and good support on forum + very stable files
  18. Nice program and work's fine... Thanks for share... Work in server with no flood protection (chat)
  19. This is code which set-up config siege every week (In retail siege = every 2 week)
  20. Dear friend, First u must read that topic http://www.maxcheaters.com/forum/index.php?topic=73559.0 by Matim [Java - Core Modifications] => Here u read "How to compile and edit java core] If u read it u must apply that patch Index: java/com/l2jserver/gameserver/GameServer.java <-- That line show u where u must apply it @@ -125,6 +125,7 @@ - Line number [help u with find it] --- java/com/l2jserver/gameserver/GameServer.java (revision 3751) --> Delete line +++ java/com/l2jserver/gameserver/GameServer.java (working copy) --> Add line ex: import com.l2jserver.gameserver.util.DynamicExtension; import com.l2jserver.status.Status; --> It's helper line (help with find) import com.l2jserver.util.DeadLockDetector;
  21. Nice share but can u give more screenshot?:) Thanks
  22. Yes it's realy nice share, like retail like :) Thanks For Share *work fine*
  23. 80 because it's high rate, no low:D
  24. Read guide how to compile ur server... I give u java patch fixing ur problem with attack... GL
  25. Index: java/com/l2jserver/gameserver/GameServer.java =================================================================== --- java/com/l2jserver/gameserver/GameServer.java (revision 3751) +++ java/com/l2jserver/gameserver/GameServer.java (working copy) @@ -125,6 +125,7 @@ import com.l2jserver.gameserver.util.DynamicExtension; import com.l2jserver.status.Status; import com.l2jserver.util.DeadLockDetector; +import com.l2jserver.util.IPv4Filter; /** * This class ... @@ -437,7 +438,7 @@ sc.HELPER_BUFFER_COUNT = Config.MMO_HELPER_BUFFER_COUNT; final L2GamePacketHandler gph = new L2GamePacketHandler(); - _selectorThread = new SelectorThread<L2GameClient>(sc, gph, gph, gph, null); + _selectorThread = new SelectorThread<L2GameClient>(sc, gph, gph, gph, new IPv4Filter()); InetAddress bindAddress = null; if (!Config.GAMESERVER_HOSTNAME.equals("*")) Index: java/com/l2jserver/loginserver/SelectorHelper.java =================================================================== --- java/com/l2jserver/loginserver/SelectorHelper.java (revision 3751) +++ java/com/l2jserver/loginserver/SelectorHelper.java (working copy) @@ -12,11 +12,7 @@ */ package com.l2jserver.loginserver; -import java.net.InetAddress; import java.nio.channels.SocketChannel; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map.Entry; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -29,23 +25,22 @@ import org.mmocore.network.ReceivablePacket; import com.l2jserver.loginserver.serverpackets.Init; +import com.l2jserver.util.IPv4Filter; /** * * @author KenM */ -public class SelectorHelper extends Thread implements IMMOExecutor<L2LoginClient>, +public class SelectorHelper implements IMMOExecutor<L2LoginClient>, IClientFactory<L2LoginClient>, IAcceptFilter { - private HashMap<Integer, Flood> _ipFloodMap; private ThreadPoolExecutor _generalPacketsThreadPool; + private IPv4Filter _ipv4filter; public SelectorHelper() { _generalPacketsThreadPool = new ThreadPoolExecutor(4, 6, 15L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); - _ipFloodMap = new HashMap<Integer, Flood>(); - super.setDaemon(true); - super.start(); + _ipv4filter = new IPv4Filter(); } /** @@ -74,110 +69,6 @@ */ public boolean accept(SocketChannel sc) { - InetAddress addr = sc.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 !LoginController.getInstance().isBannedAddress(addr); - } - - /** - * - * @param ip - * @return - */ - private int hash(byte[] ip) - { - return ip[0] & 0xFF | ip[1] << 8 & 0xFF00 | ip[2] << 16 & 0xFF0000 | ip[3] << 24 - & 0xFF000000; - } - - private class Flood - { - long lastAccess; - int trys; - - Flood() - { - lastAccess = System.currentTimeMillis(); - trys = 0; - } - } - - /** - * - * @see java.lang.Thread#run() - */ - @Override - 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(5000); - } - catch (InterruptedException e) - { - - - } - } + return _ipv4filter.accept(sc) && !LoginController.getInstance().isBannedAddress(sc.socket().getInetAddress()); } } Index: java/com/l2jserver/util/IPv4Filter.java =================================================================== --- java/com/l2jserver/util/IPv4Filter.java (revision 0) +++ java/com/l2jserver/util/IPv4Filter.java (revision 0) @@ -0,0 +1,151 @@ +/* + * 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 com.l2jserver.util; + +import java.net.InetAddress; +import java.nio.channels.SocketChannel; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map.Entry; + +import org.mmocore.network.IAcceptFilter; + +/** + * Formatted Forsaiken's IPv4 filter [DrHouse] + * + * @author Forsaiken + * + */ +public class IPv4Filter implements IAcceptFilter, Runnable +{ + private HashMap<Integer, Flood> _ipFloodMap; + private 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; + } + } + + @Override + public boolean accept(SocketChannel sc) + { + InetAddress addr = sc.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()); + } + } + + @Override + 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 Try this patch (author in code)
×
×
  • 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