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

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

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем Dj Arktic, 28 май 2013.

  1. Автор темы
    Dj Arktic

    Dj Arktic Активный участник Пользователь

    Баллы:
    93
    Skype:
    dj_arktic
    Имя в 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
    В силу большого объема статьи я буду печатать ее несколько дней.... Пожалуйста, потерпите.
     
  2. Хостинг MineCraft
    <
  3. Duncan

    Duncan Старожил Пользователь

    Баллы:
    103
    Skype:
    superfail1
    Имя в Minecraft:
    Duncan
    Ждём комментариев, надеюсь что-то полезное!
     
  4. Сало

    Сало Активный участник Пользователь

    Баллы:
    88
    Skype:
    cajio.ru
    Имя в Minecraft:
    CAJIO
  5. dimahru

    dimahru Старожил Пользователь

    Баллы:
    153
    Имя в Minecraft:
    dimahru
    Жду статью)
     
  6. The_FoXi

    The_FoXi Активный участник Пользователь

    Баллы:
    88
    Skype:
    Foxn2o2
    Имя в Minecraft:
    FoXi
    А если лаунчер написан на C?
    Или допустим thiscraft
     
  7. Сало

    Сало Активный участник Пользователь

    Баллы:
    88
    Skype:
    cajio.ru
    Имя в Minecraft:
    CAJIO
    Что то долго... Жду статьи, идея интересная.
     
    ПриветОтМиднайта нравится это.
  8. Dr.Death

    Dr.Death Старожил Пользователь

    Баллы:
    153
    Skype:
    asn008
    Имя в Minecraft:
    DrDeath
    Ну хватит уже с одной и той же картинкой в каждый тред о защите лезть, а
     
  9. Автор темы
    Dj Arktic

    Dj Arktic Активный участник Пользователь

    Баллы:
    93
    Skype:
    dj_arktic
    Имя в Minecraft:
    Dj_Arktic
    Дорогуша, зайди-ка на мой сервер с читами, я тебе адрес скажу. Там стоит AJNIP.
    P.S. статья еще недописана, как ты мог сделать все, как я описал?
     
    Help, dimahru и Alexsei нравится это.
  10. Автор темы
    Dj Arktic

    Dj Arktic Активный участник Пользователь

    Баллы:
    93
    Skype:
    dj_arktic
    Имя в Minecraft:
    Dj_Arktic
    dimahru и Alexsei нравится это.
  11. Алладин

    Алладин Участник

    Баллы:
    28
    Имя в Minecraft:
    Allahu_Akbar
  12. XeroXP

    XeroXP Старожил

    Баллы:
    153
    Skype:
    slava.pestr
    Имя в Minecraft:
    XeroXP
    это и есть империя, только добавлены классы и немного дописан
    только это старая империя
     
  13. Алладин

    Алладин Участник

    Баллы:
    28
    Имя в Minecraft:
    Allahu_Akbar
    Как я понял защита заключается в файле AJNIP.dll?
     
  14. XeroXP

    XeroXP Старожил

    Баллы:
    153
    Skype:
    slava.pestr
    Имя в Minecraft:
    XeroXP
    так и есть
    при декопиляции все видно
    и видны все дыры и баги, которые я залатал
     
  15. Алладин

    Алладин Участник

    Баллы:
    28
    Имя в Minecraft:
    Allahu_Akbar
    Просто можно вырезать проверку файла и все))
     
  16. XeroXP

    XeroXP Старожил

    Баллы:
    153
    Skype:
    slava.pestr
    Имя в Minecraft:
    XeroXP
    она там как раз в отдельном классе
     
  17. Алладин

    Алладин Участник

    Баллы:
    28
    Имя в Minecraft:
    Allahu_Akbar
    Не самая хорошая защита.
     
  18. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    неплохо было бы сделать 64 битную версию дллки =\ а то лаунчер крашится, если вручную не заставить юзать 32 яву.[DOUBLEPOST=1370089654,1370085382][/DOUBLEPOST][​IMG][​IMG][​IMG]
     
    Hephest, Alexey123, Ggass и 4 другим нравится это.
  19. VaNnOrus

    VaNnOrus Старожил Пользователь

    Баллы:
    123
    >_>
    <_<
    Все забыли уже?..
     
    ВремяПриключений нравится это.
  20. NeoDLH

    NeoDLH Активный участник Пользователь

    Баллы:
    88
    Skype:
    murmax-91
    -_-
     
  21. mukumause

    mukumause Старожил

    Баллы:
    103
    Честно сказать? Даже такая защита не без дыр..
    Если возможно, могу "протестировать".
     

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