Сведения о сообществе Dotfuscator и Visual Studio

PreEmptive Protection — Dotfuscator обеспечивает комплексную защиту приложений .NET, которая легко вписывается в жизненный цикл разработки безопасного программного обеспечения. Используйте его для усиления, защиты и управления настольными, мобильными, серверными и встроенными приложениями, чтобы обезопасить торговые секреты и другую интеллектуальную собственность (IP), снизить уровень пиратства и подделки, а также предотвратить взлом и несанкционированную отладку. Dotfuscator работает на скомпилированных сборках без необходимости программирования или даже доступа к исходному коду.

PreEmptive Protection — Dotfuscator

Почему защита имеет значение

Важно защитить интеллектуальную собственность (IP). Код приложения содержит сведения о проектировании и реализации, которые можно считать IP-адресом. Однако приложения, созданные на платформе .NET Framework, содержат значительные метаданные и высокоуровневый промежуточный код, что упрощает их реверсивную инженерию, просто используя один из многих бесплатных автоматизированных средств. Прервав и остановив обратную инженерию, вы можете предотвратить несанкционированное раскрытие IP-адресов и продемонстрировать, что ваш код содержит торговые секреты. Dotfuscator может скрыть сборки .NET, чтобы препятствовать обратному проектированию, сохраняя исходное поведение приложения.

Кроме того, важно защитить целостность приложения. Помимо обратной инженерии, плохие субъекты могут попытаться пиратировать приложение, изменить поведение приложения во время выполнения или управлять данными. Dotfuscator может внедрить в ваше приложение возможность обнаружения и реагирования на несанкционированное использование, включая модификацию, отладку третьими сторонами и рутированные устройства.

Дополнительные сведения о том, как Dotfuscator вписывается в жизненный цикл разработки безопасного программного обеспечения, см. на странице защиты приложений SDL компании PreEmptive Solutions.

О сообществе Dotfuscator

Копия Microsoft Visual Studio включает копию предварительной защиты — Dotfuscator Community бесплатно для личного использования. (Эта бесплатная версия была ранее известна как Dotfuscator Community Edition или Dotfuscator CE.)

Инструкции по установке версии Dotfuscator Community, включенной в Visual Studio, см. на странице установки.

Dotfuscator Community предлагает ряд служб защиты и укрепления программного обеспечения для разработчиков, архитекторов и тестировщиков. Ниже приведены примеры обфускации .NET и других функций защиты приложений , включенных в сообщество Dotfuscator:

  • Переименование идентификаторов, чтобы сделать реверсивную инженерию скомпилированных сборок сложнее.
  • Защита от незаконного изменения для обнаружения выполнения измененных приложений и завершения или реагирования на измененные сеансы.
  • Защита от отладки для обнаружения вложения отладчика к работающему приложению и завершения или реагирования на отлаживаемые сеансы.
  • Антирутовая система для выявления, работает ли приложение на рутированном Android-устройстве, и завершения или реакции на сеансы на таких устройствах.
  • Механизмы истечения срока действия приложения, кодирующие дату окончания срока службы и завершающие сеансы приложений, срок действия которых истек.

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

Начало работы

Чтобы начать использование Dotfuscator Community из Visual Studio, введите dotfuscator в поле поиска (CTRL+Q).

Вы также можете получить последнюю версиюDotfuscator Community на странице загрузки Dotfuscator на preemptive.com.

Переход с Dotfuscator Community 5 на другую версию

Узнайте, как перейти на PreEmptive Protection: Dotfuscator Community 6.

В зависимости от вашей истории установки и версии Visual Studio, вы в настоящее время можете использовать Dotfuscator Community 5, предыдущую основную версию. В этом случае необходимо обновить, так как важно убедиться, что код получает последние меры защиты. Обновления доступны без оплаты.

В этой статье объясняется, как определить, какая версия у вас есть, как обновить до версии 6 при необходимости и какие функции были заменены или удалены между двумя версиями.

Определение версии Dotfuscator

Если вы не уверены, какая версия Dotfuscator запущена, можно определить версию, выполнив один из следующих вариантов:

  • Запустите графический пользовательский интерфейс Dotfuscator Community, перейдя в меню "Инструменты Visual Studio" и выбрав команду PreEmptive Protection — Dotfuscator Community.

    В графическом интерфейсе Dotfuscator откройте меню Справка и выберите 'О программе...', чтобы открыть экран 'О программе'.

    На этом экране перечислены версии Dotfuscator.

  • Если Dotfuscator интегрирован в сборку с интерфейсом командной строки, вы также можете проверить журналы сборки на наличие строки, подобной следующему примеру:

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Для просмотра этого текста может потребоваться увеличить детализацию сборки. Сведения о Visual Studio см. в разделе "Параметры детализации".

Первое целое число версии до первой точки .указывает основную версию Dotfuscator. Если первое целое число имеет значение 5, на этой странице необходимо выполнить шаги по обновлению, чтобы воспользоваться новейшими функциями Dotfuscator 6 и обновлениями защиты.

Инструкции по обновлению

В этом разделе содержатся наборы инструкций по обновлению типичных способов использования Dotfuscator Community с версии 5 до версии 6.

Установка Dotfuscator 6

Dotfuscator Community распространяется как расширение для Visual Studio. Инструкции по установке Dotfuscator 6 зависят от версии Visual Studio:

  • Visual Studio 2022 Dotfuscator Community 6 входит в Visual Studio 2022.

  • Visual Studio 2019 Dotfuscator Community 6 входит в более поздние версии Visual Studio 2019 (версия 16.10.0 и более поздние версии). Обновите Visual Studio 2019 до последней версии. Обновление Visual Studio автоматически обновляет любую установку Dotfuscator Community 5 до Dotfuscator Community 6.

    • Если у вас еще нет Dotfuscator, сначала обновите Visual Studio и перейдите к разделу "Установка".

    • Помимо выпусков в Visual Studio, вы всегда можете получить последние версии Dotfuscator Community с страницы загрузок Dotfuscator.

  • Visual Studio 2017 Эта версия Visual Studio поставляется только с Dotfuscator Community 5. Однако вы можете установить или обновить до версии Dotfuscator Community 6, перейдя на страницу загрузки Dotfuscator и выбрав соответствующую ссылку для скачивания.

    Запустите скачанный .vsix файл и следуйте инструкциям по установке Dotfuscator Community 6 в Visual Studio. Существующие установки Dotfuscator Community 5 также обновляются.

  • Более ранние версии Visual Studio Dotfuscator Community 6 не поддерживается в этих версиях Visual Studio. Мы рекомендуем выполнить обновление до более новой версии Visual Studio или перейти от Dotfuscator Community до Dotfuscator Professional.

Если вы ранее зарегистрировали Dotfuscator Community 5, эта регистрация автоматически преобразуется при первом запуске Dotfuscator Community 6.

Обновление путей к интерфейсу командной строки

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

Причиной того, что путь к CLI Dotfuscator теперь может быть недопустим, является изменение имен некоторых исполняемых файлов, установленных с Dotfuscator Community, в версии Dotfuscator 6. Это изменение делает эти исполняемые имена одинаковыми в Dotfuscator Community и Dotfuscator Professional.

Исполняемый файл для... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

Замечание

Путь к интерфейсу командной строки (CLI) может быть недопустимым, если вы обновляете основные версии Visual Studio или переключаете редакции Visual Studio, так как CLI Dotfuscator устанавливается в каталоге установки Visual Studio. Симптомы и решение, перечисленные ниже, также применяются к этому сценарию.

Если сборка использует недопустимый путь интерфейса командной строки Dotfuscator, могут возникнуть ошибки, такие как один из следующих примеров:

'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.

The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.

Чтобы обновить сборку для использования правильного пути к CLI:

  1. Запустите графический интерфейс сообщества Dotfuscator, перейдя в меню инструментов Visual Studio и выбрав команду PreEmptive Protection — Dotfuscator Community.

  2. В графическом интерфейсе сообщества Dotfuscator перейдите в меню "Сервис " и выберите "Командная строка Dotfuscator".

  3. В открывающейся командной строке введите where dotfuscator.exe. Скопируйте первый путь, отображаемый в обычный текстовый документ для последующей ссылки. Этот путь — это новый путь к интерфейсу командной строки Dotfuscator Community 6.

  4. Откройте проект или конфигурацию сборки в соответствии с системой сборки.

    • Для проектов Visual Studio откройте файл проекта (.csproj.vbprojили.fsproj) в виде обычного текста. Откройте файл проекта в Visual Studio.
  5. Найдите все места в конфигурации проекта или сборки, где используется старый путь к CLI Dotfuscator Community 5. Обычно это путь, заканчивающийся dotfuscatorCLI.exe.

  6. Замените старые пути, расположенные на шаге 5 новым путем, который вы указали на шаге 3.

    Если один из старых путей не является абсолютным путем, необходимо соответствующим образом настроить новый путь на основе контекста. В приведенном ниже VSInstallDir примере переменная среды использовалась в старом пути, поэтому соответствующий новый путь должен сделать то же самое.

    • Новый путь из шага 3. C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Старый путь в файле проекта: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Новый путь в файле проекта: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Если вы используете систему управления версиями, например Git, убедитесь, что изменения из шага 6 отражаются в этой системе. Распределите эти изменения другим членам вашей команды, насколько это подходит для вашей системы и организации.

Предупреждение

Так как dotfuscator.exe относится к графическому пользовательскому интерфейсу (GUI) в Dotfuscator 5, но относится к интерфейсу командной строки (CLI) в Dotfuscator 6, будьте осторожны при обновлении скриптов сборки, общих для нескольких компьютеров.

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

В других случаях это может привести к сбою сборки.

Чтобы избежать этих сценариев, обновите Dotfuscator Community с версии 5 до версии 6 на всех компьютерах и скриптах сборки одновременно.

Обновление файлов конфигурации Dotfuscator

Все Файлы конфигурации Dotfuscator (например Dotfuscator.xml), созданные до Dotfuscator 6, необходимо обновить.

Если вы пытаетесь запустить CLI Dotfuscator со старым файлом конфигурации, вы получите такие ошибки, как показано в следующих примерах:

Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.

Это важно

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

Чтобы обновить файл конфигурации, выполните приведенные действия.

  1. Запустите графический пользовательский интерфейс Dotfuscator Community, перейдя в меню "Инструменты Visual Studio" и выбрав команду PreEmptive Protection — Dotfuscator Community.

  2. Откройте соответствующий конфигурационный файл Dotfuscator (Ctrl+O).

  3. На вкладке "Выходные данные сборки " отображается следующее сообщение:

    PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.

  4. Сохраните обновленный файл конфигурации Dotfuscator (CTRL+S).

  5. Если вы используете систему управления версиями, например Git, убедитесь, что изменения файла конфигурации Dotfuscator отражаются в этой системе. Распределите эти изменения другим членам вашей команды, насколько это подходит для вашей системы и организации.

Обновление ссылок на библиотеки атрибутов

Dotfuscator позволяет настроить определенные функции с помощью атрибутов .NET в исходном коде. Если проекты использовали такие атрибуты, их может потребоваться обновить, чтобы устранить изменения в Dotfuscator 6.

Атрибуты обфускации

Не было изменений атрибутов обфускации. Эти атрибуты определены в библиотеках базовых классов .NET, и Dotfuscator Community 6 продолжает их учитывать.

Проверка атрибутов

Библиотека, содержащая атрибуты проверки , изменилась. В Dotfuscator Community 5 он поставлялся в виде файла вместе с самим Dotfuscator. Начиная с Dotfuscator Community 6, он доступен как общедоступный пакет NuGet.

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

The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)

Вы также можете получить это предупреждение:

Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

Чтобы обновить проект, чтобы использовать новое расположение, выполните следующие действия.

  1. Удалите ссылку сборки проекта на PreEmptive.Attributes.dll.

  2. Добавьте пакет NuGet, указанный в PreEmptive.Protection.Checks.Attributes, в проект. Пакет доступен на веб-канале NuGet по умолчанию nuget.org.

Параметры проверки каждого атрибута ExtendedKey также были удалены. Эти параметры были проигнорированы в Dotfuscator Community 5, но если ваш исходный код использовал их, несмотря на это, удалите эти использования для успешной компиляции проекта.

Атрибуты инструментирования

Атрибуты инструментирования использовались для конфигурирования функции PreEmptive Analytics в Dotfuscator 5. Однако PreEmptive Analytics была удалена в Dotfuscator 6; см. раздел «Удаленные функции» в подразделе PreEmptive Analytics. В результате атрибуты инструментирования также были удалены.

Если вы пытаетесь создать проект Visual Studio, использующий атрибуты инструментирования, вы можете получить те же виды ошибок и предупреждений, что и в check Attributes, хотя имена атрибутов отличаются (например, FeatureAttribute вместо TamperCheckAttribute).

При попытке запустить Dotfuscator на уже созданных сборках, содержащих использование атрибутов инструментирования, вы получите такие ошибки, как в следующих примерах:

The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.

Чтобы устранить эти проблемы, удалите все использование атрибутов инструментирования из исходного кода. Кроме того, необходимо удалить ссылки на сборки для библиотеки, определяющей атрибуты PreEmptive.Attributes.dll. (Если вы также использовали атрибуты проверки, определенные в этой библиотеке, они перемещены; см. Атрибуты проверки выше.)

Удаленные компоненты

Dotfuscator Community 6 вводит изменения, нарушающие совместимость с Dotfuscator Community 5. При обновлении из Dotfuscator Community 5 в этом разделе описывается, как справиться с изменениями, которые могут потребовать изменения сборки или повлиять на выходные данные Dotfuscator.

Полный список изменений доступен в журнале изменений.

Предварительная аналитика

Dotfuscator 6 не поддерживает предварительную аналитику, включая проверку телеметрии. Однако проверки по-прежнему поддерживаются (как и уведомления приложений и действия проверок).

Чтобы использовать Dotfuscator 6, обновите файл конфигурации , чтобы удалить параметры предварительной аналитики.

Если вы использовали атрибуты в коде для настройки PreEmptive Analytics, удалите их из исходного кода и перестроите входные сборки до того, как Dotfuscator 6 сможет защитить эти сборки.

Если вы использовали телеметрию проверки для отчета при обнаружении неправильного состояния (например, при обнаружении незаконного изменения), вы можете заменить его пользовательским уведомлением приложения, которое сообщает об инциденте в Azure Application Insights или в другой службе на ваш выбор.

Неподдерживаемые типы приложений

Следующие типы приложений больше не поддерживаются в Dotfuscator 6:

  • Windows Phone
  • WinRT (приложения Windows 8)
  • Silverlight
  • Unity (игровой механизм)
  • Универсальная платформа Windows (UWP)

Чтобы защитить другие виды приложений UWP, обновите до Dotfuscator Professional и следуйте инструкциям по защите приложения .

Неподдерживаемые входные данные

Dotfuscator Community больше не поддерживает пакеты универсальной платформы Windows (UWP) .appx в качестве входных данных. Чтобы защитить приложения UWP, выполните обновление до Dotfuscator Professional и следуйте инструкциям по защите приложения .

Кроме того, .xap пакеты больше не могут использоваться в качестве входных данных, потому что Silverlight больше не поддерживается.

Введение явных переопределений методов

Опция переименования для введения явных переопределений методов была удалена из Dotfuscator. Чтобы использовать Dotfuscator 6, обновите файл конфигурации , чтобы удалить этот параметр.

Полная документация

Полный справочник пользователя Dotfuscator Community можно найти на сайте preemptive.com для получения подробных инструкций по использованию, включая как начать работу с пользовательским интерфейсом Dotfuscator Community.