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

Туториал [урок] привенчиваем проверку md5 к клиенту

Про защиту. Допустим, клиент расчитывает хэш и отправляет его к check.php, можно добавить вторую ссылку на другую проверку.
На сервере можно использовать текстовый файл с хэшем minecraft.jar.
Остается сделать так, чтобы клиент обращался к серверу с хэшем, а сервер сравнивал его со своим (тем, который в текстовом файле). Если совпали - ОК, если нет - ERROR
А на ERROR направить любую ошибку сервера: BadLogin, Failed to Verify username и т.д.
Для приема хеша сервером надо понять, как сервер принимает сессию от клиента и на основе сделать отправку хеша
 
Еще можно сделать проверку на основе сессии. Клиент берет сессию у системы авторизации: хэш соответствует - сессия посылается, не соответствует - к сессии дописываются символы и сервер ее не принимает.
 
Как я сделаю тутор, если еще нет готовых файлов? Я поковыряюсь в исходниках, отвечающих за сессию, попробую что-нить сделать
 
мммм то круто вот у меня online-mode=true он защищает от того чтобы не смогли с другого лаунчера зайти если поставить защиту мд5 через сесию тогда обхода некакого не будет?
 
Ну это рано или поздно раскусят, но защита будет намного сложнее.
Единственно плохо то, что NetClientHandler отвечает за многое, непонятно как код располагать. Большая часть файла - это отправка данных серверу.
 
Блин разберался я бы получше помогбы а так могу только смореть и размышлять по данному вопросу!
 
С сессией не получится, NetClienthandler только готовит данные к отправке, но не отправляет их, невозможно вывести подключение к check.php
 
Что-то я пропустил. Подобная защита искалось мной уже некоторое время в открытом доступе. Первый раз я увидел её у ***.su (не буду их рекламировать), я декомпилировал и увидел покарёбенный код (из-за декомпиляции). Сразу же пробил все вскрывшиеся ссылки, просниферел и понял как обойти подобную защиту, что собственно и сделал. Правда модлоадер поставить не получалось из-за грязного кода после декомпиляции.
Эта защита лучше чем проверка с лаунчера md5 клиента, но дыры есть и дыры огромные. Уже сейчас я могу назвать на вскидку 3 способа её обхода связанных с 1 строчкой кода:
Java:
s = (new StringBuilder()).append(s1).append("/.minecraft/bin/").append(s2).toString();
Те кто поймут в чём уязвимость, в объяснениях не нуждаются.
Нужно с помощью java определять месторасположение minecraft.jar, это на некоторое время отдалит обход.
За код спасибо, возьмю себе в закладки и по возможности буду вам помогать, жаль мои возможности в яве так и остаются на уровне начинающей кодер.

Можно попробовать и посмотреть что выведет такая конструкция
Java:
return new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
и что-то полезное http://www.rgagnon.com/javadetails/java-0391.html
 
Ну то давно известно что идеальной защиты нет и врят ли когда будет!Но сложную защиту смогут взломать еденици особенно если она хорошаяи и продуманная! По сессии впринцципи если у вас получится будет вполне хорошая защита!Если всё у вас получится будет бомба!
 
Как я сделаю тутор, если еще нет готовых файлов? Я поковыряюсь в исходниках, отвечающих за сессию, попробую что-нить сделать
мммм то круто вот у меня online-mode=true он защищает от того чтобы не смогли с другого лаунчера зайти если поставить защиту мд5 через сесию тогда обхода некакого не будет?
У многих стоит система скинов бухаря
Там ставится как раз онлайн мод и в сервере ссылка на чексервер.пхп
Вот в тот же пхп надо хеш майнкрафт.жар и засунуть как условие

К слову, на сколько хорошо защищает онлайн мод тру?
 
ну да не акти получаеся вот по сессией будет не чего так защита !
 
ну да не акти получаеся вот по сессией будет не чего так защита !
Сессию лаунчера вскрывают и дальше уже что хотят делают.
Защита хороша была бы если б еще сервер проверял расположения майнкрафт.жар и его хеш при подключении.
 
Сессию лаунчера вскрывают и дальше уже что хотят делают.
Защита хороша была бы если б еще сервер проверял расположения майнкрафт.жар и его хеш при подключении.
Я об этом на прошлой странице писал. Но в этом тот же минус: хэш можно отправлять на сервер через NetClientHandler, но простая замена класса опять же сломает защиту в пух и прах
 
Видел на 1 сервере, если поменять клиент (minecraft.jar) далее зайти в игру>сетевая игра>заходиш в сервер, если поменяш пишет Обновите клиент!
как они эт сделали =\
я об этом ещо давно писал тут
 

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

Назад
Верх