Dotfuscator software services что это
Представители: Spices.Net Obfuscator, Dotfuscator,
Преимущества: независимость от внешних сервисов в выборе средств защиты, широкий спектр и нестандатные подходы в защите.
Недостатки: как честно и предупреждают ответственные производители — код остается дизассемблируемым (если не ILDASM, то каким-нибудь кустарным дизассемблером, исходники можно взять в SSCLI или Mono).
Представители: Salamander Obfuscator, Skater.Net, Demeanor от WiseOwl (это практически сейчас неизвестный обфускатор, хотя и неплохого качества, один из пионеров).
Рекомендации разработчикам
Вот теперь — сравнения
Про цены
Специально не сравнивал цен. У Дотфускатора цены высоки и расценки за поддержку таковы, что служат барьером, судя по всему, они ориентируются на крупный корпоративный бизнес. По остальным производителям могу сказать, что тут есть место для принципа «цена – это то, что устроит и продавца и покупателя». Давно уже практикуется договариваться, чем например индусы овладели в совершенстве и давно не парятся насчет того, как купить 400-долларовый продукт за 150 баксов. Существуют недекларируемые скидки для студентов (academic discounts), для всяческих MVP и MCP, для членов user groups и сообществ, для некоммерческих организаций, региональные и национальные, за упоминание в блоге и размещение лого продукта на некторый срок. Об этом конечно производитель на сайте не пишет. В конце концов вы можете предоставить проблемный файл или наоборот — сообщить о дыре в защите, любое сотрудничество с производителем приведшее к улучшению качества продукта будет оценено.
Попробуйте попросить скидку, да обрящете. Успехов!
P. S. Есть есть желание дать инвайт опытному и хорошему человеку, активно участвовавшего в создании этой статьи — свяжитесь со мной, пожалуйста.
Dotfuscator Community
Почему важна защита
Также важно обеспечить целостность приложения. Помимо декомпиляции, злоумышленники могут попытаться скопировать ваше приложение (компьютерное пиратство), изменить его поведение во время выполнения или манипулировать его данными. Dotfuscator позволяет внедрить в приложение возможность обнаруживать и реагировать на неавторизованное использование: незаконное изменение данных, отладку третьими лицами, запуск на рутованных устройствах и другие случаи.
Дополнительные сведения о том, как Dotfuscator встраивается в жизненный цикл разработки защищенных приложений (SDL), см. на странице SDL App Protection (Защита приложений в рамках цикла SDL) в разделе решений компании PreEmptive.
О Dotfuscator Community
Ваша копия Microsoft Visual Studio включает копию PreEmptive Protection — Dotfuscator Community, доступную для бесплатного личного использования. (Эта бесплатная версия ранее называлась Dotfuscator Community Edition или Dotfuscator CE.) Инструкции по установке версии Dotfuscator Community, прилагаемой к Visual Studio, см. на странице по установке.
Подробные сведения об этих возможностях и о том, как встроить их в вашу стратегию защиты приложений, см. на странице по возможностям.
Начало работы
Чтобы начать использовать Dotfuscator Community в рамках Visual Studio, введите dotfuscator на панели поиска (CTRL+Q).
Чтобы начать использовать Dotfuscator Community в рамках Visual Studio, введите dotfuscator на панели быстрого запуска (CTRL+Q).
Вы также можете скачать последнюю версию Dotfuscator Community на странице загрузок Dotfuscator сайта preemptive.com.
Полная документация
На этой странице и в ее разделах приведен общий обзор возможностей Dotfuscator Community, а также инструкции по установке этого инструмента.
Защита ваших приложений Xamarin с помощью Dotfuscator
Это перевод рассказа Джо Сьюэлла, разработчика из команды Dotfuscator на PreEmptiveSolutions.
Давайте говорить честно: выпуск библиотеки, приложения для рабочего стола или мобильного приложения может стать горьким опытом. Как только вы выкладываете вашу программу в открытый доступ для всего мира, вы в определенной степени утрачиваете контроль над тем, как она используется. В частности, разработчики часто имеют дело с угрозой обратной разработки.
На многих платформах и во многих языках известным способом защиты от обратной разработки являются инструменты запутывания кода. Например, если вы — разработчик на платформе Android, вы, возможно, уже пользуетесь ProGuard для сокращения и обфускации кода на Java.
Теперь разработчики Xamarin имеют доступ к защите того же типа по всем основным семействам мобильных устройств, от Android и iOS до Universal Windows (UWP). Инструмент для работы называется Dotfuscator, версия Community Edition которого доступна в Visual Studio.
Сегодня мы рассмотрим, как обфускация может защитить приложение Xamarin. Android от обратной разработки, и как вы сможете применить ту же защиту для ваших собственных приложений Xamarin всего за несколько простых шагов.
Как обфускация защищает приложения
Обфускация — это процесс, в ходе которого компилированный код приложения трансформируется в функционально идентичный код, который труднее подвергнуть обратной разработке. Обычно это делается с помощью инструмента автоматической обфускации или обфускатора. Далее приводится простой пример для иллюстрации, как запутывание кода защищает приложения от обратной разработки.
Рассмотрим нижеприведенный метод C# в исходном коде для игры Xamarin.Android:
Когда разработчики этой игры готовы встроить ее в устройство или выгрузить в магазин приложений, они компилируют исходный код в библиотеки и затем упаковывают эти библиотеки в пакет приложений. В данном примере разработчики упаковали библиотеки в файл APK для распространения на устройствах на платформе Android.
Обратите внимание, что тип, метод и идентификаторы элементов здесь те же, что и в исходном коде, даже если элементы кода обычно недоступны за пределами проекта (например, имеют маркировку internal («внутренний»)). Также обратите внимание, что поток общих команд метода, например, порядок операторов if («если»), отчетливо виден.
Если до распространения APK разработчики уже запускали библиотеки через версию Dotfuscator Community Edition, результаты обратной разработки будут иными:
Как подвергнуть ваше приложение обфускации
Теперь давайте перейдем к тому, как интегрировать обфускацию при переименовании с помощью Community Edition версии Dotfuscator’а в процесс сборки вашего приложения Xamarin. В качестве примера мы будем использовать приложение Xamarin.Android, упомянутое в предыдущем разделе. Вы можете повторить все с вашим собственным приложением Xamarin, включая версии для iOS и UWP.
Примечание: Эти шаги предполагают, что вы разрабатываете ваше приложение в VisualStudio 2017 для Windows.
Установка и настройка Dotfuscator
Прежде всего, вам нужно установить Dotfuscator на вашу машину для разработки. Поскольку мы используем интерфейс командной строки Dotfuscator, вам также нужно будет зарегистрировать вашу копию и записать путь к интерфейсу.
Чтобы установить и настроить Dotfuscator:
1. Зайдите на страницу Dotfuscator Downloads (Загрузки) на сайте PreEmptive Solutions.
2. Загрузите последнюю версию Dotfuscator Community Edition (CE) для Visual Studio 2017.
Загрузите файл интеграции сборки
Чтобы упростить процесс интеграции, коллектив Dotfuscator создал файл-цель MSBuild targets, на который могут ссылаться ваши проекты Xamarin. Вы можете скачать его здесь.
Сохраните файл PreEmptive.Dotfuscator.Xamarin.targets в каталог с вашим решением, под контролем версий.
Измените Проект под использование интеграции сборки. Далее вам нужно изменить файл проекта для проекта в Visual Studio, который вы хотите подвергнуть обфускации.
Чтобы изменить ваш файл проекта:
Соберите приложение
Теперь вы можете собрать приложение с защитой Dotfuscator. Чтобы сделать это:
Более подробную информацию о продолжении разработки с установленной обфускацией см. в разделе «Продолжение разработки» в Руководстве Пользователя Dotfuscator.
Конфигурация переименования
Есть некоторые случаи, когда приложение предполагает, что имя элемента кода во время компиляции будет таким же, как во время работы приложения. Это, в частности, верно для приложений Xamarin на основе XAML и рефлексии. Обфускация путем переименования может нарушить эту предпосылку и привести к тому, что приложение после обфускации будет вести себя по-другому.
Хотя более новые версии Dotfuscator больше способны работать с такими сценариями автоматически, в некоторых случаях может потребоваться конфигурация вручную. Инструкции и примеры см. на странице «Идентифицировать исключения из переименования» в Руководстве Пользователя Dotfuscator.
Продвинутая обфускация
Вместо бесплатной версии Dotfuscator Community Edition вы можете также подвергнуть ваши приложения Xamarin обфускации в версии Dotfuscator Professional Edition. Версия Professional Edition лицензирована для использования в коммерческих продуктах, бесплатные пробники есть в наличии по запросу.
Чтобы увидеть разницу между версиями Community и Professional, рассмотрим пример игры, упомянутый выше. Если разработчики пропустили свои каталоги через Dotfuscator Professional Edition вместо Community Edition, результаты обратной разработки будут выглядеть примерно так:
В дополнение к обфускации путем переименования этот код также подвергнут обфускации путем изменения потока управления. Операторы исходного кода перемежаются сложными для восприятия блоками «переключения» в кажущемся произвольным порядке, что сильно затрудняет выполнение команд. Эта и другие продвинутые формы обфускации содержатся исключительно в Dotfuscator Professional Edition.
Выводы
В этом посте мы увидели, как можно использовать Dotfuscator для защиты каталогов и приложений Xamarin от обратной разработки. Хотя мы использовали в качестве примера приложение на основе Android, те же самые шаги можно выполнить и для проектов на основе iOS и UWP, поэтому вы можете защитить ваше приложение независимо от того, на какой платформе оно работает.
Более подробные сведения о том, как защитить проекты Xamarin с помощью Dotfuscator, см. на странице Xamarin в Руководстве Пользователя Dotfuscator. Там вы также найдете гит-репозиторий, демонстрирующий, как интегрировать Dotfuscator в приложение Xamarin для всех трех платформ.
Установка Dotfuscator Community
Dotfuscator Community является дополнительным компонентом Visual Studio. В этих инструкциях объясняется, как его установить.
В среде Visual Studio
Dotfuscator Community можно установить из интегрированной среды разработки Visual Studio:
В разделе Компоненты в результатах поиска установите флажок Install PreEmptive Protection — Dotfuscator (Установить PreEmptive Protection — Dotfuscator).
Откроется окно установщика Visual Studio, автоматически настроенного для установки Dotfuscator Community.
Чтобы продолжить, может потребоваться указать учетные данные администратора.
В окне установщика Visual Studio щелкните Установить.
Dotfuscator Community можно установить из интегрированной среды разработки Visual Studio:
Откроется окно установщика Visual Studio, автоматически настроенного для установки Dotfuscator CE.
Чтобы продолжить, может потребоваться указать учетные данные администратора.
В окне установщика Visual Studio щелкните Установить.
Во время установки Visual Studio
Если вы еще не установили Visual Studio, можно получить установщик на веб-сайте Visual Studio. При запуске он будет отображать варианты установки для выбранного выпуска Visual Studio.
Затем можно установить Dotfuscator Community в качестве отдельного компонента Visual Studio.
После завершения установки можно начать использование Dotfuscator Community. Дополнительные сведения см. на странице с инструкциями по началу работы в полном руководстве пользователя Dotfuscator Community.
Регистрация Dotfuscator Community
В этой статье описывается, как зарегистрировать бесплатную копию Dotfuscator Community, которая включена в Visual Studio, а также о преимуществах регистрации Dotfuscator Community.
Зачем регистрироваться?
Зарегистрированные пользователи Dotfuscator Community получают доступ к дополнительным функциям, таким как поддержка командной строки, которая упрощает интеграцию Dotfuscator в ваш автоматизированный процесс сборки. Регистрация также предоставляет вам доступ к встроенному инструменту, который можно использовать для эффективного декодирования запутанных трассировок стека.
Регистрация производится быстро, просто и бесплатно.
Инструкции по регистрации
После установки вы можете зарегистрировать Dotfuscator Community через графический интерфейс пользователя(GUI)). Чтобы открыть графический интерфейс, перейдите в меню Инструменты Visual Studio и выберите PreEmptive Protection — Dotfuscator Community.
При первом запуске Dotfuscator Community вам будет предложено подписать лицензионное соглашение с конечным пользователем. После того, как вы подпишете соглашение, отобразится регистрационная форма.
Если вы уже запустили Dotfuscator Community, но еще не зарегистрировали его, для просмотра регистрационной формы откройте меню Справка и выберите Зарегистрировать продукт.
Некоторые поля в регистрационной форме могут быть уже заполнены в зависимости от вашей учетной записи Visual Studio. Убедитесь, что значения полей верны, затем заполните оставшиеся поля и нажмите Отправить.
После отправки регистрации появится диалоговое окно, в котором вам будет предложено ввести код подтверждения. Вы получите электронное письмо от PreEmptive, содержащее указанный код. Введите код и нажмите ОК, чтобы завершить регистрацию.
Если вы сначала отмените диалоговое окно подтверждения, вы можете просмотреть его снова в графическом интерфейсе Dotfuscator, открыв меню Справка и выбрав Зарегистрировать продукт.
После завершения регистрации вы сразу же сможете использовать дополнительные функции, например интерфейс командной строки.