2015-08-11 2 views
2

У нас есть код в единственной игре, которую мы хотим защитить от декомпиляции (будет опубликован в ios, android, webgl и единственном плагине). Как мы должны его защищать? Должна ли мы писать эту часть кода как неуправляемый плагин (C++)?Unity3d защищать код

+6

Ответ «это зависит». В общем, я бы не стал слишком беспокоиться о вашем коде. Наверное, ничего особенного. И даже если бы я получил все декомпилированные MonoBehaviours из сборки, я бы не знал, как они собираются вместе, чтобы сформировать программное обеспечение. Поэтому, если вы не делаете что-то особенно алгоритмически блестящее, что вы не хотите, чтобы кто-нибудь еще видел, это, вероятно, не стоит хлопот. То же самое относится к обфускации, которая, черт возьми, может действовать как надежная, учитывая тяжелую зависимость от рефлексии. – Bart

+0

@Bart спасибо, но этот код важен, и мы не хотим, чтобы он просачивался. – AJ222

+2

Тогда вы действительно можете выбрать родной плагин. Но все, что он добавляет, - это неясность. Не обязательно безопасность. – Bart

ответ

8

Невозможно выпускать программное обеспечение, которое не может быть реконструировано.

0

Это ПОЗИЦИЯ. Некоторые пакеты имеют стандартный формат упаковщика. Итак .. Если вы используете динамические активы или используете CodeContainers, вам необходимо защитить свой код.

Так что вам следует сделать:

При использовании динамических пакетов активов: Сделать DLL файлы из кода или сделать один класс контроллера. Если вы используете CodeConainers (JS), сделайте основной контроллер C#. После этого вы можете расширить классы или просто вызвать методы.

PS: Если вы хотите защитить не активы кода, вам нужно сделать двоичную кодировку. И когда вы загружаете уровень или сборку, вы просто расшифровываете этот актив и используете его.

+0

Если код может декодировать код, шифрование может быть нарушено, наблюдая за тем, что он делает при декодировании. – Almo

+0

с бинарным шифрованием очень сильно находят код. Becouse картинки, модели, текстуры binary too =) –

0

Вы можете использовать методы обфускации, которые позволяют защитить ваш пакет от обратного проектирования, но только от тех, кто НЕ ОЧЕНЬ (я говорю о высокоуровневых инженерах-реверсиях, которые могут декомпилировать ваш код и иметь дело с ASM или может декомпилировать ваши IOS/Android проект) интересно, в любом случае для Unity, iOS

+0

[Android] (https://www.preemptive.com/solutions/android-obfuscation) –

0

Вы можете запутать ваш исходный код, используя Remiix Obfuscator плагина в хранилище единства активов.

Это бесплатно и легко использовать и поддерживать многие платформы построения на единстве (Android, IOS).

Смежные вопросы