Сегодня я играл с рефлектором .Net и понял, что весь пакет Expression от Miicrosoft написан на .Net. В результате я в значительной степени смог увидеть базовый код для выражения. Это значительно упрощает защиту двоичных файлов. Я думаю, что это очень важно. Обычно рекомендуется делать коммерческое программное обеспечение в .Net, где довольно легко увидеть исходный код до имен переменных? Я был удивлен, что Microsoft, по крайней мере, не пресекла его. СпасибоПолезно ли использовать .Net для коммерческого программного обеспечения?
ответ
Я бы рассмотрел возможность полностью отменить имена переменных (и, возможно, комментарии). .NET Reflector и Java Decompiler довольно приятные.
Даже если это было написано на C или C++, для RCE это ничего не значит. Люди резали зубы, читали сборку и возились с OllyDBG, IDA Pro и т. П. Microsoft предлагает свои собственные инструменты для изменения собственного кода.
Учитывая, насколько коммерческое программное обеспечение Java и .NET уже существует (и насколько оно легко декомпилировано), я сомневаюсь, что использование .NET, над Java, над C++, C или сборкой имеет большое значение при сравнении того, насколько легко он должен вернуть исходную исходную форму.
Сказав это, большая часть коммерческого программного обеспечения .NET, с которым я столкнулся, записывает ядро своей программы в (что, по-видимому,) библиотеку C++, а затем взаимодействует с ней через приложение .NET.
Любое приложение, которое стоит покупать - особенно крупное, например Expression, - не имеет ни одной части, которая, если разобрана и скопирована, уменьшит ее конкурентное преимущество.
С другой стороны, было бы бессмысленно разбирать и копировать всю кодовую базу, поскольку это было бы так очевидно.
Короче говоря, мы здесь не говорим о конденсаторах потока.
Я просто ссылаюсь на обход лицензирования – jmasterx
То, что вы видите в отражателе, декомпилировано IL. Нет практического способа обфускации этого, кроме как изменить имена идентификаторов.
Это всегда было так, что определенный хакер в любом случае перепроектирует ваш код, независимо от того, запутываете его или нет (обфускация или двоичный код занимает немного больше времени для обратной инженерии). Тот же аргумент касается алгоритмов лицензирования.
MS не нуждается в обфускации своего кода для защиты ИС, если у них есть армия юристов, которые могут подать иск в любую организацию, пытающуюся использовать код для создания конкурирующего продукта. Даже если у вас нет армии юристов, есть ли что-нибудь столь новое в вашем коде, которое оправдывало бы затраты на обратное проектирование? Большинство клиентов будут пытаться использовать законное программное обеспечение, поскольку риски, связанные с использованием слабо поддерживаемого незаконного программного обеспечения, слишком высоки. Любой мог бы взять рождение Стивена Кинга и скопировать все написанные в нем слова, поскольку они все там, ясно видно, но он все еще может получить значительную прибыль от доброй воли своих читателей, которые покупают его книги.
Да, .NET - жизнеспособная коммерческая платформа, но мы (то есть OffByZero, компания, которой я являюсь соучредителем) настоятельно рекомендую использовать обфускатор для чувствительного кода как в .NET, так и в Java. От Developing for Software Protection and Licensing:
Если вы разрабатываете в .NET или Java, доставка не-затемненный применение почти эквивалентно доставке в виде исходного кода.Если вас интересует об интеллектуальной собственности в пределах ваш код (особенно если вы , взаимодействующий с устройствами в моде , которые могут разоблачить коммерческие секреты), то вам нужно использовать качественный обфускатор.
...
Важно отметить, что ни одно решение для защиты программного обеспечения не может быть гарантировано 100% небьющимися; в принципе, как только ваш двоичный файл находится на другой машине, вы отказались от полного контроля над ней. Цель должна быть использовать программное обеспечение систему лицензирования высокого качества в сочетании с запутывания, чтобы сделать это очень трудно & много времени, чтобы взломать программное обеспечение, тем самым повышая планку достаточно высоко, чтобы защитить свои доходы.
- 1. Продажа коммерческого программного обеспечения для Mono
- 2. «Концепция» кода для коммерческого программного обеспечения
- 3. Какие языки должны использовать microISV для написания коммерческого программного обеспечения?
- 4. Binary diff algorithm для коммерческого программного обеспечения
- 5. Создание коммерческого программного обеспечения Java (DRM)
- 6. Есть ли хорошие книги по написанию коммерческого программного обеспечения?
- 7. Выпускайте ранний/выпуск часто для коммерческого программного обеспечения?
- 8. Лицензионное соглашение сообщества для коммерческого (SaaS) программного обеспечения?
- 9. Полезно ли использовать формообразователь?
- 10. Распространение коммерческого программного обеспечения на виртуальном устройстве Linux и GPL
- 11. разработка программного обеспечения для анализа программного обеспечения
- 12. Найти доступность программного обеспечения для программного обеспечения
- 13. Старые проблемы программного обеспечения .NET
- 14. Инструменты для оценки качества программного обеспечения (.net)
- 15. Возможно ли использовать этот тип программного обеспечения
- 16. Может использовать MVVM Light Toolkit для создания прибыльного коммерческого программного обеспечения?
- 17. Boxstarter для автоматизации программного обеспечения
- 18. Является ли законным для коммерческого программного обеспечения бесплатный пакет и не вносит ничего существенного?
- 19. Какую лицензию программного обеспечения использовать?
- 20. Является ли .Net framework для коммерческого использования?
- 21. распространять iPhone App для коммерческого программного продукта
- 22. Тестирование программного обеспечения и оценка программного обеспечения
- 23. Как создать пробную версию программного обеспечения .NET?
- 24. Можно ли использовать MacPorts для распространения пользовательского программного обеспечения?
- 25. StartingNodeUrl - Можно ли использовать метод для его программного обеспечения?
- 26. ключ для программного обеспечения
- 27. Полезные шаблоны проектирования программного обеспечения в .NET.
- 28. Есть ли индекс программного обеспечения?
- 29. Что нужно на клиентской машине для развертывания программного обеспечения .NET?
- 30. эффективные методы для «редактирования» вашего программного обеспечения в .net
Истина проще всего переделать, чем перепроектировать, есть другие механизмы защиты интеллектуальной собственности сверх схем защиты от копирования. – CurtainDog