1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Client] Вариант защиты. Дубль 2.

Тема в разделе "Оффтопик", создана пользователем Alex_Bond, 18 фев 2013.

  1. Mr. Sota

    Mr. Sota Старожил Пользователь

    Баллы:
    123
    Skype:
    mr_hosting
    Имхо, бред.
    Какое еще ограниченное время отправки хеша? А вы подумали, что могут быть пинги высокие, у пользователя слабые ПК, еще какие-то посторонние факторы? Да, можно ставить, скажем 10-15сек, но тогда перехватить данные о том, какие файлы удалять и высчитать хеш сторонним ПО не составит большого труда(для опытного человека).
    Да, от нубочитеров(которых большинство) это поможет, но ровно до того момента, как кто-то выложит свой метод обхода в паблик.
     
  2. Автор темы
    Alex_Bond

    Alex_Bond Старожил Девелопер Пользователь

    Баллы:
    153
    Skype:
    Alex.Bond.d
    Имя в Minecraft:
    Alex_Bond_UA
    Я сразу написал что 100% защиты оно не даст) Любую защиту можно обойти)
     
  3. Mr. Sota

    Mr. Sota Старожил Пользователь

    Баллы:
    123
    Skype:
    mr_hosting
    Можно любую. Но есть такая, которую значительно труднее.
    Приведу в пример лаунчер hummer`а. Лаунчер на С++, что практически лишает возможности получить исходные коды. Все пароли и данные, который администратор вводит в исходники шифруются определенным алгоритмом, которые делают их неотличимыми от обычного кода в декомпилированных пакетах.
    Чтобы защититься от перехвата используется алгоритм RSA при общении с веб-сервером. Т.е. все данные перед передачей шифруются открытым ключем, а на месте назначения дешифруются закрытым.
    Выходит так - расшифровать пакеты не представляется возможным без закрытого(если он достаточно надежный), значит сессию вы не перехватите, а значит и не запустите "левый" клиент.
    Чтоб обезопасится от получения сессии методом её доставания из запущенного клиента, насколько мне известно, она аннулируется сразу после использования.

    Но даже этот алгоритм можно упростить - убрать RSA, а использовать просто подключение по SSL с ключем 2048bit+. SSLv2 с такими ключами, вроде бы, еще не был взломан. Это упростит код(на веб-части точно) и исключит возможность расшифровки пакетов если известен приватный(закрытый) ключ.
     
  4. Автор темы
    Alex_Bond

    Alex_Bond Старожил Девелопер Пользователь

    Баллы:
    153
    Skype:
    Alex.Bond.d
    Имя в Minecraft:
    Alex_Bond_UA
    Лаунчер - А теперь сделай его мультиплатформенным)
    Игра на Java. Чтобы ты не делал - можно отдекомпилить и обойти защиту. Уже доказано что делать защиту в лаунчере бесполезно...
     
  5. Mr. Sota

    Mr. Sota Старожил Пользователь

    Баллы:
    123
    Skype:
    mr_hosting
    Я не в курсе последних новостей мира майнкрафт, так что не буду спорить :)
     
  6. Автор темы
    Alex_Bond

    Alex_Bond Старожил Девелопер Пользователь

    Баллы:
    153
    Skype:
    Alex.Bond.d
    Имя в Minecraft:
    Alex_Bond_UA
    Вот если бы переписать пакеты на JNI, то можно придумывать сколько угодно защит) Правда нагрузка на сервер возрастет скорее всего так как надо будет каждый раз чекать защиту)

    P.S. А почему бы не сделать ре-обусфакцию кода майна с своими фичами? Все школотроны обкакаются когда не смогут поставить никакой чит.. только разве что прозрачный текстурпак)
     
  7. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    можно кстати даже и не обфусцировать майн по свему, достаточно просто из MCP майн скомпилить но не обфусцировать и уже читы не пройдут, правда моды тоже, либо придётся самому портитровать(но тут всё легче). А лаунчер на других ЯП тоже достаточно неплох и устоит достаточно долго против нубов и даже достаточно умных людей. Но потом придёт особо умный и заюзает Jrebel который позволяет прямо во времени работы программы изменять её классы, и всё - приплыли.
     
    Сникерсни нравится это.
  8. zixel

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

    Баллы:
    78
    Имя в Minecraft:
    _Zixel_
    Достаточно перенести часть логики анти-чита на С++, и подгружать ее через JNI. Допустим сделать ту же проверку контрольных сумм, только на С++, с применением уникальных ключей, которые будут проверяться при авторизации.
     
  9. hummer

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

    Баллы:
    123
    Skype:
    bond_russia
    @Mr. Sota, поправлю я тебя
    с++ Нельзя декомпилировать в отличии от C# Написанные на .net

    Да и еще есть одна задумка которая полностью лишает получения паролей и другой информации..

    Генерировать необходимые значение кодом.. Я стремлюсь убрать все строковые значения в своем лаунчере...
     
  10. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    осталась только 1 проблема. это инъекция прямо во время работы игры, но пока этим никто не занимается, так что можно спать спокойно. через 3,дня я кстати допишу свой лаунчер на Qt и вы попробуете его сломать
     
  11. hummer

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

    Баллы:
    123
    Skype:
    bond_russia
    WinForms?
     
  12. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    брр, не говорите при мне про это говно.
    qml тащит.
     
  13. hummer

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

    Баллы:
    123
    Skype:
    bond_russia
    Интересно, посмотрим как вы написали движок, Небойсь статика.. дизайн..

    Приведи участок кода QML И c++ Только не весь код, что бы другие не стащили.. А так например connect
     
  14. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    приду домой - скину пару строк, но скажу что там нет ничего особенного, почти как у сашка, только поверху все рц4 прошифровано, а вод с дизайном у меня настоящая беда, я не спец по интерфейсам, я серверной магией занимаюсь обычно. если говорить более обще, то лаунчер не супер защита, но от нубочитеров которые привыкли к сашку и простой декомпиляции спасет, а дальше посмотрим.
     
  15. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    но вообще я против существования защиты в лаунчерах. ставьте серверный античит.
     

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