dragoni 2 Опубликовано 2 апреля, 2013 (изменено) Народ есть Беда, CRC ощибка в котах на фрозенах - когда зажимаеш или часто клацаеш скил!надо поправить кто-то знает как? Изменено 2 апреля, 2013 пользователем dragoni Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Voicemange 56 Опубликовано 2 апреля, 2013 Это срабатывает защита! Отключи её, либо в конфигах прибавь время. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 проблема в том что мне нужна защита, отключить я ее не могу, а в конфигах такого нету! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 package com.l2jfrozen.protection; import java.nio.ByteBuffer; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.logging.Logger; import javolution.util.FastList; import javolution.util.FastMap; import com.l2jfrozen.L2Properties; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.entity.Announcements; import com.l2jfrozen.gameserver.network.L2GameClient; import com.l2jfrozen.gameserver.network.L2GameClient.IExReader; import com.l2jfrozen.gameserver.network.serverpackets.GameGuardQuery; import com.l2jfrozen.gameserver.network.serverpackets.LeaveWorld; import com.l2jfrozen.gameserver.thread.LoginServerThread; import com.l2jfrozen.util.Util; import com.l2jfrozen.util.database.L2DatabaseFactory; public class CatsGuard { private static Logger _log = Logger.getLogger("CatsGuard"); private class CatsGuardReader implements IExReader { private RC4 _crypt; private L2GameClient _client; private int _prevcode = 0; private byte []buffer = new byte[4]; private int _state; private boolean _checkChar; private CatsGuardReader(L2GameClient cl) { _state = 0; _client = cl; } private void setKey(int data[]) { String key = ""; for(int i=0;i<10;i++) key+=String.format("%X%X", data[1],_SERVER_KEY); _crypt = new RC4(key,false); _state = 1; } public int read(ByteBuffer buf) { int opcode = 0; if(_state==0) { opcode = buf.get() & 0xff; if(opcode!=0xca) { illegalAction(_client,"Invalid opcode on pre-auth state"); return 0; } } else { if(buf.remaining()<4) illegalAction(_client,"Invalid block size on authed state"); else { buf.get(buffer); opcode = decryptPacket(buffer) & 0xff; } } return opcode; } private int decryptPacket(byte [] packet) { packet = _crypt.rc4(packet); int crc = CRC16.calc(new byte[] { (byte)(_prevcode & 0xff),packet[1]}); int read_crc = (((packet[3] & 0xff) << & 0xff00) | (packet[2] & 0xff); if(crc!= read_crc ) { illegalAction(_client,"CRC error"); return 0; } _prevcode = packet[1] & 0xff; return _prevcode; } @Override public void checkChar(L2PcInstance cha) { if(!_checkChar || cha == null) return; if(ALLOW_GM_FROM_BANNED_HWID && cha.isGM()) return; if(LOG_OPTION.contains("BANNED")) _log.info("CatsGuard: Client "+cha.getClient()+" try to log with banned hwid"); cha.closeNetConnection(); } } private static CatsGuard _instance; public static CatsGuard getInstance() { if(_instance==null) _instance = new CatsGuard(); return _instance; } private Map<String, Integer> _connections; private List<String> _premium = new FastList<String>(); private List<String> _bannedhwid; private static boolean ENABLED = true; private static int _SERVER_KEY = 7958915; private int MAX_SESSIONS; private int MAX_PREMIUM_SESSIONS; private String LOG_OPTION; private boolean ANNOUNCE_HACK; private String ON_HACK_ATTEMP; private boolean ALLOW_GM_FROM_BANNED_HWID; private boolean LOG_SESSIONS; private CatsGuard() { Util.printSection("CatsGuard"); try { if (_SERVER_KEY == 0) return; L2Properties p = new L2Properties("./config/protected/catsguard.properties"); ENABLED = Boolean.parseBoolean(p.getProperty("Enabled", "true")) && ENABLED; if (!ENABLED) { _log.info("CatsGuard: disabled"); return; } LOG_OPTION = p.getProperty("LogOption", "NOSPS HACK"); MAX_SESSIONS = Integer.parseInt(p.getProperty("MaxSessionsFromHWID", "-1")); MAX_PREMIUM_SESSIONS = Integer.parseInt(p.getProperty("MaxSessionsForPremium", "-1")); ANNOUNCE_HACK = Boolean.parseBoolean(p.getProperty("AnnounceHackAttempt", "true")); ON_HACK_ATTEMP = p.getProperty("OnHackAttempt", "kick"); ALLOW_GM_FROM_BANNED_HWID = Boolean.parseBoolean(p.getProperty("AllowGMFromBannedHWID", "false")); _connections = new FastMap<String, Integer>().setShared(true); LOG_SESSIONS = Boolean.parseBoolean(p.getProperty("LogSessions", "false")); _bannedhwid = new FastList<String>(); Connection con = L2DatabaseFactory.getInstance().getConnection(false); PreparedStatement stm = con.prepareStatement("select * from banned_hwid"); try { ResultSet rs = stm.executeQuery(); while (rs.next()) this._bannedhwid.add(rs.getString(1)); rs.close(); } catch (Exception e) { if (e.getClass().getSimpleName().equals("MySQLSyntaxErrorException")) { stm.close(); stm = con.prepareStatement("create table `banned_hwid` (`hwid` varchar(64) not null primary key)"); stm.execute(); } } stm.close(); con.close(); _log.info("CatsGuard: Loaded " + this._bannedhwid.size() + " banned hwid(s)"); _log.info("CatsGuard: Ready"); } catch (Exception e) { _log.warning("CatsGuard: Error while loading ./config/protected/catsguard.properties"); ENABLED = false; } } public boolean isEnabled() { return ENABLED; } public void ban(L2PcInstance player) { ban(player.getHWid()); } public void ban(String hwid) { if (!ENABLED) return; synchronized (_bannedhwid) { if (_bannedhwid.contains(hwid)) return; _bannedhwid.add(hwid); try { Connection con = L2DatabaseFactory.getInstance().getConnection(false); PreparedStatement stm = con.prepareStatement("insert into banned_hwid values(?)"); stm.setString(1, hwid); stm.execute(); stm.close(); con.close(); } catch (SQLException e) { _log.warning("CatsGuard: Unable to store banned hwid"); } } } private void illegalAction(L2GameClient cl, String reason) { if (cl.getActiveChar() != null && ANNOUNCE_HACK) Announcements.getInstance().announceToAll("РРіСЂРѕРє " + cl.getActiveChar().getName() + " использует недопустимое РџРћ!"); if (ON_HACK_ATTEMP.equals("hwidban") && cl.getHWid() != null) ban(cl.getHWid()); else if (ON_HACK_ATTEMP.equals("jail") && cl.getActiveChar() != null) cl.getActiveChar().isInJail(); else if (ON_HACK_ATTEMP.equals("ban") && cl.getActiveChar() != null) LoginServerThread.getInstance().sendAccessLevel(cl.getAccountName(), -100); _log.info("CatsGuard: Client " + cl + " use illegal software and will " + ON_HACK_ATTEMP + "ed. Reason: " + reason); cl.close(new LeaveWorld()); } public void initSession(L2GameClient cl) { if (!ENABLED) return; cl.sendPacket(GameGuardQuery.STATIC_PACKET); //cl._reader = new CatsGuardReader(cl, null); cl._reader = new CatsGuardReader(cl); } public void doneSession(L2GameClient cl) { if (!ENABLED) return; if(cl.getHWid()!=null) { _premium.remove(cl.getHWid()); if(_connections.containsKey(cl.getHWid())) { int nwnd = _connections.get(cl.getHWid()); if(nwnd==0) _connections.remove(cl.getHWid()); else _connections.put(cl.getHWid(),--nwnd); } } cl._reader = null; } public void initSession(L2GameClient cl, int [] data) { if(!ENABLED) return; if(data[0]!=_SERVER_KEY) { if(LOG_OPTION.contains("NOPROTECT")) _log.info("CatsGuard: Client "+cl+" try to log with no CatsGuard"); cl.close(new LeaveWorld()); return; } String hwid = String.format("%x", data[3]); if(cl._reader==null) { if(LOG_OPTION.contains("HACK")) _log.info("CatsGuard: Client "+cl+" has no pre-authed state"); cl.close(new LeaveWorld()); return; } if(_bannedhwid.contains(hwid)) { ((CatsGuardReader) cl._reader)._checkChar = true; } if(!_connections.containsKey(hwid)) _connections.put(hwid,0); int nwindow = _connections.get(hwid); int max = MAX_SESSIONS; if (_premium.contains(hwid)) max = MAX_PREMIUM_SESSIONS; if(max > 0 && ++nwindow>max) { if(LOG_OPTION.contains("SESSIONS")) _log.info("CatsGuard: To many sessions from hwid "+hwid); cl.close(new LeaveWorld()); return; } if (!_premium.contains(hwid)) _premium.add(hwid); _connections.put(hwid, nwindow); cl.setHWID(hwid); ((CatsGuardReader) cl._reader).setKey(data); if(LOG_SESSIONS) _log.info("Client " + cl.getAccountName() + " connected with hwid " + cl.getHWid()); } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 и как вы думаете где это?)))))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 я думаю Это будет полезно всем кто на фрозенах поэтому прошу помощи! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 else { buf.get(buffer); opcode = decryptPacket(buffer) & 0xff; } } return opcode; } private int decryptPacket(byte [] packet) { packet = _crypt.rc4(packet); int crc = CRC16.calc(new byte[] { (byte)(_prevcode & 0xff),packet[1]}); int read_crc = (((packet[3] & 0xff) << & 0xff00) | (packet[2] & 0xff); if(crc!= read_crc ) { illegalAction(_client,"CRC error"); return 0; } _prevcode = packet[1] & 0xff; return _prevcode; } Вроде тут только что исправить((((??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Voicemange 56 Опубликовано 2 апреля, 2013 Там должен быть конфиг catsguard Сам видел эту сборку там был этот конфиг Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 # Настройки защиты CatsGuard # Включить защиту (требуется клиентский патч) Enabled = True # Какие операции защиты лоогировать # NOPROTECT - вход без клиентского патча # HACK - попытки хака # SESSIONS - открытие сессий (вход игроков) LogOption = NOPROTECT HACK SESSIONS # Максимальное количество окон с одного hwid MaxSessionsFromHWID = 1 # Если MaxSessionsFromHWID > 0 То определяет количество окон если хотя бы # одно окно - премиум аккаунт. -1 - не оказывает никаого действия MaxSessionsForPremium = 2 # Извещать на весь мир о хакерах AnnounceHackAttempt = true # При попытке хака # kick - выкинуть # jail - отправить наечно в тюрьму # ban - забанить аккаунт # hwidban - забанить по hwid OnHackAttempt = # Допускать вход ГМ-ов с забанненых hwid AllowGMFromBannedHWID = false # Логгировать вход игроков LogSessions = true Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Voicemange 56 Опубликовано 2 апреля, 2013 # Включить защиту (требуется клиентский патч) Enabled = False И чистый патч скачай Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 так а смысл тогда от защиты??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 если ты ее выключаеш? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Voicemange 56 Опубликовано 2 апреля, 2013 Ой прошу прощения совсем заработался, щас у себя посмотрю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 )))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 2 апреля, 2013 Посмотри плз Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 4 апреля, 2013 Народ, так что никто не знает решения Этой проблемы????? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
FakeSnake 29 Опубликовано 5 апреля, 2013 Не по теме но , возьми аирин , и не мучайся) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 5 апреля, 2013 ну так а котов нормально за пилить то хочется, тем более что это одна проблема! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 5 апреля, 2013 кто поможет??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
inFA 19 Опубликовано 5 апреля, 2013 Всему виной флуд протектор скорее всего Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
lesuk. 14 Опубликовано 6 апреля, 2013 ап та же проблема ! Помогите как исправить ? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 7 апреля, 2013 флуд протектор пофиксил! с ним все норм но все равно Кот кикает когда его запускаеш! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 7 апреля, 2013 уже переделывал примерно 30 комбинаций пздц1!!!!! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
dragoni 2 Опубликовано 8 апреля, 2013 Все решено, помощи так и не дождался! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 3 мая, 2013 Ну и как исправил? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты