В коммерческих проектах постоянно возникает необходимость защищать свой код от декомпиляции и от использования другими проектами. Не будем о том, насколько хорошо или плохо зарабатывать на игре, лицензионное соглашение которой этого не особо позволяет.
Для начала разделим проблему на две, серьезную и не очень.
1) Нехорошие люди на самом деле на самом деле декомпилируют мод и получают рабочие сорцы.
2) Нехорошие, но глупые люди думают, что декомпилировали мод, хотя на самом деле полученные сорцы работать как надо не будут. Несмотря на кажущуюся несерьезность проблемы, такие люди способны изрядно подпортить нервы.
Две проблемы — два решения. К счастью, первая проблема решается существенно проще. Я расскажу о том, как защищать серверную часть модов, и чуть-чуть о том, как обфусцировать моды.
[h]Защита серверной части[/h]
Довольно существенная часть кода в мультиплеере никогда не выполняется на клиентской стороне (в моем случае — около 15%). Два самых очевидных примера — обработка пакетов на сервере и подобные куски кода:
15 СПОСОБОВ ЗАЩИТИТЬ ДОМ В МАЙНКРАФТ
if (!world.isRemote)< //какой-нибудь серверный код >
Если полностью вырезать такой код из клиента, то даже после успешной декомпиляции восстановить его будет почти невозможно. В большинстве случаев написать аналогичный мод с нуля будет быстрее, чем разбираться в том, каких участков кода где не хватает и что на их месте нужно дописать. Однако, каждый раз вырезать часть кода при сборке мода — сущая мука. К счастью, компилятор javac достаточно умён для того, чтобы нам в этом помочь.
Пишем где-нибудь (желательно — в отдельном классе) вот такую строку:
public static final boolean SERVER = true; //или false, когда будете делать клиентскую сборку
Допустим, эту константу завели в классе CompilationFlag. Тогда перед каждым серверным куском кода нужно проверить эту константу. Два простых примера:
public void someMethod() < //общий код if (CompilationFlag.SERVER)< if (!world.isRemote)< //серверный код >> >
//метод, который выполняется только на сервере public void serverSideMethod()< if (!CompilationFlag.SERVER) return; //код метода >
При компиляции с SERVER == false такие участки кода попросту выбрасываются. Значение этой константы можно менять руками при каждой сборке и собирать по две версии мода — серверную и клиентскую. Когда надоест менять значение руками, напишете собирающий скрипт. Раз написали мод, должны справиться и с этим . Свой скрипт выкладывать не вижу смысла, это костыльная поделка конкретно под мой проект.
[h]Обфускация[/h]
Первое решение хорошо своей надежностью и простотой, но у него есть и свои недостатки. Я уже выше жаловался на дурачков, которые хвастаются тем, что «взломали мод», но это не единственная проблема. Есть еще как минимум две.
1) Выкидывание серверной части ломает синглплеер.
2) Иногда хочется защитить не весь мод, а какое-то конкретный элемент, который целиком выполняется на клиенте.
7 ЛАЙФХАКОВ ДЛЯ ЗАЩИТЫ ПРОТИВ ГРИФЕРОВ В МАЙНКРАФТ! (Без Модов)
Если все три перечисленные проблемы вас не касаются, то можете смело закрывать гайд и идти реализовывать первое решение. Если же нет, то вам может придти на помощь обфускация.В самом простом варианте обфускация — это просто замена названий классов, полей и методов на не имеющие смысла.
Именно такой вид обфускации применяется в Minecraft’e, и, как вы могли заметить, ее успешно «сломали» разработчики MCP . Тем не менее, более серьезная обфускация стоит денег, снижает производительность, да и вообще не очень понятно зачем нужна. Ваш мод — не Minecraft, и тратить сотни человекочасов на разбор обфусцированного кода никто не будет. Предупреждаю сразу: с обфускацией возни намного больше, чем с первым способом. Её сложно настраивать, легко сломать и невозможно забыть она усложняет отладку мода.
Я не рискну в подробностях рассказывать про обфускацию модов. Моё нынешнее решение — это велосипед из костылей, и учить кого-то такому мне стыдно. Расскажу лишь в общих чертах, как стоит делать. Я подобный путь не проверял, но оно должно работать.
1) Качаем ProGuard здесь. Он обфусцирует джарники по куче параметров, которые задаются через специальные конфиги. К счастью, вместе с ProGuard идет утилита под названием ProGuardGUI, через которую этот конфиг можно создать. Писать про эту кучу настроек долго, да и там всё более-менее понятно. Расскажу лишь про основные моменты.
2) В либы добавляем майн, либы майна и фордж (если он идет отдельным файлов).
3) В input добавляем джарник с модом, в output его же
4) В список классов, которые не нужно обфусцировать добавляем главный класс и CommonProxy/ClientProxy. Если есть еще какие-то классы, название которых указывается строками в коде, то их тоже добавляем.
5) Выключаем obfuscation -> use mixed-case class names. Ну то есть можно и оставить, но сами же будете страдать.
Источник: forum.mcmodding.ru
Плагины на защиту
Плагин Reporting добавляет в Minecraft систему жалоб или же репортов. Суть данного плагина очень проста, используя команду /report ,игрок кидает репорт на друго.
LoginSecurity
Admin 2019-09-26T23:16:56+03:00
Плагин LoginSecurity это простая, легкая, быстрая и безопасная система управления аутентификацией пользователей. Она была впервые создана ещё в далеком 2012 год.
MuteManager
Admin 2019-09-22T21:38:59+03:00
Плагин MuteManager добавляет на ваш сервер возможность отключать чат у игроков, которые любят поспамить. Также главной особенностью этого плагина является то, ч.
Core Protect
Admin 2019-09-21T20:49:23+03:00
Плагин Core Protect это быстрый, эффективный инструмент для регистрации данных и защиты от сбоев. Данный плагин организует быструю и эффективную защиту блоков, .
AuthMe Reloaded
Admin 2019-09-26T22:54:33+03:00
Плагин AuthMe Reloaded добавляет систему авторизации на ваш сервер Minecraft. Если игрок не авторизовался, AuthMe Reloaded не позволяет ему выполнять такие дейс.
EssentialsX
Admin 2019-09-09T23:40:21+03:00
Плагин EssentialsX является полной заменой плагина Essentials, так как старая версия плагина закончила своё существование на версии Minecraft 1.7.10 , то этот п.
Essentials
Admin 2019-09-09T23:40:52+03:00
Плагин Essentials предлагает более 100 команд и функций, полезных абсолютно на каждом сервере. Наши основные функции включают в себя: Установка домов .
WorldGuard
Admin 2019-09-09T23:42:48+03:00
Данный плагин служит для защиты построек на серверах. Если этот плагин установлен на сервере, каждый игрок сможет защитить территорию своего дома — приватом. Пр.
PermissionsEx
Admin 2019-09-09T23:43:08+03:00
Данный плагин служит для создания групп игроков на сервере. С его помощью можно создать неограниченное количество статусов на сервере и каждому статусу выдавать.
Источник: minecamp.ru
Мод: Безопасность [1.19+]
Мод Security Craft Bedrock Edition Remake даст вам возможность защититься в Майнкрафт ПЕ (Бедрок) от других игроков. Вы сможете поставить возле своего дома турели, а дом защитить дверью, которую никто не откроет.
- Особенность мода на безопасность
- Про защиту
- Скачать
Особенность мода на безопасность
Если вы хотите обезопасить свою недвижимость в Minecraft PE (Bedrock), тогда этот мод отлично для вас подойдет. Вы сможете сделать много чего для того, чтобы другие игроки не смогли вас обворовать или загриферить.
Кроме того, все механизмы будут доступны в крафте на выживании. Для этого зайдите в верстак и вы всё увидите.
Про защиту
Тут есть много чего для защиты. Например, скрафтите эту палку, и ею нажмите на блоки. И всё, эти блоки в Майнкрафт ПЕ (Бедрок) никто сломать не сможет. Можете считать это как привать территории.
Но если есть такой вот предмет, то эти блоки ломаются.
Карт-ключи
С помощью этих блоков вы сможете разблокировать дверь и многое другое. Для этого нужно поставить этот блок рядом с механизмом. И разблокируется всё с помощью специальной карты.
Замок
Это специальный замок с код паролем. У него есть свой интерфейс.
Сканер
Он будет сканировать игрока, и если игрок тот, то он разблокирует ближайший механизм.
Сундук
Этот сундук с замком. Его может открыть тот, кто его закрыл.
Двери
Их также может открыть тот, кто их поставил. Суть дверей в том, что когда вы в них зайдете, то они автоматически закроются.
Турель
Поставив её, она будет атаковать врагов.
Мина
Когда она красная, она активирована, и если на неё наступить, то будет взрыв. Но вы также можете обезвредить мину с помощью ножниц.
Молния
Эта штука когда заряжена, будет атаковать до 5 мобов молнией.
А это более слабая версия.
Скачать Мод на Защиту для Minecraft PE
Скачать security-craft-addon-rp.mcpack (175.92 Kb)
18925 скачиваний · mcpack · 12-июнь-22
Скачать security-craft-addon-bp.mcpack (701.89 Kb)
17348 скачиваний · mcpack · 12-июнь-22
Мод Security Craft Bedrock Edition Remake даст вам возможность защититься в Майнкрафт ПЕ (Бедрок) от других игроков. Вы сможете поставить возле.
Похожие статьи:
Мод: Защита земли [1.19+]
Этот мод позволит вам защитить свой дом и свои вещи в сундуках в Minecraft PE (Bedrock). Тут вы сможете заприватить свою территорию.
Мод: Защита мечом [1.19+]
С этим модом вы сможете защититься с помощью меча от урона врагов в Minecraft PE (Bedrock). Кроме того, мод поддерживает и другие мобы.
Мод: Турель [1.17+]
Если же вам нужно защитить свою территорию, тогда можете скачать мод на турель для Minecraft PE (Bedrock). Также вы сможете управлять ею.
Мод: Блокировка двери [1.17+]
Если же вы хотите заблокировать свою дверь в Minecraft PE (Bedrock), чтобы никто кроме вас в нее не вошел. Тогда можете скачать этот мод.
Мод: Блокируемые двери [1.17+]
Если у вас есть хранилище в Minecraft PE (Bedrock), тогда вам срочно нужно создать для него блокируемую дверь, которую сможете открыть только вы.
Мод: Заблокированный сундук [1.17+]
Мод добавит новые сундуки в Minecraft PE (Bedrock). И главная уникальность в том, что их можно заблокировать и разблокировать с помощью карточек.
Источник: pe-world.org