Pregunta

Si uno lanza un Triunfo versión, ¿cómo puede ser ofuscado por Dotfuscador?

¿Fue útil?

Solución

Puede usar la versión comercial de DotFuscator para ofuscar automáticamente una aplicación Clickonce agregando el manifiesto de implementación ("Foo.Application") como una entrada a su proyecto DotFuscator. DOTFUscator le permitirá agregar las exclusiones necesarias a los ensamblajes contenidos en la aplicación Clickonce y creará manifiestos de implementación y aplicación actualizados que contienen los ensamblados ofuscados.

La versión gratuita de DotFuscator incluida en Visual Studio (incluido Visual Studio 2010) no tiene la función para ofuscar automáticamente las aplicaciones Clickonce. Para obtener una aplicación de ClickOnce de Funcioning Ofuscated, deberá recrear o actualizar los manifiestas de ClickOnce ya que la ofuscación cambia las firmas de los ensamblados.

Puedes usar mago.exe o mageui.exe (incluido en el SDK de Windows/.NET) para actualizar los manifiestos ClickOnce. Si va a utilizar Mage.exe, debe tener en cuenta que no puede usar la opción "Usar la extensión del archivo Deploy" en sus opciones de Clickonce, ya que no lo reconoce.

Suponiendo que su aplicación ClickOnce se denomina "Foo" y está en la versión 1.0.0.0, el proceso que desea seguir es:

  1. Publique su aplicación ClickOnce en un directorio en el disco
  2. Ejecute DotFuscator CE y agregue los ensamblajes que desea ser ofuscados del directorio bin de su proyecto
  3. Ofuscando las asambleas. Los conjuntos ofuscados se colocarán en un subdirectorio llamado "DotFuscated" por defecto.
  4. Renuncia a tus asambleas ofuscadas con sn.exe (solo si inicialmente los llamó)
  5. Copie los ensamblados ofuscados en la parte superior de los del directorio de ClickOnce Publish Application Foo_1_0_0_0
  6. Actualice el manifiesto de la aplicación y renuncie:

    mage.exe -update "archivos de aplicación foo_1_0_0_0 foo.exe.manifest" -certfile "c: foo foo.pfx" -password contraseña

  7. Actualice el manifiesto de implementación y renuncie:

    mage.exe -update foo.Application -AppManifest "Archivos de aplicación" Foo_1_0_0_0 foo.exe.Manifest "-certfile" C: foo foo.pfx "-password contraseña

Ahora tiene una aplicación válida e implementación manifiesto utilizando ensamblados ofuscados. También puede usar la herramienta Mageui.exe para realizar las mismas tareas (y sabe cómo manejar los ensamblajes con la extensión .deploy), pero no es tan fácil de automatizar.

Otros consejos

Tengo una solución similar a la de Joe Kuemerle, pero antes del proceso de publicación. Esto funciona con publicar en Estudio visual y Msbuild línea de comando.

Añade el Antes de publicar objetivo al archivo del proyecto.

<ItemGroup>
    <ClickOnceFiles Include="bin\Release\ClickOnce.*"/>
</ItemGroup>
<Target Name="BeforePublish">
    <Exec Command="{path to dotfuscator}\dotfuscator.exe Dotfuscator.xml" />
    <Exec Command="mage.exe -u bin\Release\ClickOnce.exe.manifest" />
    <Exec Command="mage.exe -u bin\Release\ClickOnce.application -AppManifest bin\Release\ClickOnce.exe.manifest" />
    <Copy SourceFiles="@(ClickOnceFiles)" DestinationFolder="obj\Release" OverwriteReadOnlyFiles="True" />
</Target>

Los archivos clickonce son ClickOnce.application, ClickOnce.exe, y ClickOnce.exe.manifest. Mi dotfuscator.xml está en la misma carpeta con el archivo del proyecto. La clave es el último comando, copie los archivos clickonce al obj carpeta.

No sé si esto solo es posible en versiones posteriores de Visual Studio, pero para mí funciona perfectamente:

  1. Construir el ejecutable en Liberar modo
  2. Inicie el exe-modificador de su elección y modifique el archivo en obj/liberación/u003Cfilename> .exe (Aviso: no compartimiento/ pero obj/)
  3. Empuja el Publica ahora Botón de Visual Studio que supone que la última construcción estaba actualizada
  4. Beneficio: D

Sí, estas son tecnologías compatibles. Clickonce simplemente se centra en la implementación de una aplicación y sus binarios asociados a una máquina de destino. DotFuscator ofensa los archivos DLL y EXE. Trabajarán juntos siempre que ejecute DotFuscator antes de publicar la aplicación.

Si está utilizando VS2010, el DotFuscator que viene con él ofuscará los archivos y luego volverá a firmar los manifiestas por usted. [Editar: esto no es cierto a menos que compre la versión completa; Funciona como VS2008.

Si está utilizando VS2008, deberá publicar, luego ofuscar los archivos y luego volver a firmar los manifiesto con Mago o Mageui.

El obfuscator de DeepSea funciona con Clickonce

El reactor Eziriz .NET tiene una excelente integración de Clickonce.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top