Защита программ на .net
От: grosborn  
Дата: 03.11.12 14:11
Оценка:
Давно думал на эту тему. Теоретически я знаю как это сделать. То есть систему защиты шарповских программ. В последнем проекте я с дальним прицелом часть кода писал с учетом возможности встраивания защиты. Ну понятно, что решение не чисто шарповское, решение с нативным кодом. На архитектуру легло нормально, есть даже определенные архитектурные бенефиты, понравилось. Тонкие моменты проявились, но не страшно. Сам я конечно не потяну. Кто-нибудь здесь этим занимается?
Забанен на рсдн за применение слова "Маргинал"
Re: Как насчет готовых систем защиты?
От: vitsavinov  
Дата: 03.11.12 14:42
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Давно думал на эту тему. Теоретически я знаю как это сделать. То есть систему защиты шарповских программ. В последнем проекте я с дальним прицелом часть кода писал с учетом возможности встраивания защиты. Ну понятно, что решение не чисто шарповское, решение с нативным кодом. На архитектуру легло нормально, есть даже определенные архитектурные бенефиты, понравилось. Тонкие моменты проявились, но не страшно. Сам я конечно не потяну. Кто-нибудь здесь этим занимается?


Такие тулзы имеются.
Вот, например, достаточно зрелая система .NET защиты

Или интересует самому смастерить?
Re[2]: Как насчет готовых систем защиты?
От: grosborn  
Дата: 03.11.12 14:56
Оценка:
G>>Давно думал на эту тему. Теоретически я знаю как это сделать. То есть систему защиты шарповских программ. В последнем проекте я с дальним прицелом часть кода писал с учетом возможности встраивания защиты. Ну понятно, что решение не чисто шарповское, решение с нативным кодом. На архитектуру легло нормально, есть даже определенные архитектурные бенефиты, понравилось. Тонкие моменты проявились, но не страшно. Сам я конечно не потяну. Кто-нибудь здесь этим занимается?

V>Такие тулзы имеются.

V>Вот, например, достаточно зрелая система .NET защиты

V>Или интересует самому смастерить?


Ну вот смотри, они предлагают две тулзы, одну для защиты, другую для взлома этой защиты Ну смешно же.
Обфускация конечно затрудняет понимание кода. Одну задачу решает — твой продукт склонировать будет труднее. А вот против лома это не решение.
Мое решение больше для защиты приложения от взлома, хака, кряка.
Забанен на рсдн за применение слова "Маргинал"
Re: Защита программ на .net
От: ylem  
Дата: 03.11.12 14:59
Оценка:
DNGaurd вроде как очень крутая штука. Или даже, вероятно, самая крутая (?)
Re[3]: Как насчет готовых систем защиты?
От: vitsavinov  
Дата: 03.11.12 15:05
Оценка:
Здравствуйте, grosborn, Вы писали:

G>>>Давно думал на эту тему. Теоретически я знаю как это сделать. То есть систему защиты шарповских программ. В последнем проекте я с дальним прицелом часть кода писал с учетом возможности V>>Такие тулзы имеются.

V>>Вот, например, достаточно зрелая система .NET защиты

G>Ну вот смотри, они предлагают две тулзы, одну для защиты, другую для взлома этой защиты Ну смешно же.

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

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

Но сразу оговорюсь — я не профи в этом вопросе. Просто с с системой 9rays немного знаком.
Re[2]: Защита программ на .net
От: AnonThisTime  
Дата: 03.11.12 22:27
Оценка:
Здравствуйте, ylem, Вы писали:

Y>DNGaurd вроде как очень крутая штука. Или даже, вероятно, самая крутая (?)


На столько крутая, что сайт в дауне... Слишком много покупателей?
Re[3]: Защита программ на .net
От: ylem  
Дата: 04.11.12 05:40
Оценка:
ATT>На столько крутая, что сайт в дауне... Слишком много покупателей?

http://www.dnguard.cn/
Все нормально с сайтом .)

Если по-делу, то китайец там вполне вменяемый, саппортит оперативно.
По технологиям защиты, стабильности и скорости работы и отсутствию в свободном доступе средств борьбы с защитой вроде бы на высоте.
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 обфускатор (простенький конечно) выложил.
Re[4]: Порка: Metro Style Редактор Иконок
От: grosborn  
Дата: 05.11.12 11:20
Оценка:
Да в курсе как бы. Мое решение не пересекается с перечисленными.

Spices я не считаю чем-то серьезным. Когда тестировал разные обфускаторы, он что-то мне совсем ничего не смог обфусцировать и в итоге сборка падала. Но зато везде напихал своих рекламных окошек. Ага, выскакивает рекламное окошко, потом приложение падает. А внутри код необфусцирован нигде. И как они себе представляют я это буду покупать что ли?
Забанен на рсдн за применение слова "Маргинал"
Re[5]: Порка: Metro Style Редактор Иконок
От: gods_dog  
Дата: 05.11.12 13:00
Оценка:
G>Да в курсе как бы. Мое решение не пересекается с перечисленными.

G>Spices я не считаю чем-то серьезным. Когда тестировал разные обфускаторы, он что-то мне совсем ничего не смог обфусцировать и в итоге сборка падала. Но зато везде напихал своих рекламных окошек. Ага, выскакивает рекламное окошко, потом приложение падает. А внутри код необфусцирован нигде. И как они себе представляют я это буду покупать что ли?


Видимо брали с торрента, старенькую вскрытую, конечно, без лицензии она будет закрываться. Evaluation имеет полный функционал, и разве что маркирует сборку специальной watermark и атрибутом, что "защищено Spices.Obfuscator Evaluation и не для коммерческого использования". То есть некоммерческие проекты можно защищать Evaluation версией, а тем уж более что для СНГ существует постоянная 50% скидка, к тому же подписка продляется, если пользователь обнаружил серьезный баг, короче с СНГ 9rays работает на сильно льготных условиях и сотрудничает и консультирует, особенно в плане рекомендаций для создания эффективной защиты. К слову, тут упоминался китайский обфускатор — а суть тут такова, что все обфускаторы имеют в общем-то базовый функционал (саму обфускацию), а дальше уже экстра-вещи, типа инкрементальной обфускации, реализации шифрования строк, антидекомпайлинга, tamper defense, решения проблем диагностики(stack trace будет неисследуемый, поэтому нужна и его деобфускация), и обфускации кода. Вот тут весь изюм. Для простой обфускации достаточны и freeware типа гугловского или идущего с VS дотфускатора. Проблемы защиты они не решают, но решают проблему усложнения исследования и декомпиляции кода.
Re[6]: Порка: Metro Style Редактор Иконок
От: grosborn  
Дата: 05.11.12 13:04
Оценка:
Здравствуйте, gods_dog, Вы писали:

G>>Да в курсе как бы. Мое решение не пересекается с перечисленными.


G>>Spices я не считаю чем-то серьезным. Когда тестировал разные обфускаторы, он что-то мне совсем ничего не смог обфусцировать и в итоге сборка падала. Но зато везде напихал своих рекламных окошек. Ага, выскакивает рекламное окошко, потом приложение падает. А внутри код необфусцирован нигде. И как они себе представляют я это буду покупать что ли?


_>Видимо брали с торрента, старенькую вскрытую, конечно, без лицензии она будет закрываться.



Зачем ее качать с торрента, если триал есть?


> Evaluation имеет полный функционал, и разве что маркирует сборку специальной watermark и атрибутом, что "защищено Spices.Obfuscator Evaluation и не для коммерческого использования". То есть некоммерческие проекты можно защищать Evaluation версией, а тем уж более что для СНГ существует постоянная 50% скидка, к тому же подписка продляется, если пользователь обнаружил серьезный баг, короче с СНГ 9rays работает на сильно льготных условиях и сотрудничает и консультирует, особенно в плане рекомендаций для создания эффективной защиты. К слову, тут упоминался китайский обфускатор — а суть тут такова, что все обфускаторы имеют в общем-то базовый функционал (саму обфускацию), а дальше уже экстра-вещи, типа инкрементальной обфускации, реализации шифрования строк, антидекомпайлинга, tamper defense, решения проблем диагностики(stack trace будет неисследуемый, поэтому нужна и его деобфускация), и обфускации кода. Вот тут весь изюм. Для простой обфускации достаточны и freeware типа гугловского или идущего с VS дотфускатора. Проблемы защиты они не решают, но решают проблему усложнения исследования и декомпиляции кода.



Вот я даже читать не стал, ездить по ушам это конечно талант.
Забанен на рсдн за применение слова "Маргинал"
Re[5]: Порка: Metro Style Редактор Иконок
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 05.11.12 14:00
Оценка:
Здравствуйте, grosborn, Вы писали:

G>Да в курсе как бы. Мое решение не пересекается с перечисленными.


G>Spices я не считаю чем-то серьезным. Когда тестировал разные обфускаторы, он что-то мне совсем ничего не смог обфусцировать и в итоге сборка падала. Но зато везде напихал своих рекламных окошек. Ага, выскакивает рекламное окошко, потом приложение падает. А внутри код необфусцирован нигде. И как они себе представляют я это буду покупать что ли?


Справедливости ради скажу, что использую этот spices для защиты одного из продуктов, и у меня все работает гладко. Проект — WinForms приложение на .NET 2.0, обфускатор покупал несколько лет назад (если он с тех пор испортился, то хз). Шифрует строки, переименовывает все подряд во всякие нечитаемые символы, логику особо не меняет, насколько я вижу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.