(Почему) я должен использовать запутывание?

Мне кажется, что обфускация - это идея, которая попадает куда-то в лагерь «безопасность по неизвестности» или «ложное чувство защиты». Для защиты интеллектуальной собственности есть авторское право; чтобы предотвратить обнаружение проблем безопасности, есть решение этих проблем . Короче говоря, я рассматриваю это как техническое решение социальной проблемы. Они почти никогда не работают.

Тем не менее, я, кажется, единственный в нашей команде разработчиков, который чувствует это, поэтому я либо ошибаюсь, либо мне просто нужны убедительные аргументы. Наш продукт использует .NET, и один разработчик предложил .NET Reactor (который, кстати, был предложен в этом ТАК что нить тоже ).

  

.NET Reactor полностью останавливает любую декомпиляцию, смешивая любую чистую сборку .NET (написанную на C #, VB.NET, Delphi.NET, J #, MSIL ...) с собственным машинным кодом.

Итак, в основном, вы отбрасываете все преимущества байт-кода за один раз?

Есть ли хорошие инженерные преимущества для запутывания?

8 голосов | спросил Sören Kuklau 28 PM00000010000004331 2008, 13:08:43

4 ответа


0

Я опубликовал вопрос, который может помочь вам, поскольку в нем обсуждаются некоторые из проблем: Если я буду беспокоиться о том, чтобы запутывать мою нетто-код

ответил John Sibly 28 PM00000020000004731 2008, 14:26:47
0

Вы спрашивали по инженерным причинам, так что это не является строго говоря ответом на вопрос. Но я думаю, что это правильное разъяснение.

Как вы говорите, запутывание предназначено для решения социальной проблемы. И социальные (или бизнес) проблемы, в отличие от технических, редко имеют полное решение. Существуют только степени успеха в решении или минимизации проблемы.

В этом случае обфускация создаст барьеры для того, чтобы кто-то декомпилировал и украл ваш код. Это предотвратит случайные атаки и, по инерции, может снизить вероятность кражи вашей интеллектуальной собственности. Чтобы сделать утомительную аналогию, иммобилайзер не предотвращает кражу вашего автомобиля, но это сделает его менее вероятным.

Конечно, затраты на ремонтопригодность (возможно) влияют на производительность и, что самое главное, затрудняют пользователям точную отправку отчетов об ошибках.

Как сказал GateKiller, запутывание не помешает определенной команде декомпилировать команду, но (и это зависит от того, какой у вас продукт), насколько решительно команда может вас атаковать?

Итак, это не техническое решение социальной проблемы, это техническое решение, которое добавляет одно влияние к сложной социальной структуре.

ответил Leigh Caldwell 28 PM00000010000001131 2008, 13:28:11
0

Хотя это не относится к .net, я бы подумал об обфускации в Javascript и, возможно, на других интерпретируемых языках. Javascript хорошо выигрывает от запутывания, потому что он уменьшает необходимую полосу пропускания и токены, которые парсер должен прочитать.

Но запутывание скомпилированного байт-кода на самом деле не кажется мне полезным. Я имею в виду, что бы вы попытались достичь? Я могу только видеть, что запутывание немного полезно в коде проверки лицензии, чтобы избежать его слишком легко обойти.

ответил Staale 28 PM00000010000005131 2008, 13:16:51
0

Основная причина использования запутывания - защита интеллектуальной собственности, как вы указали. Как правило, для бизнеса гораздо выгоднее приобрести продукт для запутывания, например .NET Reactor, чем пытаться юридически защищать ваши авторские права.

Запутывание может также обеспечить другие, более случайные преимущества, такие как повышение производительности и уменьшение размера сборки. Это принесет вам технические преимущества.

ответил John Hunter 28 PM00000010000001831 2008, 13:17:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132