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

Идея Система зашиты от читеров

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем Alastar, 6 ноя 2012.

  1. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    Но ничто не мешает его выпилить, либо посылать ложную информацию, что "всё ок". :)
    // суть: никогда нельзя полностью доверять клиенту, нужно проверять всё, что от него приходит.
     
  2. Хостинг MineCraft
    <
  3. nexus_mc

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

    Баллы:
    68
    Опять же вернемся к гепотезе о программистах: программист есть комбинация лени и логики.
    Если напилить свору проверок и т.д. то большенство просто сдуется. это и нужно, 90% игроков уже слиты.
    Остальные 2% слишком ленивые и им это не нужно.Ну и 8% тех,кто желает заработать.Но вот незадача,я могу изменить пару функций и тем самым пофиксить,мне это не влом,а вот 8% уйдут.[DOUBLEPOST=1388061221,1388061181][/DOUBLEPOST]
    Ну,в общем-то,античит системой является администратор,который устраивает "магию защиты" с помощью программ и примочек ;)
     
  4. Holod

    Holod Модератор

    Баллы:
    93
    82.7% Всех данных статистики берутся "с потолка".
     
    HoShiMin нравится это.
  5. nexus_mc

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

    Баллы:
    68
    хорошо
     
    Сникерсни нравится это.
  6. HoShiMin

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

    Баллы:
    173
    Предложу свой вариант системы. Возможно, кому-то покажется экзотическим (я тоже считаю его слегка вычурным, если так можно выразиться в отношении защиты), но всё же: пишем серверную обвязку на чистых сокетах, в лаунчере, соответственно, тоже. Никаких PHP-скриптов или чего-то общепринятого не используем, всё будет реализовываться напрямую между программами. Делаем двунаправленную связь так, чтобы сервер мог общаться с лаунчером, а лаунчер - с сервером. Дальше делаем стандартные проверки (рассчитываем, скажем, контрольные суммы - что угодно), устанавливаем соединение, посылаем данные серверу. Лучше всего посылать единую контрольную сумму, в которую войдут контрольные суммы файлов, лаунчера, соль (например, время её генерации), чтобы можно было проверить её правильность. Сервер, в свою очередь, обрабатывает данные, всё сверяет, после этого подключается напрямую к серверу, заносит игрока в белый список в зависимости от правильности данных, после этого посылает клиенту ответ, типа, можешь заходить. Клиент подключается, сервер это видит и как только игрок присоединился, вышвыривает игрока из белого списка. Пока игрок на сервере, удаление его из белого списка никак на нём не отразится, но стоит ему выйти с сервера - и больше он не зайдёт. Согласен, немного неудобно перезаходить через лаунчер, если вышел с сервера чтобы не убили, пока отлучился до ветру, но это всё мелочи. И на лаунчер навесить защиту. Тут, конечно, прорекламирую свой Периметр, раз уж такая пляска пошла. Авторизация и регистрация делается по тому же принципу (через сокеты), личный кабинет в лаунчере. Впрочем, это уже по выбору. Регистрация и работа с личным кабинетом ни на что не влияет, просто для единообразия - если делать через сокеты, то всё сразу.
    Что нам это даёт:
    1) Намного более быстрое общение между лаунчером и сервером
    2) Нет HTTP, перехватить тем же HTTPAnalyzer'ом данные не получится (но перехватить можно)
    3) Клиенту не нужна сессия
    4) Возможность слать любые данные по каналу, которые переслать в обычном (бесфайловом) POST-запросе не получится - даёт простор для алгоритмов шифрования
    5) Перехват данных не будет иметь смысла, т.к. перехват данных идёт уже "по факту", когда авторизация состоялась, а на подмену файлов не будет времени, да и лаунчер некоторое время после авторизации ещё сможет проверять данные, прежде чем его закроют. А если лаунчер не закроют, то можно проверять контрольные суммы файлов в автономном режиме или по запросу с сервера. А если при закрытии лаунчера закрывать процесс с майном (хэндл процесса джавы у нас есть, никаких проблем - делаем с процессом что угодно: свободно читаем и изменяем любой участок процесса), то можно в процессе игры сканировать память джавы на предмет внедрения какого-либо стороннего кода. Тут уже вопрос к знающим - по каким признакам можно определить внедрённый в процесс чужеродный код или подключенный отладчик? Да и можно ли?
    6) Сложность в определении алгоритма генерации контрольной суммы, так как алгоритмы хэширования (сделанные вручную), занимают большое количество кода даже на языках высокого уровня и даже там логика зачастую непонятна, про ассемблерный листинг и говорить нечего. Это даст гарантию, что никто не напишет генератор верных контрольных сумм
    7) Уникальность каждого захода на сервер - нельзя подключиться по одному нику (IP'у - неважно) дважды
    8) Сложно обойти, а чтобы поиграть с читами, использовать AttachAPI никто всерьёз не будет

    Минусы:
    1) Сложность реализации клиент-серверного взаимодействия через сокеты, особенно для школьников\си-диезщиков\джавистов, которые сокеты никогда "в руках не держали".
    2) Даже если предоставить вышеупомянутым кодерам готовую библиотеку, написать, как её грузить в память из ресурсов основного приложения, не таская отдельно с собой, чуть менее, чем всем будет лень писать собственные базы.
    3) Сложность в непосредственной отправке команд управления серверу (внесение и удаление игроков из белого списка).
    4) Наверняка вышеупомянутые кодеры сделают кривой велосипед, либо попытаются сделать программу такого вида на своём любимом шарпике\джавочке
    5) Так как сокеты - штука, требующая многопоточности (имею в виду синхронный режим), вангую многочисленные утечки памяти\незакрытые соединения.

    Ну и в завершение хочу сказать, что систему такого рода я в данный момент разрабатываю, обёртки над сокетами готовы (многопоточность, все дела), лаунчер готов, пишу серверную обвязку.
     
    Последнее редактирование: 27 дек 2013
    ПриветОтЛайки и OsipXD нравится это.
  7. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Забыл про саму джаву, её ведь тоже можно замодить как надо.

    И да, сокеты на джаве пишутся быстро и легко, и никаких проблем с утечками нет.
     
  8. HoShiMin

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

    Баллы:
    173
    Вряд ли кто-то всерьёз будет этим заниматься. Школьники не осилят, а мастерам не по статусу с читами играть. Хотя ради профессионального интереса... Но всё равно, не тот масштаб.
    Не знал. Да это и не важно, я саму суть описал, как реализовывать - дело каждого. Но всё-таки, не понимаю, почему все упираются в джаву? Есть С/C++, Паскаль и ассемблер, в конце концов. Все 4 кроссплатформенные, и при этом программы на них так просто не взломаешь.
     
    Сникерсни и BleaZzZ нравится это.
  9. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    А почему ко мне этот вопрос?
    Меня как опенсорсника не волнует сокрытие кода моих программ и их защита.
     
    slavik123123123 нравится это.
  10. HoShiMin

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

    Баллы:
    173
    Да не в опенсорсе дело. Исходники лаунчера открывай, всё в порядке, но фактически, всем откроешь алгоритм генерации уникального ключа. Как технологию для создания - пожалуйста, но с припиской "алгоритм изменить под себя".
     
    DavidShabaev нравится это.
  11. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Ещё раз, я то причём? Меня вообще клиентская защита не волнует ну никак.
     
  12. nexus_mc

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

    Баллы:
    68
    Я это все и пытался вам объяснить.
    Связь лаунчера,сервера и хост машины(как подрядчика между заходом пользователя и чеком).
    У меня уже есть лаунчер со всей этой херней,в том числе и ЛК в лаунчере находится.
    Единственное различие твоего от моего - белый лист.
    Я хочу написать плагин,который,получив от серверной программы положительный отзыв,ничего не делает,а получив отрицательный - кикает игрока с сообщением "читер ахтунг".
    Вот и все дела,товарищи.В режиме реального времени лаунчер будет смотреть и отсылать на сервер данные юзверя.А если зайти на сервер с выключенным лаунчером(тобишь батники и т.д.) То плагин НА СЕРВЕРЕ(тут его фиг ломанешь) Кикнет читера.

    Ну что,кто найдет лазейку,чтобы мне опять искать путь ее фикса?
     
  13. HoShiMin

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

    Баллы:
    173
    Вряд ли кто-то найдёт лазейку. Как ты эту систему взломаешь? Не совсем вдавался в подробности твоей системы, но мою можно взломать только узнав алгоритм генерации уникальной контрольной суммы, а для этого нужно взламывать лаунчер. А против взлома лаунчера есть хорошие инструменты, типа того же Периметра (самореклама, ага), или какие-нибудь другие... аналогичные... штуки. Но лаунчер надо писать на нормальных языках, а не на .NET/Java
     
  14. HoShiMin

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

    Баллы:
    173
    Что именно? И в чём минус? Игрокам не всё ли равно, как внутри всё устроено? Ввёл логин, пароль и играй на здоровье.
     
    Сникерсни нравится это.
  15. HoShiMin

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

    Баллы:
    173
    Эм... Как так - "нет такого, чтоб просто ввёл логин\пароль"?
    Вот прототип нынешнего лаунчера:
    Скриншот 2013-12-26 21.43.59.png
    Авторизация на месте: ввёл логин и пароль, нажал "Авторизация" - готово. В чём проблема?
    Я не понял ничего. Что ещё за сленг? Что такое "майнонли хилов" и, тем более, загадочное "и т.д."? Что там ещё так далее может быть, что для описания не хватило выражения "майнонли хилов" и из чего я должен сделать выводы?
     
    Последнее редактирование: 26 дек 2013
  16. HoShiMin

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

    Баллы:
    173
    Ключевое слово "у всех". У всех точно не будет, т.к. для тестирования возможностей недостаточно иметь один лаунчер - нужно ещё и серверную обвязку устанавливать. А так как я с линуксом дел не имел и иметь не хочу, то обвязка будет только для винды, и, соответственно, товарищи линуксоиды скажут "иди нахер со своей виндой, Ъ-админы администрируют только под *nix, венда мастдай, линух форева" и поэтому проверить работоспособность будет можно скорей всего только на моём личном сервере, для которого изначально и начал эту систему писать, а это уже будет нарушением правил форума. Но кому какое дело - всё равно исходники лаунчера и серверной части, документацию, готовые решения выложу в свободный доступ, кто делает сервера на своём железе, смогут попробовать.
     
    The Midnight Wizard нравится это.
  17. HoShiMin

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

    Баллы:
    173
    На серверные античиты мне плевать. Я хочу сделать независимую реализацию клиент-серверного взаимодействия. Это и скорость общения увеличит, и безопасность поднимет, т.к. стандартные методы останутся не при делах: сессии нет, перехватывать нечего, клиент ни к каким скриптам не обращается для получения данных. Единственный возможный вариант - это использование AttachAPI, а я сильно сомневаюсь, что кто-то, кроме Shevchik'a, знает, что это такое и как с ним работать.
     
  18. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Спрос рождает предложения. Появятся такие защиты и начнут изучать AttachAPI. Вот на таких как вы читеры и растут.
     
  19. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    А у меня есть авторизация на хендшейках, так что независимая реализация логина уже есть.
     
    Последнее редактирование: 26 дек 2013
  20. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Вы годами что то пытаетесь писать и до вас не доходит, что ломается это все в разы быстрее чем пишется защита. И читеры готовы немало бабла заплатить на чит для непробиваемого сервера. У них же одна логика, хочу там где почти никто не читерит.
     
  21. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Просто так уж пошло что лаунчеры есть только в рашке, и потому все считают что вокруг одни школьники и взламывать лаунчеры некому, и что клиентская защита поэтому затащит, ты и сам ведь таким был.
     

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