Re[2]: .NET обфускаторы - счастливые истории
От: Аноним  
Дата: 01.02.06 10:03
Оценка:
Здравствуйте, Harley_D, Вы писали:

HD>Советую обратиться к одному из давнейших и хорошо себя зарекомендовавших

HD>производителей — 9Rays.net и их продукту Spices.Net(кстати он выиграли в
Знаем, знаем, но смотрел пару месяцев назад, но до продукта так дело и не дошло, меня просто убил их сайт.

HD>есть и криптование, есть и просто скрытие строк

что значит сокрытие

HD>Это на самом деле один из самых слабых интсрументов защиты, т.к хороший декомпилятор шаблоны control flow obfuscation распознает на раз. Не стоит обманываться на этот счет.

Как это ему удается?

HD>Есть. Например такая фича как кросс-обфускация.

Что это такое?

HD>Отвечают быстро, консультируют и проблемы решают оперативно.

А саппорт, обновления платные или нет?
Re[3]: .NET обфускаторы - счастливые истории
От: Аноним  
Дата: 01.02.06 10:10
Оценка:
Здравствуйте, lozzy, Вы писали:

Ну, а что же ты не колешся, что 9Лучей пользуеш?
Как впечатления от работы.
Re[4]: .NET обфускаторы - счастливые истории
От: Аноним  
Дата: 01.02.06 10:12
Оценка:
Здравствуйте, Harley_D, Вы писали:

А ты в реальной работе используеш 9Лучей обфускатор, или просто хвалиш ?
Re[4]: .NET обфускаторы - счастливые истории
От: lozzy  
Дата: 01.02.06 10:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ну, а что же ты не колешся, что 9Лучей пользуеш?

А>Как впечатления от работы.

Да я не скрываю вообщем-то Много раз об этом писал. Честно говоря, пока что прожект, под который я тогда набирал кучу софта — застоллился. Т.е. я все эти тулзы юзал некоторое время назад, но до реального продукта дело _пока_ не дошло, хотя надеюсь, что дойдет в ближайшие пару месяцев. Другой продукт обфускатить не надо — там все в сорцах. Ну и кастом ворк — он тоже не обфускатится.
Re[4]: .NET обфускаторы - счастливые истории
От: lozzy  
Дата: 01.02.06 11:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ну, а что же ты не колешся, что 9Лучей пользуеш?

А>Как впечатления от работы.

Да, собственно, впечатления от работы ммм... скажем так, могло бы быть лучше. И делается к лучшему. Пожелания пользователей не улетают в /dev/null.

Сходу не получилось разобраться, как же собственно сделать настройки проекта, к примеру. Пришлось обращаться в саппорт и читать хелпы — там все было вроде как, но я это узнал уже после Я текущую версию не смотрел, но версия полутора-двухмесячной давности все еще была на dotNetMagic-е. Выглядит весьма некузяво, но вполне себе работает. Саппорт, как я уже говорил, весьма вменяем.

Если интересно еще чего-то — спрашивай.
Re[2]: .NET обфускаторы - счастливые истории
От: Аноним  
Дата: 01.02.06 11:08
Оценка:
Здравствуйте, Harley_D, Вы писали:

H_D>Советую обратиться к одному из давнейших и хорошо себя зарекомендовавших

H_D>производителей — 9Rays.net и их продукту Spices.Net(кстати он выиграли в
H_D>прошлом году Peoples Choice Award от MS-вского MSD2D.com отобрав его у
H_D>remotesoft.com).

Кстати, объясните чайнику — Рихтер пишет что framework позволяет-таки компилять программу не в managed-код а получать на выходе код компилированный под процессор (только как прикрутить это к VS2003 я не нашел).

Если его использовать, то получается что обфускатором в принципе можно не пользоваться?

Просто у меня тоже стоит задача защитить trial-версию программы под Net, пока наилучшим решением видится вынесение критично-функционального кода в обычную DLL и далее её паковка чем-то вроде ExeCryptor-а. Хотя с точки зрения красоты кода и структуры, это конечно не лучший метод...
Re[3]: .NET обфускаторы - счастливые истории
От: Harley_D Россия www.digicreatures.com
Дата: 01.02.06 11:08
Оценка:
>>> — control flow обфускация
> H_D>Это на самом деле один из самых слабых интсрументов защиты, т.к
> хороший
> H_D>декомпилятор шаблоны control flow obfuscation распознает на раз. Не
> стоит
> H_D>обманываться на этот счет.
> H_D>Нет.
> Ну не настолько слабо, но реализовать их сложно, согласен.

Реализовать control flow obfuscation нетрудно — это все базируется на
шаблонах — обнаружен for — значит вот это, обнаружен while — значит вот это.
А до if-ов уже никому дела нет, и control-flow который реализован на
remotesoft — даже не обнаруживается, а убирается декмопилятором в процессе
оптимизации. Об этом уже не раз говорилось, что эта фича взята из
java-obfuscator-ов, но она там работает, т.к. некому мощных декомпиляторов
на них натравить. А в дотнете — как минимум 3 мощных декомпилера есть.

> H_D>Есть. Несколько видов. В том числе защита от Spices.Decompiler

> Защита от спайсовского декомпилера мало кому интересна

Если следовать правилу — лучше перебдеть, чем недобдеть — то может быть
интересна.
Жалко нет статистики количества юзеров декомпиляторов.

> H_D>К тому же к обфускатору прилагается немалый набор интсрументов для

> анализа сборок.
> Ммм... Работы, конечно, ведутся, и некоторые тулзы действительно
> интересны, но пока что слабо юзабельны честно говоря. Пока еще не пробовал
> documenter-а, все руки не доходят.

Эта беда у всех. Но с ними можно работать, я свои 5- копеек тоже вносил. Ты
еще не знаешь что такое саппорт xenocode — там не только тебе навстречку не
пойдут а еще ответят через неделю. Типа "спасибо за письмо, оно отправлено
куда нужно и вам ответят. Нам было это важно".
Что важно, где ответ, непонятно. Мне кажется у них бизнес построен по
заказу — как у немцев(lesser чего-то там) — наняли программиста, он написал
обфускатор. Начали продавать, а программист ищет следующую работу (в инете
натолкнулся с года два назад на его резюме, некий Абрамов уже не помню).
Остался голый маркетинг. Ну а кто баги будет править, новые версии
выпускать?

> H_D>В компании 9rays руский саппорт, можно сразу писать на

> support[at]9rays.net если есть вопросы.
> H_D>Отвечают быстро, консультируют и проблемы решают оперативно.
> Все верно. Только в субботу-воскресенье бывают протормозы и писать лучше
> ближе к вечеру Ночью дак вообще красота



> В целом все весьма неплохо, если бы выбирал еще раз — выбрал бы то же

> самое. Интерфейс немного кривоват — сделан еще на старом dotNetMagic, но
> вроде как ведутся работы по переделке под красивый и юзабельный
> divelements.
Ну вот я попинал с месяц по поводу паттернов исключения/включения по маске
членов сборки — сделали. В общем правильно — если красивого решения нет,
лучше малость подождать. Вот сейчас красивое решение предложили — не
нарадуюсь.
Мне по новой версии уже уши прожужжали — ждемс. Говорят что февраль —
последний срок, отступать дальше некуда.
Мне вот это нравится что есть в саппорте интерактивность — к тебе
прислушиваются, какой-то wishes list присутсвует и пополняется.

>Не хватает только одной фичи — слить несколько сборок в одну. По какой-то

>причине не хочут, а жаль.
В чем проблема — assembly linker фришный от MS валяется давно в инете.
--
Best regards, Harley
Posted via RSDN NNTP Server 2.0
Best Regards,
Harley
Re[3]: .NET обфускаторы - счастливые истории
От: Harley_D Россия www.digicreatures.com
Дата: 01.02.06 11:19
Оценка:
> HD>Советую обратиться к одному из давнейших и хорошо себя
зарекомендовавших
> HD>производителей — 9Rays.net и их продукту Spices.Net(кстати он выиграли
> в
> Знаем, знаем, но смотрел пару месяцев назад, но до продукта так дело и не
> дошло, меня просто убил их сайт.

Сайт как сайт, чему там убивать. Типа под officeXP.

> HD>есть и криптование, есть и просто скрытие строк

> что значит сокрытие

это когда строка в коде заменяется на функцию. а при криптовке еще эта
строка шифруется.

> HD>Это на самом деле один из самых слабых интсрументов защиты, т.к хороший

> декомпилятор шаблоны control flow obfuscation распознает на раз. Не стоит
> обманываться на этот счет.
> Как это ему удается?

Ну как распознать кусок il-code? декомпилатор только этим и занимается что
опознает куски ilcode превращая его в конструкции. а controlflow — это
контсрукция над конструкцией. Да об это уже писали где-то. получается что в
control flow выставляется два jumpa — сначал функция прыгает на него, потом
обратно к исполнению, вот и весь controlflow. я конечно утрирую, но если
control flow obfuscation будет сложнее — это будет влиять на application
performance. В общем в том анализе-статье были примерчики и это все выглядит
смешно.

> HD>Есть. Например такая фича как кросс-обфускация.

> Что это такое?

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

> HD>Отвечают быстро, консультируют и проблемы решают оперативно.

> А саппорт, обновления платные или нет?

Официально год, но я обновляю уже почти два. Я думаю на россиян "закрывают
глаза", а может — потому что полезный юзер .

--
Best regards, Harley
Posted via RSDN NNTP Server 2.0
Best Regards,
Harley
Re[4]: .NET обфускаторы - счастливые истории
От: lozzy  
Дата: 01.02.06 11:41
Оценка:
Здравствуйте, Harley_D, Вы писали:

>> Ну не настолько слабо, но реализовать их сложно, согласен.

H_D>Реализовать control flow obfuscation нетрудно — это все базируется на
H_D>шаблонах — обнаружен for — значит вот это, обнаружен while — значит вот это.
А слабо было бы интересно написать мутирующий control-flow? Ну типа как вирусняфки

H_D>еще не знаешь что такое саппорт xenocode — там не только тебе навстречку не

H_D>пойдут а еще ответят через неделю. Типа "спасибо за письмо, оно отправлено
H_D>куда нужно и вам ответят. Нам было это важно".
А что ты хотел — это же выходцы из МС контору основали И фича с платным саппортом — оттуда же...

H_D>Ну вот я попинал с месяц по поводу паттернов исключения/включения по маске

H_D>членов сборки — сделали. В общем правильно — если красивого решения нет,
H_D>лучше малость подождать. Вот сейчас красивое решение предложили — не
H_D>нарадуюсь.
Угу, есть такое.

H_D>Мне вот это нравится что есть в саппорте интерактивность — к тебе

H_D>прислушиваются, какой-то wishes list присутсвует и пополняется.
+1.

>>Не хватает только одной фичи — слить несколько сборок в одну. По какой-то

>>причине не хочут, а жаль.
H_D>В чем проблема — assembly linker фришный от MS валяется давно в инете.
А он весьма глюкав, этот ILMerge, как оказалось. К тому же сейчас он работает под ФВ 2.0, а мне лень его качать
Re[5]: .NET обфускаторы - счастливые истории
От: Harley_D Россия www.digicreatures.com
Дата: 02.02.06 04:49
Оценка:
>
> А ты в реальной работе используеш 9Лучей обфускатор, или просто хвалиш
> ?

Ниже я уже написал — года эдак два. Дело в том что меня достаточно
просветили эти ребята по поводу некоторых заблуждений и дали несколько
полезных советов. Без ложной скромности скажу что советы были даже не
ценными а бесценными. Когда есть понимание как это все делается, понятно как
эффективно защищать продукт.

--
Best regards, Harley
Posted via RSDN NNTP Server 2.0
Best Regards,
Harley
Re[3]: .NET обфускаторы - счастливые истории
От: Harley_D Россия www.digicreatures.com
Дата: 02.02.06 05:00
Оценка:
>
> Кстати, объясните чайнику — Рихтер пишет что framework позволяет-таки
> компилять программу не в managed-код а получать на выходе код
> компилированный под процессор (только как прикрутить это к VS2003 я не
> нашел).
>
> Если его использовать, то получается что обфускатором в принципе можно не
> пользоваться?

Все пишут об этом но никто не продемонстрировал. Этот баян с первой версии
дотнета — можно дескать ngen-ом получить нэтивную сборку.
Если по умному дебажить сборку (например обращение к методу во внешней
сборке а сборку эту убрать) то можно заметить что методы компилятся джитером
динамически. Память(и обьекты) выделяется и освобождается тоже своеобразно —
примчиками COM тут воспользоваться не получится. Я надеялся что 2-я версия
будет чего-то такое содержать для нэтива но похоже MS не торопится никуда
или проблемы какие-то не решены.

> Просто у меня тоже стоит задача защитить trial-версию программы под Net,

> пока наилучшим решением видится вынесение критично-функционального кода в
> обычную DLL и далее её паковка чем-то вроде ExeCryptor-а. Хотя с точки
> зрения красоты кода и структуры, это конечно не лучший метод...

есть способ генерирования динамической сборки in-memory при помощи
reflection и ее использование. я пробовал — уж больно трудозатратный, но там
дествительно трудно вынуть что-то.
--
Best regards, Harley
Posted via RSDN NNTP Server 2.0
Best Regards,
Harley
Re[4]: .NET обфускаторы - счастливые истории
От: retalik www.airbandits.com/
Дата: 02.02.06 06:48
Оценка:
Здравствуйте, Harley_D, Вы писали:

H_D>есть способ генерирования динамической сборки in-memory при помощи

H_D>reflection и ее использование. я пробовал — уж больно трудозатратный, но там
H_D>дествительно трудно вынуть что-то.

А она точно получается in-memory, а не в %Temp%/jdlskgd.dll ? Например, "ин-мемори" компиляция в дотнете делается именно сливанием исходников на диск и вызовом csc.exe.
Успехов,
Виталий.
Re[5]: .NET обфускаторы - счастливые истории
От: lozzy  
Дата: 02.02.06 07:47
Оценка:
Здравствуйте, retalik, Вы писали:

R>Здравствуйте, Harley_D, Вы писали:


H_D>>есть способ генерирования динамической сборки in-memory при помощи

H_D>>reflection и ее использование. я пробовал — уж больно трудозатратный, но там
H_D>>дествительно трудно вынуть что-то.

R>А она точно получается in-memory, а не в %Temp%/jdlskgd.dll ? Например, "ин-мемори" компиляция в дотнете делается именно сливанием исходников на диск и вызовом csc.exe.


True "in memory" — это миф. Даже если ты захочешь грузануть сборку из стрима, например после дешифрации закриптованного кода рег. ключом, то все равно сборка ляжет на диск и после этого грузанется. Видимо это связано со сложностями распознавания пермишшенов. Но бесит безумно.
Re[5]: .NET обфускаторы - счастливые истории
От: Harley_D Россия www.digicreatures.com
Дата: 02.02.06 15:24
Оценка:
>
> H_D>есть способ генерирования динамической сборки in-memory при помощи
> H_D>reflection и ее использование. я пробовал — уж больно трудозатратный,
> но там
> H_D>дествительно трудно вынуть что-то.
>
> А она точно получается in-memory, а не в %Temp%/jdlskgd.dll ? Например,
> "ин-мемори" компиляция в дотнете делается именно сливанием исходников на
> диск и вызовом csc.exe.

AssemblyBuilder assemblyBuilder = domain.DefineDynamicAssembly(assemblyName,
AssemblyBuilderAccess.Run);
[AssemblyBuilderAccess.Run — Represents that the dynamic assembly can be
executed, but not saved]

Пробовал таким способом и проверял Assembly.Location — нормально — null. Но
там есть такая оговорка, что Location может быть null если сборка загружена
как Assembly.Load(byte[]) что может означать и то что она реально in-memory
загружена, а может — что был использован Assembly.Load(byte[]) для
загрузки из файла. В temp ничего не появлялось, но у дотнета еще и своих
приватных стораджей хватает.
Поэтому на 100% точно сказать что не из временного файла невозможно, это
надо вешать filewatcher на весь диск чтобы отследить.
вот такие jdlskgd.dll появляются рпри компиле xml-сериалайзеров и regex-ов,
а там точно опция AssemblyBuilderAccess.RunAndSave т.к они реюзабельны за
период жизни одной сессии приложения/домена приложения
--
Best regards, Harley
Posted via RSDN NNTP Server 2.0
Best Regards,
Harley
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.