Что сейчас лучше всего применять для защиты от просмотра кода из фришного? Можно триал, но чтобы только сам обфускатор переставал работать, а на программы, защищенные им, это никак не влияло.
ЗЫ
Сейчас прошу не поднимать тему, что защищать код от просмотра глупо, не нужно, не возможно и пр.
06.08.08 14:52: Перенесено модератором из '.NET' — AndrewVK
=сначала спроси у GPT=
Re: Какой сейчас лучший free Обфускатор .Net
От:
Аноним
Дата:
01.08.08 18:44
Оценка:
Здравствуйте, 0K, Вы писали:
0K>Здравствуйте!
0K>Что сейчас лучше всего применять для защиты от просмотра кода из фришного? Можно триал, но чтобы только сам обфускатор переставал работать, а на программы, защищенные им, это никак не влияло.
0K>ЗЫ 0K>Сейчас прошу не поднимать тему, что защищать код от просмотра глупо, не нужно, не возможно и пр.
Все фришное что видел — не удовлетворило по качеству. Пришлось покупать
Требуется:
1. Сделать обфускацию сборки (*.dll) так, чтобы усложнить декомпиляцию некоторых процедур. Т.е. сделать"Code flow obfuscation" и скрамблинг названий internal и private классов/полей/методов. Public классы/поля/методы должны быть доступны извне по нормальному названию.
2. Объединить две сборки в одну.
В результате долгих поисков вот что получилось.
Для 1-го шага пробовал использовать:
а) Dotfuscator 3.0.2005. Бесплатная версия, которая идет с VS2005.
Недостатки: Умеет лишь переименовывать методы (scrambling), оставляя код процедур легко читаемым в дизассемблере (ILDasm).
б) Freeware Skater .NET obfuscator Light Edition 2.60 ( Skater .NET Obfuscator demo) (сайт).
Недостатки: То же самое. +Не нашел опции по скрамблингу internal классов.
в) Eazfuscator.NET 2.1. Бесплатная украинская разработка (сайт).
Неплохо делает скрамблинг не-public классов/полей/методов. Однако также не защищает код методов от понятного чтения в дизассемблере (хотя в RoadMap у них есть Code flow obfuscation).
Для 2-го шага пробовал использовать:
а) ILMerge 2.8. Бесплатная утилита от Microsoft`а. (сайт).
Я написал .bat файл, который выполняет объединение обработанных в первом шаге сборок.
Неполадки:
* Не помещает информацию из комментариев типа summary /summary в результирующую сборку.
* Не создает результирующий .pdb файл, если нет .pdb файла хотя бы для одной из исходных сборок (опция /ndebug утилиты включена).
Здравствуйте, Вертер, Вы писали:
В>Здравствуйте, vecs, Вы писали:
V>>(Ой, забыл залогиниться, отправляя предыдущее сообщение!) V>>Хотя бы поделитесь, как кто защищает свои разработки.
В>Themida и/или WinLiсence всё от www.oreans.com
Что-то на моем софте она не заработала(возможно из-за использования рефлексии, хотя тот же .NET Reactor заработал).
Но так действительно хвалят(точнее плюются ) — на крякерских форумах.
В>>Themida и/или WinLiсence всё от www.oreans.com
А>Что-то на моем софте она не заработала(возможно из-за использования рефлексии, хотя тот же .NET Reactor заработал).
рефлексии?
не всегда все фичи могут работать. Защищённое приложение это уже не дотНЕТ и получать методы через "рефлекшен" уже будет невозможно...
А>Но так действительно хвалят(точнее плюются ) — на крякерских форумах.
во-во.
Re[6]: Какой сейчас лучший free Обфускатор .Net
От:
Аноним
Дата:
07.08.08 10:50
Оценка:
Здравствуйте, Вертер, Вы писали:
В>>>Themida и/или WinLiсence всё от www.oreans.com
В>не всегда все фичи могут работать. Защищённое приложение это уже не дотНЕТ и получать методы через "рефлекшен" уже будет невозможно...
Не разбирался как в Themida, а в .NET Reactor'e защищенная сборка остается сборкой с MSIL кодом. Более того — и Reflection при работе через публичные интерфейсы сборки при использовании .NET Reactor'a(даже с использованием NecroBit) — работает как надо. У меня модульная архитектура приложения, использующая общие интерфейсы(расположенные в отдельной сборке) для подключения дополнительной функциональности. Защищенное приложение работает как швейцарские часы.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Вертер, Вы писали:
В>>>>Themida и/или WinLiсence всё от www.oreans.com
В>>не всегда все фичи могут работать. Защищённое приложение это уже не дотНЕТ и получать методы через "рефлекшен" уже будет невозможно...
А>Не разбирался как в Themida, а в .NET Reactor'e защищенная сборка остается сборкой с MSIL кодом. Более того — и Reflection при работе через публичные интерфейсы сборки при использовании .NET Reactor'a(даже с использованием NecroBit) — работает как надо. У меня модульная архитектура приложения, использующая общие интерфейсы(расположенные в отдельной сборке) для подключения дополнительной функциональности. Защищенное приложение работает как швейцарские часы.
Themida делает нативное приложение, внутри которого дотНЕТ код. Поэтому никакой рефлекшен просто не будет работать. Модули подключать можно, а можно объединять в один экзешник если они на этапе старта загружаются.
Здравствуйте, Аноним, Вы писали:
А>В результате долгих поисков вот что получилось.
...
(сайт). А>Неплохо делает скрамблинг не-public классов/полей/методов. Однако также не защищает код методов от понятного чтения в дизассемблере (хотя в RoadMap у них есть Code flow obfuscation).
Супер! Действительно отличный обфуксатор!
А что вы подразумеваете под "не защищает код методов от понятного чтения в дизассемблере". Как его можно защитить? Разнести по 10-кам разных методов? Или превратить в нейтив код? Или что имеется в виду?
Здравствуйте, 0K, Вы писали:
0K>А что вы подразумеваете под "не защищает код методов от понятного чтения в дизассемблере". Как его можно защитить? Разнести по 10-кам разных методов? Или превратить в нейтив код? Или что имеется в виду?
reorder инструкций — поможет от тупых декомпиляторов (а они практически все такие) и затруднит анализ ассемблерного кода
добавление неисполняемых веток с кодом, некорректно работающим со стеком — то же самое, но 99% декомпилятору вообще крышу снесет (1% оставляю на то, что я отстал от жизни и появился нормальный декомпилятор с анализом code flow)
Здравствуйте, Mace Windu, Вы писали:
MW>добавление неисполняемых веток с кодом, некорректно работающим со стеком — то же самое, но 99% декомпилятору вообще крышу снесет (1% оставляю на то, что я отстал от жизни и появился нормальный декомпилятор с анализом code flow)
Это да. Такие конструкции добавляет 9Rays.Net обфускатор. Рефлектор на них спотыкается (вообще инфы не выводит). А вот ILDASM нормально отображает.
Из бесплатных есть еще этот http://code.google.com/p/obfuscar/ Но там есть только скрэмблинг.
Сейчас использую 9rays spices.net, но с ним куча проблем. Регулярно подавляю мысли о том, чтобы надо писать свой
Здравствуйте, <Аноним>, Вы писали:
А> http://eziriz.com/
А>С использованием NecroBit.
Насколько мне известно, эта мега-технология заключается в элементарном запихивании сборки с кодом в ресурсы. Раскалывается на счет "раз". И вообще обфускатор корявый, мне не понравился.
Здравствуйте, 0K, Вы писали:
Пользуюсь Inquartos Obfuscator от Inquartos Software (ООО "Инквартос", г. Казань).
Имеется переименование, запутывание графа управления, лицензии, ограничение по времени, создание ClickOnce.
Бесплатная версия, конечно, огранична в функциональности, но полной версией пока доволен.
PS: ... блин, почти что реклама получилась еще бы разработчики побольше времени уделяли продукту (ведь есть еще то, чего в нём не хватает или слабо сделано) — было бы прекрасно...
Здравствуйте, Andrei F., Вы писали:
AF>Здравствуйте, <Аноним>, Вы писали:
А>> http://eziriz.com/
А>>С использованием NecroBit.
AF>Насколько мне известно, эта мега-технология заключается в элементарном запихивании сборки с кодом в ресурсы. Раскалывается на счет "раз". И вообще обфускатор корявый, мне не понравился.
Я тоже так подумал, увидев год назад обсуждение по поводу распаковки .NET Reactor'a, пока не выяснил собственноручно однозначно обратное Попробуйте сами — вроде есть(был по крайней мере год назад) триальный период. И внимательно посмотрите в ресурсы сборки
Здравствуйте, <Аноним>, Вы писали:
А>Я тоже так подумал, увидев год назад обсуждение по поводу распаковки .NET Reactor'a, пока не выяснил собственноручно однозначно обратное Попробуйте сами — вроде есть(был по крайней мере год назад) триальный период. И внимательно посмотрите в ресурсы сборки