Si se lanzará una versión ClickOnce, ¿cómo puede ser ofuscado por Dotfuscator?¿Cómo usar ofuscación para ClickOnce?
Respuesta
Puede utilizar la versión comercial de Dotfuscator para ofuscar automáticamente una aplicación ClickOnce añadiendo el manifiesto de implementación ("aplicación foo") como una entrada a su proyecto Dotfuscator. Dotfuscator le permitirá agregar las exclusiones necesarias a los ensamblados contenidos en la aplicación ClickOnce y creará implementaciones y despliegues de aplicaciones actualizados que contengan los ensamblajes 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 ClickOnce ofuscada que funcione, deberá recrear o actualizar los manifiestos de ClickOnce, ya que la ofuscación cambia las firmas de los ensamblajes.
Puede usar mage.exe o mageui.exe (incluido en Windows/.NET SDK) para actualizar los manifiestos de ClickOnce. Si va a utilizar mage.exe, debe tener en cuenta que no puede usar la opción "Utilizar .deploy file extension" en sus opciones de ClickOnce ya que no lo reconoce.
Asumiendo que su aplicación ClickOnce se denomina "Foo" y es en la versión 1.0.0.0 del proceso tendrá que seguir es:
- Publique la aplicación ClickOnce a un directorio en el disco
- Run Dotfuscator CE y agregue los ensamblajes que desea ocultar del directorio bin de su proyecto
- Ofuscar los ensamblajes. Las asambleas ofuscadas serán puestas en un subdirectorio llamado "Dotfuscated" por defecto.
- dimitan sus asambleas ofuscado con sn.exe (sólo si inicialmente fuertes para ellos creó)
- Copiar las asambleas ofuscado más alto de los que en el ClickOnce publicar \ Application Files \ Foo_1_0_0_0 directorio
actualización del manifiesto de aplicación y renunciar a ella:
mage.exe -Actualización "Aplicación Files \ Foo_1_0_0_0 \ Foo.exe.manifest" -CertFile "c: \ Foo \ foo.pfx" contraseña -Password
actualización del manifiesto de implementación y renunciarlo:
mage.exe -Actualización Foo.application -AppManifest "Archivos de aplicaciones \ Foo_1_0_0_0 \ Foo.exe.manifest" -CertFile "c: \ Foo \ foo.pfj" contraseña -Password
Ahora tiene una aplicación válida y se manifiestan de despliegue mediante asambleas ofuscado. También puede utilizar la herramienta MageUI.exe para llevar a cabo las mismas tareas (y que sabe cómo manejar conjuntos con el. desplegar extensión) pero no es tan fácil de automatizar.
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 descarga los archivos DLL y EXE. Trabajarán juntos mientras ejecute Dotfuscator antes de publicar la aplicación.
Pero, en VS2010, si 'publica' el clickonce, no hay dll/exe. Cómo 'ejecutar Dotfuscator antes de publicar la aplicación'. – Begtostudy
Agregar, 'ejecutar Dotfuscator antes de publicar la aplicación', ¿cómo publicar? – Begtostudy
Si está utilizando VS2010, el Dotfuscator que viene con él ofuscará los archivos y luego volverá a firmar los manifiestos por usted. [Editar: esto no es cierto a menos que compre la versión completa; funciona igual que VS2008.]
Si usa VS2008, tendrá que publicar, ofuscar los archivos y luego volver a firmar los manifiestos con Mage o MageUI.
Pero, en VS2010, si 'publica' el clickonce, no hay dll/exe. Cómo 'ejecutar Dotfuscator antes de publicar la aplicación'. – Begtostudy
Consulte las instrucciones anteriores. Gracias a los chicos Preventivos que publicaron la respuesta después de que les pedí información en Twitter. :-) – RobinDotNet
tengo una solución similar a Joe Kuemerle de, pero antes de que el proceso de publicación. Esto funciona con publicar en Visual Studio y MSBuild comando línea
Agregue el objetivo BeforePublish 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 de 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 de ClickOnce en la carpeta obj
.
Umm, ¿qué parte de lo anterior regenera el manifiesto en función de la cantidad de archivos? Después de todo, puedo tener X archivos antes de la ofuscación, pero solo un archivo después de la ofuscación (sin contar los archivos manifest y .vsto, por supuesto). –
No sé si esto es posible sólo en versiones posteriores de Visual Studio, pero para mí funciona perfectamente:
- construir el ejecutable en lanzamiento modo
- inicio el exe-modificator de su elección y modificar el archivo en obj/liberación/< nombre de archivo .exe > (aviso: no bin/ pero obj/)
- Empuje la Publicar Ahora botón de Visual Studio que supone la última construcción se incrementaron al día
- Beneficio: D
El Ofuscador deepsea trabaja con ClickOnce
ver documento Microsoft onling: Walkthrough: Manually Deploying a ClickOnce Application
El Eziriz .NET Reactor tiene una excelente integración ClickOnce.
- 1. (¿Por qué) debo usar ofuscación?
- 2. Instalar VSTO SIN usar Clickonce
- 3. ¿Puede la aplicación WinRTT usar ofuscación?
- 4. Cómo configurar LARGEADRESSAWARE para una aplicación ClickOnce?
- 5. Ofuscación de imágenes
- 6. ¿Puedo usar la compilación nativa como ofuscación Java
- 7. ANT compilación para Android Proguard ofuscación
- 8. Componente .NET para la ofuscación de JavaScript?
- 9. ¿Qué alternativas hay para ClickOnce?
- 10. ofuscación y GPL
- 11. Ofuscación Asamblea y Reflexión
- 12. cómo firmar una aplicación ClickOnce
- 13. Ofuscación de Flex/Air
- 14. Ofuscación del código Python
- 15. Cómo invertir la ofuscación en .NET?
- 16. ¿Hay herramientas para la ofuscación de código para Scala?
- 17. ClickOnce instalaciones
- 18. ofuscación de .NET exe/dll
- 19. Instale ClickOnce sin ejecutar
- 20. Ejecutando una aplicación ClickOnce desde otra aplicación ClickOnce
- 21. Ofuscación Proguard está rompiendo simplexml
- 22. ¿Es posible usar NGen con la implementación ClickOnce?
- 23. Cómo mover un paquete de implementación ClickOnce
- 24. ¿Cómo actualizar automáticamente una aplicación sin ClickOnce?
- 25. Serialización y ofuscación en .NET
- 26. C# ClickOnce implementación para servicios de Windows?
- 27. clickonce - ¿Cuál es una buena alternativa de código abierto para clickonce? (DDay.Update)?
- 28. Proguard nombre personalizado para clases, miembros y ofuscación de parámetros
- 29. ¿Cómo usar los nombres de estilo dependientes junto con la ofuscación de CssResource?
- 30. ¿La ofuscación afecta el rendimiento?
Hola @Joe, ¿puedes explicar de dónde viene el archivo certificado pfx? – RHaguiuda
@RHaguiuda si envía software a clientes externos, normalmente proviene de un proveedor certificado (Comodo, Thawte, etc.). Para las aplicaciones internas, he usado certs firmados por un controlador de dominio o certificados autofirmados de makecert.exe –
Hola @JoeKuemerle Después de hacer esto, toda mi aplicación dejó de funcionar en la máquina cliente. Se trata de verificar la actualización, descargarla y ejecutarla. luego dejó de funcionar. Revisé el Visor de eventos y encontré 1.0.0.0 4f29010f c d System.NullReferenceException C: \ Users \ Interbiz \ AppData \ Local \ Temp \ WER22D1.tmp.WERInternalMetadata.xml – Bindas