3aKoHoIIosLyIIIHi 7 Опубликовано 10 октября, 2012 и онлайн сильно палевно пририсовн, я даже на серв не заходил и так всё ясно))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Absent 263 Опубликовано 10 октября, 2012 щяс почти на всех серверах с допами подрисовывают онлайн Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 10 октября, 2012 Защита от Брута 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\RequestAuthLogin.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); } Теперь пользователь, после ввода неправильного пароля и перенаправлении на список серверов, при попытке войти на сервер будет выкинут на начальное окно (ввод логина и пароля) с сообщением, что ввел неверный пароль. Вроде бы все. Среди тех способов защиты от брута, что находятся в свободном доступе - этот наиболее привлекательный. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
NewTrend 159 Опубликовано 10 октября, 2012 У него ПВ а значит нету ядра. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nn03 41 Опубликовано 10 октября, 2012 У него ПВ а значит нету ядра. Именно так. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Westernous 85 Опубликовано 10 октября, 2012 (изменено) Без ядра, защиты от брута нормальной просто нету. + на пв есть защита от брута Изменено 10 октября, 2012 пользователем Westernous Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
3aKoHoIIosLyIIIHi 7 Опубликовано 10 октября, 2012 Защита от Брута 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\RequestAuthLogin.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); } Теперь пользователь, после ввода неправильного пароля и перенаправлении на список серверов, при попытке войти на сервер будет выкинут на начальное окно (ввод логина и пароля) с сообщением, что ввел неверный пароль. Вроде бы все. Среди тех способов защиты от брута, что находятся в свободном доступе - этот наиболее привлекательный. копипастер ,гореть тебе в аду 100 лет)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
3aKoHoIIosLyIIIHi 7 Опубликовано 10 октября, 2012 Без ядра, защиты от брута нормальной просто нету. + на пв есть защита от брута сказал как отрезал)))))) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
3aKoHoIIosLyIIIHi 7 Опубликовано 10 октября, 2012 щяс почти на всех серверах с допами подрисовывают онлайн просто можно по умному его нарисовать а можно тупока как зделал тс)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
nn03 41 Опубликовано 10 октября, 2012 Скорей всего бурт через лк,кто может помоч? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Voled 183 Опубликовано 10 октября, 2012 Поменять движок сейчас есть 2 новых или 3 движка в шаре либо на св каптчу поменять , ну а по идее если у тебя префиксы стоят , они по идее более менее спасать должны Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
logan22 169 Опубликовано 11 октября, 2012 (изменено) Бла бла бла!) Занимался брутом. По этому могу сказать что выше написано можно обойти в два счёта) И каптчи это как капля воды в Сахаре. Рекомендую поставить рандомный префикс на аккаунт и на пароль. Кстати он защитит но не очень хорошо, обойти его возможно. Но более трудновато) Изменено 11 октября, 2012 пользователем logan22 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
driad 42 Опубликовано 11 октября, 2012 Онлайн реал 800+?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
3aKoHoIIosLyIIIHi 7 Опубликовано 11 октября, 2012 Онлайн реал 800+?) крнечно ,яйцами джигурды клянусь Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты