Как я могу защитить свой код C# от декомпилирования? [дублировать
-
26-10-2019 - |
Вопрос
Возможный дубликат:
.NET запутывание
Альтернатива для запутывания в мире .NET
Всего несколько минут назад я прочитал, что есть несколько инструментов, много бесплатных, которые позволяют конвертировать C# .exe обратно в решение VB. Это означает, что мой собственный код может быть просмотрен, отредактирован и перекомпилирован/перераспределен. Есть ли способ предотвратить это?
Решение
Короче говоря, вам нужно использовать Запутывание. Анкет Назвать несколько.
- Дотфускатор
- Обфускатор
- Конькобежец (Бесплатное программное обеспечение)
- Deploylx CodeVeil
- Плюс Visual Studio поставляется с легкой версией DotFuscator.
Вы можете прочитать этот MSDN статья У этого есть совет о том, как запутать ваш код.
Другие советы
Вы можете использовать препятствий .. Саламандре один из таких инструментов для .net ...
Запасыватель Еще один бесплатный дополнение для .NET. Он разработан в C# и использует моно
Вы можете использовать Mono, чтобы скомпилировать его на собственном двоичнике, просто Google It Up.
Вы также можете кодировать чувствительные функции/компоненты в натуральный C ++, обернуть его в C ++/CLI и использовать с .NET в дополнение к запутыванию ваших сборок .NET.
Даже при запуске компилятору JIT нужно будет увидеть код IL в конечном итоге, вы просто затрудняете декомпиляцию.
Опускатор - это хорошая ставка, как это увеличивается Усиление человека просмотреть, редактировать, перераспределить и т. Д. Код.
Хотя они не защищают ваш код физически, они могут предотвратить поведение разложения вашего кодекса: правовые механизмы, такие как патенты, авторские права и лицензии.
Декомпилирование или обратная инженерия - это битва экономических усилий. Стоит ли вам запутать свой код (потенциально разрабатывая отражение «gatchas»), против ли это кому -то, чтобы кто -то изменил инженер (с небольшим контекстом) вместо подражания или переписывания?
Комментарий к этому ответу, https://stackoverflow.com/a/1988467/64348, с которым некоторые согласны, указывает на то, что запутывание не предотвращать Возвращение к оригинальной (или достаточно близкой версии исходного) кода. Запутывание-это всего лишь подход к обратимому переводу без реального ключа, кроме какого-то полезного контекста.