Deferato
Пользователи-
Публикаций
43 -
Зарегистрирован
-
Посещение
-
Отзывы
0%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент Deferato
-
а из каких имено файлов вытаскивать
-
У ково нибудь есть Команда menu для frozen чтоб опыт отключать дроп
-
помогите срочно надо на телефон вам даже денег кину
-
Действовал по мануалу и проявила ошибка при компилирование Вот ошибки Eclipsa [javac] Compiling 800 source files to C:\Games\GameServer\build\classes [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:41: cannot find symbol [javac] symbol : method getSocketChannel() [javac] location: class com.l2jfrozen.netcore.MMOConnection<com.l2jfrozen.gameserver.network.L2GameClient> [javac] curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:88: cannot find symbol [javac] symbol : method getSocketChannel() [javac] location: class com.l2jfrozen.netcore.MMOConnection<com.l2jfrozen.gameserver.network.L2GameClient> [javac] String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); [javac] ^ [javac] 2 errors Вот код ProtectionIP.java Скрытый текст/* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.model.entity; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.l2jfrozen.util.database.L2DatabaseFactory; import com.l2jfrozen.gameserver.network.clientpackets.Say2; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay; /** * * @author xAddytzu */ public class ProtectionIP { public static void onEnterWorld(L2PcInstance player) { String last = ""; String curr = ""; try { last = LastIP(player); curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); } catch (Exception e) { } if (!last.equals(curr)) player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr)); UpdateLastIP(player, player.getAccountName()); } public static String LastIP(L2PcInstance player) { String lastIp = ""; java.sql.Connection con = null; try { ResultSet rset; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?"); statement.setString(1, player.getAccountName()); rset = statement.executeQuery(); while(rset.next()) { lastIp = rset.getString("lastIP"); } } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } return lastIp; } public static void UpdateLastIP(L2PcInstance player ,String user) { String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?"); statement.setString(1, address); statement.setString(2, user); statement.execute(); statement.close(); } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } } } Вот сам мануал Скрытый текст Описание: Предотвращая кражу аккаунта, вы можете поставить на своем Java сервере Lineage 2 систему, которая будет оповещать, с какого IP вы сидите сейчас и какой IP адрес входил на ваш аккаунт до этого. (Требуются Исходники!) Платформа: Java Index: EnterWorld.java import net.sf.l2j.gameserver.model.entity.Hero; import net.sf.l2j.gameserver.model.entity.L2Event; +import net.sf.l2j.gameserver.model.entity.ProtectionIP; @@ RegionBBSManager.getInstance().changeCommunityBoard(); +/** +* Custom stuff +*/ +ProtectionIP.onEnterWorld(activeChar); Index: LoginController.java if (ok) { client.setAccessLevel(access); client.setLastServer(lastServer); + statement = con.prepareStatement("UPDATE accounts SET lastactive=?, lastIP=? WHERE login=?"); - statement = con.prepareStatement("UPDATE accounts SET lastactive=? WHERE login=?"); statement.setLong(1, System.currentTimeMillis()); + statement.setString(2, address.getHostAddress()); + statement.setString(3, user); - statement.setString(2, user); statement.execute(); statement.close(); } /* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.model.entity; import java.sql.PreparedStatement; import java.sql.ResultSet; import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.clientpackets.Say2; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.CreatureSay; /** * * @author xAddytzu */ public class ProtectionIP { public static void onEnterWorld(L2PcInstance player) { String last = ""; String curr = ""; try { last = LastIP(player); curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); } catch (Exception e) { } if (!last.equals(curr)) player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr)); UpdateLastIP(player, player.getAccountName()); } public static String LastIP(L2PcInstance player) { String lastIp = ""; java.sql.Connection con = null; try { ResultSet rset; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?"); statement.setString(1, player.getAccountName()); rset = statement.executeQuery(); while(rset.next()) { lastIp = rset.getString("lastIP"); } } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } return lastIp; } public static void UpdateLastIP(L2PcInstance player ,String user) { String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?"); statement.setString(1, address); statement.setString(2, user); statement.execute(); statement.close(); } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } } }
-
С брутом разобрался http://forummaxi.ru/index.php?showtopic=4080 - новая проблема
-
Мануал Скрытый текст Описание: Предотвращая кражу аккаунта, вы можете поставить на своем Java сервере Lineage 2 систему, которая будет оповещать, с какого IP вы сидите сейчас и какой IP адрес входил на ваш аккаунт до этого. (Требуются Исходники!) Платформа: Java Index: EnterWorld.java import net.sf.l2j.gameserver.model.entity.Hero; import net.sf.l2j.gameserver.model.entity.L2Event; +import net.sf.l2j.gameserver.model.entity.ProtectionIP; @@ RegionBBSManager.getInstance().changeCommunityBoard(); +/** +* Custom stuff +*/ +ProtectionIP.onEnterWorld(activeChar); Index: LoginController.java if (ok) { client.setAccessLevel(access); client.setLastServer(lastServer); + statement = con.prepareStatement("UPDATE accounts SET lastactive=?, lastIP=? WHERE login=?"); - statement = con.prepareStatement("UPDATE accounts SET lastactive=? WHERE login=?"); statement.setLong(1, System.currentTimeMillis()); + statement.setString(2, address.getHostAddress()); + statement.setString(3, user); - statement.setString(2, user); statement.execute(); statement.close(); } /* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.model.entity; import java.sql.PreparedStatement; import java.sql.ResultSet; import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.clientpackets.Say2; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.serverpackets.CreatureSay; /** * * @author xAddytzu */ public class ProtectionIP { public static void onEnterWorld(L2PcInstance player) { String last = ""; String curr = ""; try { last = LastIP(player); curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); } catch (Exception e) { } if (!last.equals(curr)) player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr)); UpdateLastIP(player, player.getAccountName()); } public static String LastIP(L2PcInstance player) { String lastIp = ""; java.sql.Connection con = null; try { ResultSet rset; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?"); statement.setString(1, player.getAccountName()); rset = statement.executeQuery(); while(rset.next()) { lastIp = rset.getString("lastIP"); } } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } return lastIp; } public static void UpdateLastIP(L2PcInstance player ,String user) { String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?"); statement.setString(1, address); statement.setString(2, user); statement.execute(); statement.close(); } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } } } некоторые ошибки исправил еще 2 остались [echo] L2jFrozen Gameserver Revision: 886M compile: [javac] Compiling 1461 source files to C:\Games\GameServer\build\classes [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:41: cannot find symbol [javac] symbol : method getSocketChannel() [javac] location: class com.l2jfrozen.netcore.MMOConnection<com.l2jfrozen.gameserver.network.L2GameClient> [javac] curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:88: cannot find symbol [javac] symbol : method getSocketChannel() [javac] location: class com.l2jfrozen.netcore.MMOConnection<com.l2jfrozen.gameserver.network.L2GameClient> [javac] String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); [javac] ^ [javac] 2 errors Скрытый текст/* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.model.entity; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.l2jfrozen.util.database.L2DatabaseFactory; import com.l2jfrozen.gameserver.network.clientpackets.Say2; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay; /** * * @author xAddytzu */ public class ProtectionIP { public static void onEnterWorld(L2PcInstance player) { String last = ""; String curr = ""; try { last = LastIP(player); curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); } catch (Exception e) { } if (!last.equals(curr)) player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr)); UpdateLastIP(player, player.getAccountName()); } public static String LastIP(L2PcInstance player) { String lastIp = ""; java.sql.Connection con = null; try { ResultSet rset; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?"); statement.setString(1, player.getAccountName()); rset = statement.executeQuery(); while(rset.next()) { lastIp = rset.getString("lastIP"); } } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } return lastIp; } public static void UpdateLastIP(L2PcInstance player ,String user) { String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?"); statement.setString(1, address); statement.setString(2, user); statement.execute(); statement.close(); } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } } }
-
Действовал по мануалу и проявила ошибка при компилирование Вот ошибки Eclipsa Скрытый текст [javac] Compiling 1461 source files to C:\Games\GameServer\build\classes [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:23: cannot find symbol [javac] symbol : class L2DatabaseFactory [javac] location: package com.l2jfrozen [javac] import com.l2jfrozen.L2DatabaseFactory; [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:24: package com.l2jfrozen.clientpackets does not exist [javac] import com.l2jfrozen.clientpackets.Say2; [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:41: cannot find symbol [javac] symbol : method getSocketChannel() [javac] location: class com.l2jfrozen.netcore.MMOConnection<com.l2jfrozen.gameserver.network.L2GameClient> [javac] curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:48: cannot find symbol [javac] symbol : variable Say2 [javac] location: class com.l2jfrozen.gameserver.model.entity.ProtectionIP [javac] player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr)); [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:59: cannot find symbol [javac] symbol : variable L2DatabaseFactory [javac] location: class com.l2jfrozen.gameserver.model.entity.ProtectionIP [javac] con = L2DatabaseFactory.getInstance().getConnection(); [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:88: cannot find symbol [javac] symbol : method getSocketChannel() [javac] location: class com.l2jfrozen.netcore.MMOConnection<com.l2jfrozen.gameserver.network.L2GameClient> [javac] String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); [javac] ^ [javac] C:\Games\GameServer\head-src\com\l2jfrozen\gameserver\model\entity\ProtectionIP.java:92: cannot find symbol [javac] symbol : variable L2DatabaseFactory [javac] location: class com.l2jfrozen.gameserver.model.entity.ProtectionIP [javac] con = L2DatabaseFactory.getInstance().getConnection(); [javac] ^ [javac] 7 errors BUILD FAILED C:\Games\GameServer\build.xml:64: Compile failed; see the compiler error output for details. Total time: 12 seconds Вот код ProtectionIP.java Скрытый текст* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.gameserver.model.entity; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.l2jfrozen.L2DatabaseFactory; import com.l2jfrozen.clientpackets.Say2; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay; /** * * @author xAddytzu */ public class ProtectionIP { public static void onEnterWorld(L2PcInstance player) { String last = ""; String curr = ""; try { last = LastIP(player); curr = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); } catch (Exception e) { } if (!last.equals(curr)) player.sendPacket(new CreatureSay(1, Say2.PARTY, "SYSTEM", "Your last ip was: "+last+" and current: "+curr)); UpdateLastIP(player, player.getAccountName()); } public static String LastIP(L2PcInstance player) { String lastIp = ""; java.sql.Connection con = null; try { ResultSet rset; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT * FROM `accounts` WHERE login = ?"); statement.setString(1, player.getAccountName()); rset = statement.executeQuery(); while(rset.next()) { lastIp = rset.getString("lastIP"); } } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } return lastIp; } public static void UpdateLastIP(L2PcInstance player ,String user) { String address = player.getClient().getConnection().getSocketChannel().socket().getInetAddress(). getHostAddress(); java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE accounts SET lastIP=? WHERE login=?"); statement.setString(1, address); statement.setString(2, user); statement.execute(); statement.close(); } catch(Exception e) { e.printStackTrace(); } finally { try { con.close(); } catch(Exception e) { e.printStackTrace(); } } } }
-
А как тогда сервер защитить от брута?!
-
Вообщем решил я поставить анти брут по этому мануалу Скрытый текстДля начала немного теории.Всем известно такое явление, как брут - перебор паролей. Брутят зачастую либо веб-составляющую проекта (личный кабинет), либо же непосредственно сам сервер. Защита последнего и будет описана, но об этом немного дальше. Как же работает брут, в частности ла2 серверов? Зловредная программа () берет из списка логин+пароль и отправляет на логин сервер запрос на авторизацию, если пароль подошел к логину - осуществляется запись такой связки с файл - ваш аккаунт в руках брутера. 1. Одним из вариантов защиты от брута является авторегистрация. В этом есть некая логика: абсолютно все подбирающиеся аккаунты брутеру будут выдаваться как рабочие, но на самом деле - они будут пустые, т.к. брутом будут собственно и создаваться. Минус способа - быстро заполняется база пустыми аккаунтами. 2. Рассмотрим вариант защиты через ядро. В зависимости от некоторых обстоятельств логин-сервер возвращает 1 из 5 ответов: AUTH_SUCCESS - авторизация успешна. Пользователю выдается сессионый ключ и возвращается пакет LoginOk(), который показывает нам окно Лицензии. После которого появляется список серверов - пакет ServerList(). INVALID_PASSWORD - пароль неверный. Срабатывает "client.close(LoginFailReason.REASON_USER_OR_PASS_ WRONG);", т.е. выдается сообщение о неверном пароле и предотвращается доступ пользователя далее. ACCOUNT_BANNED - аккаунт забанен. ALREADY_ON_LS - на данный аккаунт уже произведена авторизация на логин-сервере. ALREADY_ON_GS - персонаж с данного аккаунта уже находится в игре (ну, и при попытке авторизации персонажа выкинет с игры) Брут, получив от логин-сервера пакет ServerList() (список серверов), считает аккаунт сбрученным и записывает его в файл. Вот на этом мы и построим защиту. Переходим в net\sf\l2j\loginserver\clientpackets\RequestAuthLo gin.java (в некоторых сборках путь может незначительно отличатся в начале - net\sf\l2j\). Находим следующий код: Цитировать case INVALID_PASSWORD: client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG); break; и меняем на следующее: Цитировать case INVALID_PASSWORD: client.setSessionKey(lc.assignSessionKeyToClient(_user, client)); getClient().sendPacket(new ServerList(getClient())); break; Поясню. Таким образом при неправильном вводе пароля, будет возвращаться пакет ServerList(), что для брута послужит зеленым светом, мол, пароль подошел (но на самом деле - пароль неверный). После описанных выше действий появится небольшой побочный эффект. Если простой пользователь введет случайно неверный пароль - его сразу (минуя лицензию) направит на список серверов (пакет ServerList()). И при нажатии на любой сервер - ничего не произойдет, а пользователь так и не поймет что же случилось. К тому же логин сервер будет засыпаться ошибкой "Unknown opcode: ...." при каждом нажатии пользователя на сервер из списка. Сейчас мы это исправим... Идем в net/sf/l2j/loginserver/L2LoginPacketHandler.java. Находим там код: Цитировать case AUTHED_GG: if (opcode == 0x00) { packet = new RequestAuthLogin(); } else { debugOpcode(opcode, state); } и меняем его так: Цитировать case AUTHED_GG: if (opcode == 0x00) { packet = new RequestAuthLogin(); } else { client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG); } Теперь пользователь, после ввода неправильного пароля и перенаправлении на список серверов, при попытке войти на сервер будет выкинут на начальное окно (ввод логина и пароля) с сообщением, что ввел неверный пароль. Вроде бы все. Среди тех способов защиты от брута, что находятся в свободном доступе - этот наиболее привлекательный. Вроде нигде не ошибся, если будут проблемы/вопросы - излагайте в данной теме. Офф источник postpacific.ru (Учимся искать друзья) Все по нему сделал и в эклипсе выдает ошибку [javac] Compiling 68 source files to C:\Games\GameServer\build\classes [javac] C:\Games\GameServer\head-src\com\l2jfrozen\loginserver\L2LoginPacketHandler.java:80: cannot find symbol [javac] symbol : variable LoginFailReason [javac] location: class com.l2jfrozen.loginserver.L2LoginPacketHandler [javac] client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG); [javac] ^ [javac] 1 error вот код этого файла L2LoginPacketHandler.java Скрытый текст/* 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package com.l2jfrozen.loginserver; import java.nio.ByteBuffer; import com.l2jfrozen.Config; import com.l2jfrozen.loginserver.L2LoginClient.LoginClientState; import com.l2jfrozen.loginserver.network.clientpackets.AuthGameGuard; import com.l2jfrozen.loginserver.network.clientpackets.RequestAuthLogin; import com.l2jfrozen.loginserver.network.clientpackets.RequestServerList; import com.l2jfrozen.loginserver.network.clientpackets.RequestServerLogin; import com.l2jfrozen.logs.Log; import com.l2jfrozen.netcore.IPacketHandler; import com.l2jfrozen.netcore.ReceivablePacket; import com.l2jfrozen.util.PacketsFloodProtector; /** * Handler for packets received by Login Server * * @author ProGramMoS */ public final class L2LoginPacketHandler implements IPacketHandler<L2LoginClient> { /** * @see com.l2jserver.mmocore.network.IPacketHandler#handlePacket(java.nio.ByteBuffer, * com.l2jserver.mmocore.interfaces.MMOClient) */ @Override public ReceivablePacket<L2LoginClient> handlePacket(ByteBuffer buf, L2LoginClient client) { int opcode = buf.get() & 0xFF; if(!PacketsFloodProtector.tryPerformAction(opcode, -1, client)){ return null; } ReceivablePacket<L2LoginClient> packet = null; LoginClientState state = client.getState(); if(Config.DEBUG_PACKETS){ Log.add("Packet: " + Integer.toHexString(opcode) + " on State: " + state.name() + " Client: " + client.toString(), "LoginPacketsLog"); } switch(state) { case CONNECTED: if(opcode == 0x07) { packet = new AuthGameGuard(); } else { debugOpcode(opcode, state); } break; case AUTHED_GG: if(opcode == 0x00) { packet = new RequestAuthLogin(); } else { client.close(LoginFailReason.REASON_USER_OR_PASS_WRONG); } break; case AUTHED_LOGIN: if(opcode == 0x05) { packet = new RequestServerList(); } else if(opcode == 0x02) { packet = new RequestServerLogin(); } else { debugOpcode(opcode, state); } break; } state = null; return packet; } private void debugOpcode(int opcode, LoginClientState state) { System.out.println("Unknown Opcode: " + opcode + " for state: " + state.name()); } } ПОМОГИТЕ !!!!!!
-
Ищу вакансию "поддержка игрового сервера" Lineage II Interlude. Опыт htm, xml, mysql, java . Основные работы - DataPack Возможные вопросы и предложения. Мой ICQ 470-525-467
-
только импорты поменяй под свою сборку
-
Handler \ voicedcommandhandlers И создаём новый файл AllowEXP.java
-
Как на фрозенах зделать так что бы трейд зона была в гиран харборде а не по всему миру!!!!
-
Как на фрозенах зделать так что бы трейд зона была в гиран харборде а не по всему миру!!!!
-
Помогите чтоб офлайн трейд работал только в гиране на площади