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