Acerca de Dotfuscator Community & Visual Studio

PreEmptive Protection: Dotfuscator proporciona una completa protección de aplicaciones .NET que encaja fácilmente en el ciclo de vida de desarrollo de software seguro. Úselo para endurecer, proteger y podar aplicaciones de escritorio, móviles, servidor y aplicaciones integradas para ayudar a proteger secretos comerciales y otra propiedad intelectual (IP), reducir la piratería y la falsificación, y protegerse contra la manipulación y la depuración no autorizada. Dotfuscator funciona en ensamblados compilados sin necesidad de más programación o incluso acceso al código fuente.

PreEmptive Protection: Dotfuscator

¿Por qué importa la protección?

Es importante proteger su propiedad intelectual (IP). El código de la aplicación contiene detalles de diseño e implementación, que se pueden considerar IP. Sin embargo, las aplicaciones basadas en .NET Framework contienen metadatos significativos y código intermedio de alto nivel, lo que facilita la ingeniería inversa, solo mediante el uso de una de muchas herramientas gratuitas y automatizadas. Al interrumpir y detener la ingeniería inversa, puede evitar la divulgación de ip no autorizada y demostrar que el código contiene secretos comerciales. Dotfuscator puede ofuscar tus ensamblados de .NET para dificultar la ingeniería inversa, mientras mantiene el comportamiento original de la aplicación.

También es importante proteger la integridad de la aplicación. Además de la ingeniería inversa, los actores incorrectos pueden intentar piratear la aplicación, modificar el comportamiento de la aplicación en tiempo de ejecución o manipular los datos. Dotfuscator puede dotar a su aplicación con la capacidad para detectar y responder a usos no autorizados, lo que incluye la manipulación, la depuración por terceros y los dispositivos con acceso root.

Para obtener más información sobre cómo Dotfuscator se ajusta a un ciclo de vida de desarrollo de software seguro, consulte la página Protección de aplicaciones SDL de PreEmptive Solutions.

Acerca de Dotfuscator Community

La copia de Microsoft Visual Studio incluye una copia de PreEmptive Protection - Dotfuscator Community, gratuita para su uso personal. (Esta versión gratuita se conocía anteriormente como Dotfuscator Community Edition o Dotfuscator CE).

Para obtener instrucciones sobre cómo instalar la versión de Dotfuscator Community incluida con Visual Studio, consulte la página Instalación.

Dotfuscator Community ofrece una gama de servicios de protección y endurecimiento de software para desarrolladores, arquitectos y evaluadores. Algunos ejemplos de ofuscación de .NET y otras características de protección de aplicaciones incluidas en dotfuscator Community son:

  • Cambiar el nombre de los identificadores para dificultar la ingeniería inversa de los ensamblados compilados.
  • Antisabotaje para detectar la ejecución de aplicaciones manipuladas y finalizar o reaccionar ante sesiones manipuladas.
  • Antidebug para detectar la conexión de un depurador a una aplicación en ejecución y finalizar o responder ante sesiones depuradas.
  • Dispositivo anti-root para detectar si la aplicación se ejecuta en un dispositivo Android rooteado y finalizar o responder a las sesiones en estos dispositivos.
  • Comportamientos de expiración de la aplicación que codifican una fecha de finalización de la vida y finalizan las sesiones de aplicación expiradas.

Dotfuscator Community ofrece protección básica lista para usar. Aún más medidas de protección de aplicaciones están disponibles para los usuarios registrados de Dotfuscator Community y para los usuarios de PreEmptive Protection - Dotfuscator Professional, el obfuscator de .NET líder mundial.

Cómo empezar

Para empezar a usar Dotfuscator Community desde Visual Studio, escriba dotfuscator en el cuadro de búsqueda (Ctrl+Q).

  • Si Dotfuscator Community ya está instalado, cuadro de búsqueda muestra la opción para iniciar Dotfuscator Community en el encabezado Menús . Para obtener más información, consulte la página Introducción de la guía de usuario completa de Dotfuscator Community.
  • Si Dotfuscator Community aún no está instalado, el cuadro de búsqueda muestra instalar PreEmptive Protection - Dotfuscator en el encabezado Componentes individuales . Consulte la página Instalación para obtener más información.

También puede obtener la versión más reciente de Dotfuscator Community desde la página Descargas de Dotfuscator en preemptive.com.

Actualización desde Dotfuscator Community 5

Obtenga información sobre cómo actualizar a PreEmptive Protection - Dotfuscator Community 6.

Según el historial de instalación y la versión de Visual Studio, es posible que esté ejecutando Dotfuscator Community 5, la versión principal anterior. Si es así, debe actualizar, ya que es importante asegurarse de que el código recibe las medidas de protección más recientes. Las actualizaciones están disponibles sin cargo alguno.

En este artículo se explica cómo determinar qué versión tiene actualmente, cómo actualizar a la versión 6 si es necesario y qué características se han reemplazado o quitado entre las dos versiones.

Determinación de la versión de Dotfuscator

Si no está seguro de qué versión de Dotfuscator está ejecutando, puede determinar la versión realizando una de las siguientes opciones:

  • Inicie la interfaz gráfica de usuario (GUI) de Dotfuscator Community; para ello, vaya al menú Herramientas de Visual Studio y seleccione PreEmptive Protection - Dotfuscator Community.

    En la GUI de Dotfuscator, abra el menú Ayuda y seleccione Acerca de... para mostrar la pantalla Acerca de.

    En esta pantalla se muestra la versión de Dotfuscator.

  • Si tiene Dotfuscator integrado en la compilación con la interfaz de la línea de comandos, también puede comprobar los registros de compilación de una línea como en el ejemplo siguiente:

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Es posible que tenga que aumentar el nivel de detalle de la compilación para ver este texto. Para Visual Studio, consulte Configuraciones de Verbosidad.

El primer entero de la versión, antes del primer punto ., indica la versión principal de Dotfuscator. Si el primer entero es 5, debe realizar los pasos de actualización de esta página para que pueda aprovechar las últimas características y actualizaciones de protección de Dotfuscator 6.

Instrucciones de actualización

En esta sección se incluyen conjuntos de instrucciones para actualizar los usos típicos de Dotfuscator Community de la versión 5 a la versión 6.

Instalación de Dotfuscator 6

Dotfuscator Community se distribuye como una extensión para Visual Studio. Las instrucciones para instalar Dotfuscator 6 varían según la versión de Visual Studio que tenga:

  • Visual Studio 2022 Dotfuscator Community 6 se incluye en Visual Studio 2022.

  • Visual Studio 2019 Dotfuscator Community 6 se incluye en versiones posteriores de Visual Studio 2019 (versión 16.10.0 y posteriores). Actualice Visual Studio 2019 a la versión más reciente. Al actualizar Visual Studio, se actualiza automáticamente cualquier instalación de Dotfuscator Community 5 a Dotfuscator Community 6.

    • Si aún no tiene Dotfuscator instalado, actualice Visual Studio primero y, a continuación, consulte Instalación.

    • Además de las versiones con Visual Studio, siempre puede obtener las versiones más recientes de Dotfuscator Community desde la página Descargas de Dotfuscator .

  • Visual Studio 2017 Esta versión de Visual Studio solo se incluye con Dotfuscator Community 5. Sin embargo, puede instalar o actualizar a Dotfuscator Community 6; para ello, vaya a la página Descargas de Dotfuscator y seleccione el vínculo de descarga adecuado.

    Ejecute el archivo descargado .vsix y siga las indicaciones para instalar Dotfuscator Community 6 en Visual Studio. También se actualizan las instalaciones existentes de Dotfuscator Community 5.

  • Versiones anteriores de Visual Studio Dotfuscator Community 6 no se admite en estas versiones de Visual Studio. Se recomienda actualizar a una versión más reciente de Visual Studio o actualizar de Dotfuscator Community a Dotfuscator Professional.

Si anteriormente había registrado Dotfuscator Community 5, ese registro se convierte automáticamente la primera vez que ejecuta Dotfuscator Community 6.

Actualización de rutas de acceso a la CLI

Si usó anteriormente la interfaz de línea de comandos (CLI) de Dotfuscator 5 para proteger la aplicación, debe actualizar la ruta de acceso a la CLI en cualquier proyecto y compilar scripts que hagan referencia a ella.

La razón por la que una ruta de acceso a la CLI de Dotfuscator ahora puede no ser válida es porque los nombres de algunos de los ejecutables instalados con dotfuscator Community han cambiado en Dotfuscator 6. Este cambio hace que estos nombres ejecutables coincidan entre Dotfuscator Community y Dotfuscator Professional.

Ejecutable para... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

Nota:

La ruta de acceso de la CLI también podría no ser válida si actualiza entre versiones principales de Visual Studio o cambia las ediciones de Visual Studio, ya que la CLI de Dotfuscator está instalada en el directorio de instalación de Visual Studio. Los síntomas y la solución que se enumeran a continuación también se aplican a este escenario.

Si la compilación usa una ruta de acceso de la CLI de Dotfuscator no válida, es posible que reciba errores como uno de los ejemplos siguientes:

'"[...]\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.

Actualizar la compilación para usar la ruta correcta de la CLI:

  1. Para iniciar dotfuscator Community GUI , vaya al menú Herramientas de Visual Studio y seleccione PreEmptive Protection - Dotfuscator Community.

  2. En el Dotfuscator Community GUI, vaya al menú Herramientas y seleccione Símbolo del sistema de Dotfuscator.

  3. En el símbolo del sistema que se abre, escribe where dotfuscator.exe. Copie la primera ruta de acceso que se muestra en un documento de texto sin formato para una referencia posterior. Esta ruta de acceso es la nueva ruta de acceso a la CLI de Dotfuscator Community 6.

  4. Abra el proyecto o la configuración de compilación según sea apropiado para su sistema de construcción.

    • Para los proyectos de Visual Studio, abra el archivo de proyecto (.csproj, .vbprojo .fsproj) como texto sin formato. Abra un archivo de proyecto en Visual Studio.
  5. Busque cualquier lugar dentro del proyecto o la configuración de compilación donde se use una ruta de acceso antigua a la CLI de Dotfuscator Community 5. Normalmente, es una ruta que finaliza en dotfuscatorCLI.exe.

  6. Reemplace las rutas de acceso antiguas que se encuentran en el paso 5 por la nueva ruta de acceso que anotó en el paso 3.

    Si una de las rutas de acceso antiguas no es una ruta de acceso absoluta, debe ajustar la nueva ruta de acceso de forma adecuada en función del contexto. En el ejemplo siguiente, la VSInstallDir variable de entorno se usó en la ruta de acceso antigua, por lo que la ruta de acceso nueva correspondiente debe hacer lo mismo.

    • Nueva ruta de acceso del paso 3: C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Ruta de acceso antigua en el archivo del proyecto: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Nueva ruta de acceso en el archivo del proyecto: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Si usa un sistema de control de código fuente, como Git, asegúrese de que los cambios del paso 6 se reflejan en ese sistema. Distribuya estos cambios en el resto del equipo, ya que puede ser adecuado para el sistema y la organización.

Advertencia

Dado que dotfuscator.exe hace referencia a la interfaz gráfica de usuario (GUI) en Dotfuscator 5, pero hace referencia a la interfaz de la línea de comandos (CLI) en Dotfuscator 6, tenga cuidado al actualizar los scripts de compilación compartidos entre varias máquinas.

Una máquina con Dotfuscator 5 instalado que ejecuta un script actualizado para Dotfuscator 6 hace que el script inicie la interfaz gráfica de usuario, en lugar de la interfaz de línea de comandos prevista. Esto puede hacer que la compilación se realice correctamente a pesar de no aplicar la protección de Dotfuscator, lo que significa que los paquetes de salida NO se protegerán.

En otros casos, podría provocar un error de compilación.

Para evitar estos escenarios, actualice Dotfuscator Community de la versión 5 a la versión 6 en todas las máquinas y cree scripts al mismo tiempo.

Actualizar archivos de configuración de Dotfuscator

Todo Los archivos de configuración de Dotfuscator (como Dotfuscator.xml) que se crearon antes de Dotfuscator 6 deben actualizarse.

Si intenta ejecutar la CLI de Dotfuscator con un archivo de configuración antiguo, obtendrá errores como los ejemplos siguientes:

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.

Importante

Recibe este error y necesita actualizar el archivo de configuración incluso si no estaba usando las características mencionadas.

Para actualizar un archivo de configuración:

  1. Inicie la interfaz gráfica de usuario (GUI) de Dotfuscator Community; para ello, vaya al menú Herramientas de Visual Studio y seleccione PreEmptive Protection - Dotfuscator Community.

  2. Abra el archivo de configuración dotfuscator en cuestión (Ctrl+O).

  3. El siguiente mensaje se muestra en la pestaña Salida de construcción:

    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. Guarde el archivo de configuración dotfuscator actualizado (Ctrl+S).

  5. Si usa un sistema de control de código fuente, como Git, asegúrese de que los cambios en el archivo de configuración dotfuscator se reflejan en ese sistema. Distribuya estos cambios en el resto del equipo, ya que puede ser adecuado para el sistema y la organización.

Actualización de referencias a bibliotecas de atributos

Dotfuscator permite configurar determinadas características a través de atributos de .NET en el código fuente. Si los proyectos usaban estos atributos, es posible que tenga que actualizarlos para solucionar los cambios en Dotfuscator 6.

Atributos de ofuscación

No se han realizado cambios en los atributos de ofuscación. Estos atributos se definen en las bibliotecas de clases base de .NET y Dotfuscator Community 6 los sigue respetando.

Comprobar atributos

La biblioteca que contiene los atributos Check ha cambiado. En Dotfuscator Community 5, se distribuyó como un archivo junto con dotfuscator. A partir de Dotfuscator Community 6, está disponible como un paquete NuGet público.

Si intenta compilar un proyecto de Visual Studio que todavía hace referencia a la ubicación antigua, puede obtener errores como los ejemplos siguientes:

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?)

También puede recibir esta advertencia:

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.

Para actualizar el proyecto para usar la nueva ubicación:

  1. Elimine la referencia de ensamblado del proyecto a PreEmptive.Attributes.dll.

  2. Agregue la referencia PreEmptive.Protection.Checks.Attributes del paquete NuGet al proyecto. El paquete está disponible en la fuente de NuGet predeterminada, nuget.org.

También se han eliminado los parámetros de cada atributo de verificación ExtendedKey. Estos parámetros se ignoraron en Dotfuscator Community 5, pero si el código fuente los usó independientemente, quite estos usos para que el proyecto se compile.

Atributos de instrumentación

Los atributos de instrumentación se usaron para configurar la característica PreEmptive Analytics en Dotfuscator 5. Sin embargo, PreEmptive Analytics se quitó en Dotfuscator 6; consulte la subsección PreEmptive Analytics de la subsección Característica eliminada. Como resultado, también se quitaron los atributos de instrumentación.

Si intenta compilar un proyecto de Visual Studio que usa atributos de instrumentación, puede obtener los mismos tipos de errores y advertencias que se indican en Comprobar atributos, aunque los nombres de atributo difieren (por ejemplo, FeatureAttribute en lugar de TamperCheckAttribute).

Si intenta ejecutar Dotfuscator en ensamblados ya creados que contienen usos de atributos de instrumentación, obtendrá errores como los ejemplos siguientes:

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

Para solucionar estos problemas, quite todos los usos de atributos de instrumentación del código fuente. También debe quitar las referencias de ensamblado a la biblioteca que definió los atributos, PreEmptive.Attributes.dll. (Si también estaba utilizando los Atributos de Comprobación definidos en esta biblioteca, se han movido; vea Atributos de Comprobación anteriormente).

Características eliminadas

Dotfuscator Community 6 presenta cambios importantes de Dotfuscator Community 5. Si ha actualizado desde Dotfuscator Community 5, en esta sección se describe cómo tratar los cambios que podrían requerir modificaciones de compilación o afectar a la salida de Dotfuscator.

Hay disponible una lista completa de los cambios en el registro de cambios.

PreEmptive Analytics

Dotfuscator 6 no admite PreEmptive Analytics, incluido Check Telemetry. Sin embargo, todavía se admiten comprobaciones (incluidas las notificaciones de aplicación y las acciones de comprobación).

Para usar Dotfuscator 6, actualice el archivo de configuración para quitar la configuración de PreEmptive Analytics.

Si usaba atributos en código para configurar PreEmptive Analytics, quítelos del código fuente y recompile los ensamblados de entrada antes de que Dotfuscator 6 pueda proteger esos ensamblados.

Si estaba usando Telemetría de comprobación para informar cuando una comprobación detecta un estado no válido (por ejemplo, al detectar alteraciones), puede reemplazarlo por una Notificación personalizada de la aplicación que informe del incidente a Azure Application Insights u otro servicio de su elección.

Tipos de aplicación no admitidos

Los siguientes tipos de aplicación ya no se admiten en Dotfuscator 6:

  • Windows Phone
  • WinRT (aplicaciones de Windows 8)
  • Silverlight
  • Unity (motor de juegos)
  • Plataforma universal de Windows (UWP)

Para proteger otros tipos de aplicaciones para UWP, actualice a Dotfuscator Professional y siga las instrucciones de Proteger la aplicación .

Entradas no compatibles

Dotfuscator Community ya no admite paquetes de la Plataforma Universal de Windows (UWP) .appx como entradas de datos. Para proteger las aplicaciones para UWP, actualice a Dotfuscator Professional y siga las instrucciones de Proteger la aplicación .

Además, .xap los paquetes ya no se pueden usar como entradas porque Ya no se admite Silverlight.

Introducir invalidaciones de método explícitas

La opción de cambio de nombre para introducir invalidaciones de método explícitas se quitó de Dotfuscator. Para usar Dotfuscator 6, actualice el archivo de configuración para quitar esta configuración.

Documentación completa

Consulte la guía de usuario completa de Dotfuscator Community en preemptive.com para obtener instrucciones de uso detalladas, incluido cómo empezar a usar la interfaz de usuario de Dotfuscator Community.