Перейти к содержанию
Авторизация  
YuraAAA1

Как Исправить Дабл Логин?

Рекомендуемые сообщения

Уважаемые форумчане. Подскажите пожалуйста, как профиксить дабл логин? Или хотя бы натолкните на правильный путь.

 

http://www.youtube.com/watch?v=S0XTdqi-SeU&feature=youtu.be

 

https://code.google.com/p/silentium-free/source/detail?r=6 этот фикс не подходит

 

Фикс EnterWorld тоже не катит, так как нет двойного входа в игру. Почему-то не выкидывает клиент из игры.

Сборка от Silentium (Acis based).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще бы сервер авторизации переписать/заменить. Он не должен позволять добраться до сервер-листа с одного аккаунта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не полный фикс - и не спасет вас)

 

Что ты вообще понимаешь?:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проморгал putIfAbsent. Вроде перестал баг работать, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проморгал putIfAbsent. Вроде перестал баг работать, спасибо

этот фикс уже давно обошли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

этот фикс уже давно обошли.

 

Есть где-то нормальный фикс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть где-то нормальный фикс?

в общем доступе ? нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю , чутка больше чем ты)

 

Смеемся с твоих постов всем подъездом. :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как я понимаю, чисто в теории.

 

AuthLogin.java:runImpl()

 

Если:

1. В этом методе запросить accountsInGameServer из LoginServerThread.

2. Обернуть следующий код в syncronized блок.

3. Обойти коллекцию. Если имя аккаунта совпадает - closeNow().

 

Поможет ли это? Сильно ли увеличится нагрузка (за счёт synchronized).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Одно время тоже был этот баг на сурсах GodWorld, даже с проверками в логин сервере баг можно воспроизвести.

Когда воспроизводят баг то на игровом сервере подключено 2 клиента на 1го чара.

При этом первый - клиент это сама игра Lineage 2, второй клиент это l2phx.

 

Конкретной реализации не даю, только навожу на мысль.

 

Самое банальное решение это капча в игре, l2phx не распознает изображение и следовательно при грамотной реализации капчи до ее ввода нельзя ничего сделать, даже отправить любые пакеты кроме проверочного кода капчи.

 

Далее в EnterWorld проверяем чара на онлайн, т.к. при входе первым клиентом чар получает статус онлайн. Хотя опять же в большинстве сборок это сделано очень криво.

 

А теперь более грамотное решение, при входе персонажа в игру записывать аккаунт и ип например в HashMap<String, String>, при выходе соотв. удалять. Далее делаем проверку при входе персонажа на наличие аккаунта и ип в HashMap. НО! Проверку делаем не в EnterWorld а при получении пакетов в L2GamePacketHandler, в блоке IN_GAME.

 

Выглядит это примерно так

 

      	 case IN_GAME:
               if(clients.get(client.getAccountName()) != null)
               {
                   if(!clients.get(client.getAccountName()).equalsIgnoreCase(client.getConnectionAddress().getHostAddress()))
                   {
                       break;
                   }
               }

 

P.s. Выше описанное не претендует на 100% решение проблемы, возможно есть способы обойти и это.

Изменено пользователем DragonWind
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня в AuthLogin.java

 

 

		    // Exploit Prevention
		    if (LoginServerThread.getInstance().getAccountInGameServer(_loginName))
		    {
			    _log.warning("Double login attempt by account " + _loginName);
			    getConnection().close();
			    return;
		    }

Изменено пользователем avoegio

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...