Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Фикс Защита лаунчера [AJNIP]

Dj Arktic

Активный участник
Пользователь
Баллы
93
Имя в Minecraft
Dj_Arktic
И снова здравствуйте.
Сегодня я выношу на ваш суд мою новую защиту лаунчера от установки читов.
Я учел все замечания, которые вы выложили в теме, посвященной моей предыдущей защите.
В этой защите реализованы:
  • Защита от просмотра сессии
  • Защита от декомпиляции лаунчера/клиента
  • Защита от перенаправления (с помощью hosts)
  • Защита от модификации клиента и лаунчера
Зачем необходимо использовать JNI в своей защите?
Вот видео, записанное мной, которое отвечает на этот вопрос:
Теперь, по поводу AJNIP:
  • Защита громоздкая, требуется большое количество времени на правильную установку.
  • Защита достаточно сложная, рядовой пользователь не сможет ее установить, даже по видеоуроку.
  • Защиту необходимо устанавливать сразу на 4 стороны (клиент, bukkit, лаунчер и вебсервер)
Теперь, когда мы прояснили сложность этого туториала, приступим.
Нам понадобятся:
  • Клиент minecraft с установленным Forge
  • MCP
  • Forge-src для той версии Forge, что на клиенте
  • Bukkit (или MCPC, MCPC++)
  • eclipse
  • Лаунчер с поддержкой client.zip
  • Unicode Delphi (Delphi XE2 пойдет, Delphi 7 - нет)
  • Вебсервер с бд
  • Установленная на лаунчере защита переменной сессии
  • Исходнички AJNIP, которые я прикреплю к посту
Теперь, давайте проясним, чем плоха защита переменной сессии:
  • Декомпиляция лаунчера дает нам алгоритм получения новой сессии
  • Из-за возможных багов лаунчера ему-таки возможно "втюхать" модифицированный minecraft.jar
  • Перенаправлением ломается
Алгоритм работы AJNIP (можно не читать)
Определим 3 функции: encode, validate и hashfile
Каждая, получив в себя строку будет хешировать ее определенным образом.
При каждом запросе на loginserver или joinserver сессия будет меняться на encode(старая_сессия)
При подключении к серверу, плагин на bukkit будет ждать от клиента validate(ник,сессия) по определенному каналу. Если он не получит, или получит неверные данные - пользователь будет кикнут.
Ну а теперь самая соль:
Все 3 функции находятся в JNI библиотеке, и доступ к функциям предоставляется только тем файлам, hashfile которых забит в самой библиотеке.
Даже если ResourceHacker'ом просмотреть авторизованные hashfile, то, все равно, не зная кода этих трех функций, мы не сможем эмитировать ни одну из них.
А сжав библиотеку UPX'ом мы можем быть уверены в том, что ее не декомпилируют.
Компиляция библиотеки в режиме Release исключит возможность использования Debug'a
В силу большого объема статьи я буду печатать ее несколько дней.... Пожалуйста, потерпите.
 
Ждём комментариев, надеюсь что-то полезное!
 
Dj Arktic защита AJNIP твоя плохая, я проделал защиту как ты написал и в итоге решил проверить, и я смог спокойно зайти с читами!

P4Es3NLmQ0L75jFWEGNg.png


P.S чит я писал фрикам!
Ну хватит уже с одной и той же картинкой в каждый тред о защите лезть, а
 
Dj Arktic защита AJNIP твоя плохая, я проделал защиту как ты написал и в итоге решил проверить, и я смог спокойно зайти с читами!

P4Es3NLmQ0L75jFWEGNg.png


P.S чит я писал фрикам!
Дорогуша, зайди-ка на мой сервер с читами, я тебе адрес скажу. Там стоит AJNIP.
P.S. статья еще недописана, как ты мог сделать все, как я описал?
 
А сжав библиотеку UPX'ом мы можем быть уверены в том, что ее не декомпилируют.
Да ладно?(c)
А по теме: я бы посмотрел в сторону открытых протоколов шифрования(те, которые используют публичные и приватные ключи; не знаю, как правильно называются). И я уже вижу баги(Futurecraft ломал примерно таким же способом).
 

Поделиться этой страницей

Назад
Верх