Лучший продукт для запутывания смешанной .NET DLL [закрыто]

У меня есть .NET DLL и приложение. DLL написана на C ++ / CLI и является «смешанной», то есть частично управляемым кодом и частично нативным.

У меня две цели:
1. Запутать весь управляемый код, чтобы его нельзя было разобрать.
2. Запутать открытые методы / классы смешанной библиотеки DLL, чтобы никто не мог использовать библиотеку DLL в своих собственных приложениях, т. Е. Шифровать открытые имена.

Да, я понимаю, что запутывание не идеально, и люди все еще могут понять это и бла-бла. Две цели являются требованием управления. Единственное приложение, которое я смог найти, - Dotfuscator Professional Edition. К сожалению, это одно из тех невероятно раздражающих приложений, где вам приходится просить продавца рассказать вам цену. Кто-нибудь знает другое решение или знает хорошее место, чтобы купить дешевую легальную копию?

Не говорите мне переписать DLL в управляемом коде, это займет месяц работы, и я никогда не получу одобрения. :-)

Обратите внимание, что я не особо параноик по поводу того, насколько хороша запутанность. Все, что скремблирует имена всех методов и классов в приложении, вероятно, достаточно хорошо.

Вот другие обфускаторы, которые я пробовал:

  • Dotfuscator Community Edition поставляется с Visual Studio 2008, но не поддерживает смешанные сборки.

  • Eazfuscator .NET прост и бесплатен, но не поддерживает смешанные сборки.

  • {smartassembly} составляет 500 долларов США за одну лицензию. У него есть некоторые интересные функции, но он не поддерживает смешанные сборки.

  • Саламандра 800 долларов. Заявления о полной поддержке смешанных сборок, но всякий раз, когда я пытался использовать запутанную DLL, приложение зависало

  • .NET Reactor стоит 180 долларов за одну лицензию разработчика. Он поддерживает «частичное» запутывание смешанных DLL. К сожалению, если вы запутываете открытые типы в DLL, это не работает, .exe не может найти классы. У него есть возможность объединить / упаковать DLL в .exe, но когда вы делаете это со смешанной DLL, это не работает (exe не может найти сборку DLL, даже если она является частью .exe)

  • Skater стоит 300 долларов за одну лицензию. Я не вижу ничего на их сайте, утверждающего, что он поддерживает смешанные сборки, и я устал пробовать приложения только для того, чтобы разочароваться, поэтому я предполагаю, что это не так.

Я также попробовал ILMerge от Microsoft, чтобы посмотреть, смогу ли я объединить DLL с .exe и затем запутать, но, похоже, это также душит смешанные DLL.

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

16.12.2008 02:33:32
Вы пробовали Demeanor для .NET (Wize Owl: wiseowl.com/products/products.aspx )? Это немного дорого, но мы используем его с 2002 года, и пока это было хорошо. Однако мы не должны использовать Demeanor для запутывания сборок в смешанном режиме.
Alek Davis 8.03.2010 20:54:33
Вы когда-нибудь были с этим? Я сам в настоящее время ищу смешанный c ++ / cli dll obfuscator.
JessMcintosh 9.08.2013 14:11:53
Я полагаю, что мы закончили с .NET Reactor от Eziriz ( eziriz.com/dotnet_reactor.htm ).
mhenry1384 17.08.2013 22:13:02
Если это поможет, нам предложили 1750 евро за одну лицензию разработчика Dotfuscator в прошлом году.
Stephen Hewlett 21.08.2013 18:26:49
2 ОТВЕТА

Я использую {smartassembly} для объединения SlimDX и DirectShow.Net вместе с моей программой .net. Все это написано с использованием C ++ / CLI. Они отлично слились на моей стороне. Откуда у вас указание, что он не поддерживает смешанные сборки?

РЕДАКТИРОВАТЬ: Я не уверен на 100%, так как я никогда раньше не использовал C ++ \ CLI, но я раньше писал чистые приложения на C ++. Это то, что я собираю, в файле AssemblyInfo.cpp SlimDX есть строка, которая конфигурирует сборку следующим образом:

[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];

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

Кстати, я использую версию 3.0.3063 из {smartassembly}

-1
17.12.2008 08:19:30
Если я пытаюсь запутать свою библиотеку DLL C ++ / CLI с помощью {smartassembly}, то выдается сообщение об ошибке «Сборка« бла »содержит неуправляемый код, который не поддерживается {smartassembly}». Используется последняя версия {smartassembly}. , Вы уверены, что ваше приложение на C ++ / CLI содержит неуправляемый код?
mhenry1384 16.12.2008 04:12:44
Я не уверен на 100%, так как сам никогда раньше не использовал C ++ \ CLI, но раньше я писал только приложения на чистом C ++. Это то, что я собираю, в файле AssemblyInfo.cpp SlimDX есть строка, которая конфигурирует сборку с неуправляемым кодом
faulty 17.12.2008 08:20:29

Я пробовал несколько решений одной и той же проблемы. Для вас не существует отличного решения этой проблемы. LibZ - достойная альтернатива ILMerge. Вы, вероятно, можете стать милым, просто упаковав сборки в ресурсы вашей программы, а затем загрузите их из памяти в зависимости от используемых сборок. Если вы запутаете исполняемый файл по крайней мере, это добавит еще один уровень косвенности.

0
5.01.2014 01:47:39