Есть ли способ, чтобы Reflector не мог отражать мой исходный код?

Есть ли способ (надежный и желательно не коммерческий), чтобы не дать Reflector отразить мой исходный код ???

Спасибо ади

15.12.2008 12:13:45
9 ОТВЕТОВ

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

Некоторые плюсы и минусы выполнения обфускации можно найти по адресу. Следует ли запутывать коммерческое приложение .Net?

5
23.05.2017 12:04:26

попробуйте dotfuscator. 2005/2008 выпускается с выпуском сообщества. В случае неудачной ре-архитектуры ваш код (болезненный), то есть объекты ATL / COM (приватные), вызываемые компонентами .NET (общедоступные).

Твой выбор.

1
15.12.2008 12:23:57

Невозможно предотвратить декомпиляцию кода .net, при этом хороший обфускатор затруднит чтение отраженного кода, некоторые из них, например dotfuscator, не позволят рефлектору отображать код C #; Тем не менее, вы всегда сможете увидеть IL.

Одна из опций в Dotfuscator - использовать непечатаемые имена (Reflect on отражатель). Это очень усложняет декомпиляцию IMHO.

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

http://msdn.microsoft.com/en-us/slps/default.aspx

4
15.12.2008 13:41:51
+1 Отказ от ответственности : я работаю на InishTech - указанный продукт Microsoft продолжает свою деятельность как InishTech [Software Potential Code Protector] (www.inishtech.com/code-protector/). Обратите внимание, что код был (и есть) преобразован в другой рандомизированный набор инструкций, не только напрямую зашифрованный (хотя, конечно, существует ряд конкурирующих продуктов, которые делают именно это со всеми вытекающими из этого плюсами и минусами такого подхода)
Ruben Bartelink 26.06.2014 10:46:24

Если вы ищете хороший Обфускатор, попробуйте RemoteSoft .

0
15.12.2008 13:47:31

Не так давно был анти-рефлекторный трюк, который был эффективен, потому что .NET рефлектор не смог перевести одну конкретную инструкцию IL в код на c #, но они выпустили патч, и веселье закончилось.

0
10.07.2009 08:00:21

Xheo Codeveil также является отличным продуктом. У них также есть решение по лицензированию (для создания серийных номеров и т. Д., А затем активация через ваш собственный сервер активации0).

0
10.07.2009 08:07:12

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не работаю на RedGate создателей SmartAssembly. Я просто очень довольный клиент, который нашел хорошее и доступное решение.

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

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

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

0
27.07.2011 19:11:35

Reflector не использует Reflection для отображения вашего исходного кода. Для этого используются метаданные .Net (в общеизвестном опубликованном формате).

Нет никакого способа предотвратить это, но вы делаете это бессмысленным, запутывая свои сборки. После запутывания класс / метод / поля переименовываются, строковые строки в методах шифруются, вызовы методов скрываются, поток управления методами шифруется и так далее. Таким образом, любой, кто использует Reflector, увидит много мусора и не сможет разобраться в большинстве из этого.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я работаю на программное обеспечение LogicNP, разработчиков Crypto Obfuscator

0
11.08.2011 05:02:59

При желании вы можете загрузить приложение .Net с помощью собственного приложения C ++. Затем вы можете запутать и зашифровать все ваши файлы .net DLL.

Используйте приложение bootstrap c ++ для дешифрования всех ваших файлов в байтовые массивы на основе памяти (точные копии их физических сущностей).

Я сделал так, чтобы все мои файлы .net были в одном зашифрованном файле с расширением .DAT. Код C ++ захватывает файлы в отображенные в память файлы, а затем использует API-интерфейс хостинга CLR, чтобы превратить мое приложение Native C ++ в приложение .net, которое я затем использую load, используя

Assembly.Load (байт [] ...)

Поэтому в моем приложении я избегал создания .net EXE и сделал свое приложение C ++ EXE таким образом, чтобы все мои формы, элементы управления и т. Д. Жили в .Net Dll.

0
29.09.2014 18:17:54