Re[3]: Как насчет готовых систем защиты?
От: gods_dog  
Дата: 05.11.12 10:44
Оценка:
G>Ну вот смотри, они предлагают две тулзы, одну для защиты, другую для взлома этой защиты Ну смешно же.
Ну во-первых не для защиты, а для декомпиляции. Хорошо защищенное приложение декомпилировать-то можно все равно, только код будет нерабочий. То есть например есть IL дизассемблер (ILDASM) — входит в поставку .Net Framework — вот он ваше приложение разберет до байтика, вполне читабельный код, и собрать его можно линкером. Да, тотальной защиты нет, есть комплекс мер — например защита от ILDASM, защита от популярного декомплятора reflector, шифрование строк, и т.д Кроме защиты идет комплекс мер по оптимизации кода — удаление неиспользуемого кода.
То есть обфускаторы "выросли" из понятия "обфускация"(замена имен членов сборки на короткие и бессмысленные) и доросли до понятия "защита". Например упоминаемый тут Spices.Net Obfuscator единственный кто предлагает защиту от подделки (Tamper Defense) — а это способ №1 (ILDASM-ILASM roundtrip) для взлома, когда приложение дизассемблируется в il-код, снимается защита и лицензирование и код обратно линкуется ILASMом — стандартные утилиты от .Net Framework. Если сборка подписана — подписывают своим ключом и порядок. Никакой декомпиляции не нужно. Ну вот Spices.Net Obfuscator ежинственный кто предлагает реальную защиту от этого способа(причем на технологию TamperProof получен патент).

G>Обфускация конечно затрудняет понимание кода. Одну задачу решает — твой продукт склонировать будет труднее. А вот против лома это не решение.

G>Мое решение больше для защиты приложения от взлома, хака, кряка.
Для защиты .net приложение есть два класса утилит — это обфускаторы, которые работают с il-кодом и метаданными, и протекторы — обычно "заворачивающие" приложения в свою оболочку, то есть в итоге получается не .net а native processor code app, а при запуске, приложение уже инициализирует .net сборку. Но у протекторов кажущаяся "защита" на самом дле куда проще ломаемая — приложение должно запомнить на диске защищаемую сборку, а потом ее запустить, вот тут его и "ловят". Поэтому часто разработчики протекторов предлагают еще и обфускацию. К тому же у таким образом защищенных приложений есть куча недостатков при работе в средах 32-64бита, разныими политиками безопасности, антивирусы их опознают как malware ит.д А если брать широко весь спектр .net приложений — от winforms к asp.net и к silverlight приложениям, то протекторы тут бессильны(это при определенных оговорках подходит только для winforms приложений, и только приложений, т.к для библиотеки классов, компонент протектор уже не подходит).
собственно в wiki лежит сравнительная табличка, разве что и там идет "война правок": http://en.wikipedia.org/wiki/User:Scatophaga/Comparison_of_.NET_obfuscators
вот есть и на Хабре обзор: http://habrahabr.ru/post/97062/
Во всяком случае эти обзоры дадут понятие о возможностях защиты.
Помнится, что на rsdn занимались своим обфускатором, а теперь и Гугл свой open-source обфускатор (простенький конечно) выложил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.