и снова - выбор обфускатора
От: Andrei F.  
Дата: 06.07.09 07:08
Оценка: 6 (1)
Основная задача — максимально усложнить понимание логики программы, чтобы конкуренты не смогли "форкнуть" проект или скопировать себе мой функционал.
От обфускатора требуется — убрать из сборок все осмысленные имена, слить мою сборку и внешние библиотеки в одну сборку и удалить неиспользуемые классы, убрать все неймспейсы и поместить все классы в корень, зашифровать строки и ресурсы.

Пока что пересмотрел эти обфускаторы:
Dotfuscator (пробная версия доступна только по спецзапросу, ответа я не дождался)
Xenocode Postbuild 2009 (полный шлак, к использованию не годится)
Spices.Net Obfuscator (глючит, кое-какой функционал вообще не работает)
Remotesoft Obfuscator/Linker (проект заброшен)
SmartAssembly (пока что выглядит как самый полноценный, но есть неприятные особенности)

Посоветуйте хоть один нормальный?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re: и снова - выбор обфускатора
От: Kore Sar  
Дата: 06.07.09 17:09
Оценка:
Здравствуйте, Andrei F., Вы писали:

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

AF>От обфускатора требуется — убрать из сборок все осмысленные имена, слить мою сборку и внешние библиотеки в одну сборку и удалить неиспользуемые классы, убрать все неймспейсы и поместить все классы в корень, зашифровать строки и ресурсы.

AF>Пока что пересмотрел эти обфускаторы:

AF>Dotfuscator (пробная версия доступна только по спецзапросу, ответа я не дождался)
AF>Xenocode Postbuild 2009 (полный шлак, к использованию не годится)
AF>Spices.Net Obfuscator (глючит, кое-какой функционал вообще не работает)
AF>Remotesoft Obfuscator/Linker (проект заброшен)
AF>SmartAssembly (пока что выглядит как самый полноценный, но есть неприятные особенности)

AF>Посоветуйте хоть один нормальный?


http://eziriz.com/
Контора выпускает аж два обфускатора с разными названиями. Качайте, пробуйте.
Re[2]: и снова - выбор обфускатора
От: Andrei F.  
Дата: 07.07.09 05:41
Оценка:
Здравствуйте, Kore Sar, Вы писали:

KS>http://eziriz.com/

KS>Контора выпускает аж два обфускатора с разными названиями. Качайте, пробуйте.

Вроде там обфускатор только один. Вторая прога для добавления лицензионной защиты, насколько я понял.
Попробовал .NET Reactor
1) у окна открытия файлов при ресайзе сносит крышу
2) assembly merge не умеет удалять ненужные типы
3) ставлю режим защиты "Library" (чтобы не паковало в бинарный файл), запускаю обработку — повисло
Не годится.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[3]: и снова - выбор обфускатора
От: Kore Sar  
Дата: 07.07.09 07:54
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Здравствуйте, Kore Sar, Вы писали:


KS>>http://eziriz.com/

KS>>Контора выпускает аж два обфускатора с разными названиями. Качайте, пробуйте.

AF>Вроде там обфускатор только один. Вторая прога для добавления лицензионной защиты, насколько я понял.

AF>Попробовал .NET Reactor
AF>1) у окна открытия файлов при ресайзе сносит крышу

Странно.


AF>2) assembly merge не умеет удалять ненужные типы


надо же, какие у Вас высокие требования.


AF>3) ставлю режим защиты "Library" (чтобы не паковало в бинарный файл), запускаю обработку — повисло


У меня ничего никогда не висло.
Если у Вас многое завязано на рефлексию и подгрузку ДЛЛ-ек во время работы, то этот обфускатор не подойдёт. Он всё обфусцирует в нативные вызовы.


AF>Не годится.


У него очень много опций. Вы, видать, дефолтовые попробовали.
Re[4]: и снова - выбор обфускатора
От: Andrei F.  
Дата: 07.07.09 08:04
Оценка:
Здравствуйте, Kore Sar, Вы писали:

KS>Странно.


Ничего странного — оно субклассировано, чтобы сделать окну нестандартную отрисовку. Просто лопухнулись с обработкой событий.

AF>>2) assembly merge не умеет удалять ненужные типы

KS>надо же, какие у Вас высокие требования.

А чего высокого то — удалить библиотечные типы, на которые нет ссылок?

KS>У меня ничего никогда не висло.


Делается элементарно — первичная сборка exe, тип защиты "Library" — чтобы не паковал exe-шник. Хочу посмотреть, чего он там наобфусцировал. В хелпе написано:

In "Library" protection mode the main assembly (EXE and DLL files) is converted to a partially managed file. This way the protected assembly can still be handled as a managed file.

То есть такой выбор должен быть допустим. А оно тупо виснет

KS>У него очень много опций. Вы, видать, дефолтовые попробовали.


А Вам, видать, за рекламу этой проги платят?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[5]: и снова - выбор обфускатора
От: Kore Sar  
Дата: 07.07.09 08:14
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Здравствуйте, Kore Sar, Вы писали:


KS>>Странно.

AF>Ничего странного — оно субклассировано, чтобы сделать окну нестандартную отрисовку. Просто лопухнулись с обработкой событий.

В нашем приложении с окнами всё ОК.


AF>>>2) assembly merge не умеет удалять ненужные типы

KS>>надо же, какие у Вас высокие требования.
AF>А чего высокого то — удалить библиотечные типы, на которые нет ссылок?

Я помолчу тут.


KS>>У меня ничего никогда не висло.


AF>Делается элементарно — первичная сборка exe, тип защиты "Library" — чтобы не паковал exe-шник. Хочу посмотреть, чего он там наобфусцировал. В хелпе написано:

AF>

In "Library" protection mode the main assembly (EXE and DLL files) is converted to a partially managed file. This way the protected assembly can still be handled as a managed file.

AF>То есть такой выбор должен быть допустим. А оно тупо виснет

На сколько я помню тип защиты Library можно юзать только для dll-ек.


KS>>У него очень много опций. Вы, видать, дефолтовые попробовали.

AF>А Вам, видать, за рекламу этой проги платят?
Та нет, мы просто её успешно пользовали. А потом заюзали ClickOnce, которые нативные файлы не поддеживает, и пришлось отказаться. ДА к тому же рефлексия не работала в некоторых сценариях.
Re: и снова - выбор обфускатора
От: HotDog Швейцария www.denebspace.com
Дата: 07.07.09 08:43
Оценка:
Здравствуйте, Andrei F., Вы писали:

AF>Посоветуйте хоть один нормальный?


Попробуй еще http://deepseaobfuscator.com/
хотя мы пользуемся Spices.Net и пока особых проблем не было. Разве что они не умеют обфусцироавать Сильверлайт, хотя об этом заявлено.
И от суппорта ничего не добьешься.
Re: и снова - выбор обфускатора
От: dsorokin Россия  
Дата: 07.07.09 10:08
Оценка:
AF>Xenocode Postbuild 2009 (полный шлак, к использованию не годится)

А чем он не угодил? Давно пользуюсь одной их старой версией. Может быть, один из первых пользователей... Работает надежно. Правда, не все методы и свойства обфусцирует. Других нареканий нет.
Re[6]: и снова - выбор обфускатора
От: Andrei F.  
Дата: 07.07.09 10:26
Оценка:
Здравствуйте, Kore Sar, Вы писали:

KS>В нашем приложении с окнами всё ОК.

Я говорю про их приложение. Такие глюки многое говорят про общее качество программы.

AF>>А чего высокого то — удалить библиотечные типы, на которые нет ссылок?

KS> Я помолчу тут.
И правильно. Тем более что я в самом первом сообщении указал, что именно мне нужно от программы. Зачем предлагаешь то, что заведомо не подходит по требованиям?

AF>>

In "Library" protection mode the main assembly (EXE and DLL files) is converted to a partially managed file. This way the protected assembly can still be handled as a managed file.

KS>На сколько я помню тип защиты Library можно юзать только для dll-ек.
Хелп говорит о другом. Вот она цитата из него, видишь?
И мне не нужен exe-packer, который они выдают за супер-инновационную технологию защиты. Обыкновенные полностью валидные сборки, безо всяких извращений — всё, что мне нужно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[2]: и снова - выбор обфускатора
От: Andrei F.  
Дата: 07.07.09 10:26
Оценка: :)
Здравствуйте, dsorokin, Вы писали:

AF>>Xenocode Postbuild 2009 (полный шлак, к использованию не годится)

D>А чем он не угодил? Давно пользуюсь одной их старой версией. Может быть, один из первых пользователей... Работает надежно. Правда, не все методы и свойства обфусцирует. Других нареканий нет.

В ней "eliminate dead code" выкосил из моей проги статические конструкторы и несколько нужных типов. После этого она, естественно, не заработала.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[2]: и снова - выбор обфускатора
От: Andrei F.  
Дата: 07.07.09 10:59
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Попробуй еще http://deepseaobfuscator.com/


Очень кривой. Например, я не смог просто сохранить проект — команды "Save" недоступны. Интерфейс так медленно перерисовывается, что просто глаз режет. Линкера похоже вообще нет, по крайней мере я нигде не нашел.

HD>хотя мы пользуемся Spices.Net и пока особых проблем не было. Разве что они не умеют обфусцироавать Сильверлайт, хотя об этом заявлено.

HD>И от суппорта ничего не добьешься.

Я его тоже довольно долго использовал. Тебе удалось заставить работать deobfuscate stack trace?
При сборке проекта выдает ошибки про несколько классов в PowerCollections.
Еще было несколько случаев, когда проект собирался без ошибок, но сборка потом работала с багами. Отправил саппорту репро-пак, но он просто отмолчался. У меня и так настройки обфускации стоят почти минимальные — на максимальных прога просто не запускается.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Re[3]: и снова - выбор обфускатора
От: dsorokin Россия  
Дата: 07.07.09 11:32
Оценка:
AF>>>Xenocode Postbuild 2009 (полный шлак, к использованию не годится)
AF>В ней "eliminate dead code" выкосил из моей проги статические конструкторы и несколько нужных типов. После этого она, естественно, не заработала.

Любопытно. Этой опцией я не пользовался.
Re[4]: и снова - выбор обфускатора
От: Andrei F.  
Дата: 09.07.09 11:04
Оценка:
Здравствуйте, dsorokin, Вы писали:

AF>>В ней "eliminate dead code" выкосил из моей проги статические конструкторы и несколько нужных типов. После этого она, естественно, не заработала.

D>Любопытно. Этой опцией я не пользовался.

Кстати, я правильно понял — когда в проге появляется новый класс, нужно не забыть сходить в проект xenocode и добавить его в список типов для обфускации?
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.