Как запутать код проекта плагина Unity

#c# #unity3d #dll #plugins #obfuscation

Вопрос:

У меня есть проект плагина Unity, который в основном представляет собой набор файлов (.cs), функций и библиотек, которые любой может использовать в своих проектах, есть ли способ запутать весь код в этом проекте, чтобы люди, использующие его, могли видеть только заголовки функций, сборные, ресурсы…, а не содержимое кода? Я хотел бы не переделывать много кода и знать, есть ли какой-то простой способ, который, учитывая проект Unity, запутывает его сценарии или, в конечном счете, объединяет все сценарии в одну или несколько dll, но все равно работает одинаково (компоненты могут быть добавлены в игровые объекты, функции верхней панели редактора Unity по-прежнему поддерживаются, сборные не ломаются…)

Комментарии:

1. Вы уже нашли какое-либо программное обеспечение для обфускатора в Интернете? например. assetstore.unity.com/packages/tools/utilities/obfuscator-48919 похоже, должно быть что-то для такого рода вещей, не так ли?

2. @sommmen Да, но большинство из них платные, а если и нет, то они только запутывают код C#, что усложнило бы его интеграцию в Unity. Я хочу добиться того же, что и некоторые плагины из хранилища ресурсов Unity, из которых вы можете создавать компоненты или вызывать функции, но вы не можете прочитать их код (например, код метаданных Unity в некоторых классах UnityEngine, таких как MonoBehaviour).

3. Эти «Код метаданных Unity для некоторых классов UnityEngine, таких как MonoBehaviour», вызваны тем, что unityengine не написан на csharp. Это не имеет никакого отношения к запутыванию АФАИКА. но да, это компромиссы запутывания. Но в том, который я связал, есть несколько вариантов пропуска полей и так далее, которые были бы в вашем направлении. Возможно, если вы видели это из плагинов, о которых вы упомянули, вы могли бы спросить некоторых авторов, что они используют?

4. Если вам, например, использовать в JetBrains Rider С/или dotPeek вы можете реально взглянуть на все Единство классы C# на уровне, где родной называются вещи (в основном то, что они обеспечивают в любом случае в исходный код , но и для типов нет 😉 ) и еще там можно поковыряться через декомпилированный код Ир 😉

5. @derHugo Итак, каков в настоящее время самый безопасный способ избежать возможности чтения кода unity c#? Хорош ли этот вариант assetstore.unity.com/packages/tools/utilities/obfuscator-48919 ?