Вопрос по .net – Что вы используете для защиты вашего кода .NET от обратного инжиниринга? [закрыто]

14

Некоторое время мы использовали инструмент под названием CodeVeil. Мне просто интересно, есть ли лучшие альтернативы там.

Изменить: Прежде чем другие люди неправильно поймут вопрос, я знаю, что решительный взломщик, вероятно, сможет победить любой из этих инструментов. Я не слишком обеспокоен ими, хотя. Эти инструменты предназначены только для того, чтобы остановить «случайный взломщик» и не дать людям украсть IP-адрес нашей компании. Если они достаточно хороши, чтобы обойти достойный инструмент, они, вероятно, не заинтересованы в краже нашего дерьмового кода :-P

Ваш Ответ

9   ответов
2

в том числе Dotfuscation, у которого есть «light» версия, которая поставляется с Visual Studio 2005 и 2008. Они имеют версию Pro, которая делает больше, чем просто переименование переменных и функций. Тем не менее, код по-прежнему доступен для просмотра, он просто немного зашифрован, чтобы его было сложнее читать и обрабатывать логический поток программного обеспечения.

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

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

Некоторые считают, что использование такого компилятора, как компилятор C ++, который компилируется в нативный код, предотвратит этот вид обратного инжиниринга, но это не так. Хороший дизассемблер обеспечит возможность обратного проектирования даже простых двоичных исполняемых файлов, поэтому идеального решения не существует. Если компьютер может прочитать и выполнить его, то память, которую использует компьютер, может быть отсканирована и отслежена, минуя все попытки зашифровать, запутать или использовать любые другие средства, чтобы сохранить ваш код в руках определенного инженера.

3

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

2

что воскресил старый пост, но я думаю, что .NET-реактор Eziriz работает блестяще.

На самом деле я использую его для всех своих приложений .net, и, очевидно, не существует какого-либо инструмента, который мог бы декомпилировать программу, защищенную с помощью реактора .net. Более подробную информацию можно найти на странице информации,http://www.eziriz.com/dotnet_reactor.htm, Протестируйте его с помощью пробной версии и отражателя .net, и вы сами это увидите.

Error: User Rate Limit Exceeded ilitirit
Error: User Rate Limit Exceeded
4

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

.NET на самом деле это большое прозрачное движение источников. Намного лучше, если вы вместо этого ограничиваете условия использования своего IP, такие как лицензирование и авторское право.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
5

вать сборки .NET, защищать разборки agaist Reflector, объединять сборки .NET в один исполняемый файл (& quot; виртуализация & quot;) и даже компилировать приложения .NET в автономные исполняемые файлы, для которых не требуется установка среды выполнения .NET.

-2

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

-2

он используется в .Net Reflector.

1

Я не работаю на RedGate создателей SmartAssembly. Я просто очень довольный клиент, который нашел хорошее и доступное решение.

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

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

Если вы поставляете коммерческое приложение, имеет смысл потратить деньги на приличный обфускатор. Неправильный выбор может поставить под угрозу вашу интеллектуальную собственность или, что еще хуже, привести к дням отвратительной отладки. Что это будет стоить по сравнению с SmartAssembly?

4

которые содержат большое количество метаинформации. Эта информация позволяет очень легко восстановить нечто очень похожее на исходный код. Отличный бесплатный инструмент под названием .NET Reflector может использоваться именно для этого и является популярным способом изучения работы библиотек базовых классов. Загрузите и используйте этот инструмент для просмотра восстановленных версий содержимого сборки на C # / VB.NET.

Если вы коммерческая организация, то вы не хотите, чтобы людям было легко взглянуть на ваш дорогостоящий код. Популярный метод - использовать Obfuscation для шифрования содержимого таким образом, чтобы не изменить его работу, но сделать его трудным для понимания. Обфускация использует такие методы, как переименование переменных и методов. Выработка цели способов "a1", "a2", "a3"; намного сложнее, чем оригинальный «GetName», «UpdateInterestRate» и «SetNewPassword».

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

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