2010-03-10 22 views
11

Tengo una solución de Visual Studio 2008 con número de DLL y la aplicación web los usa como proyecto principal. Es un software bancario y contable comercial (thin client) y no quiero que un cliente tenga acceso a la fuente para eludir la mía.¿Cómo ofuscar la aplicación web antes de publicarla?

Quiero ofuscar todos los ensamblados resultantes antes de publicarlos en un servidor web a través del menú Publicar.

¿Cómo puedo hacer eso? ¿Cómo insertar el paso ofuscando antes de construir y publicar? ¿Usando msbuild?

Edit: Gracias a todos por responder! Pero mi pregunta es más sobre la tarea concreta (ofuscar en VS en la publicación) que sobre ofuscar en general.

+0

corrígeme si soy incorrecto pero usted ofusca los conjuntos resultantes no el código fuente. – Peter

+0

@Petoj: Sí, claro, gracias.Califiqué mi publicación. Pero, de hecho, existe un término existente: código ofuscado http://en.wikipedia.org/wiki/Obfuscated_code – abatishchev

+0

No querrás esperar hasta el último minuto para ofuscar (si lo deseas) ... podrás Quiero comenzar a ofuscar y probar los resultados al principio de su ciclo. He pasado por el proceso de simplemente pensar que podría hacerlo cuando se haya completado el código ... pero generalmente se rompe algo, ahora recomiendo diseñarlo para obtener el máximo efecto. –

Respuesta

1

¿dónde esperan secuestro? de los usuarios o de hoster? Primero, no debe poner los códigos fuente en el sitio, solo compilados, en segundo lugar, debe colocar los ensamblajes en carpetas donde los usuarios no puedan acceder a ellos. Si le teme al hoster, debe usar el ofuscador, simplemente escríbalos en Google, hay muchos en el mercado.

+0

@Andrey: Debido a que estoy usando C#, incluso los ensamblados compilados podrían leerse fácilmente. Entonces quiero proporcionarlos a un cliente (publicar en su servidor) pero en forma ofuscada. – abatishchev

0

Nunca envíe nada al cliente que no confíe en ellos. Nunca. Si el idioma que está utilizando requiere el envío de información de confianza a clientes no confiables, es estúpido.

1

ver este mensaje: Protect .NET code from reverse engineering?

Efectivamente, no hay nada que puede hacer para proteger completamente su código de ingeniería inversa. Lo mejor que puedes hacer es usar una herramienta como Dotfuscator.

Si su código funciona, las posibilidades de que un cliente honesto intente reescribirlo o alterarlo son pequeñas. Si el cliente no es honesto, hay poco que puede hacer que sea efectivo.

En lugar de preocuparse por esto, preocúpese de producir productos de calidad que los clientes honestos pagarán.

5

Hay varios productos de ofuscación por ahí.

Visual Studio incluso se envía con uno - DotFuscator, aunque hay others.

Aquí hay algunos DotFuscator documentation.

Sin embargo, incluso con ofuscación, un hacker determinado podrá realizar una ingeniería inversa de su código.

+5

+1 - Añadiría que no solo no detendrá a un hacker determinado, sino que solo los ralentizará marginalmente. Tuve que ver cómo funcionan las cosas antes para solucionar los errores de terceros, una vez que te acostumbras a mirarlo, el código ofuscado no es mucho más lento de recorrer que el código normal con nombres de funciones/variables realmente incorrectos. –

1

Estoy de acuerdo con los puntos anteriores, en el sentido de que no debe liberar el código a una parte que no es de confianza. La ofuscación simplemente dificulta que se entienda su código, pero hay formas y medios a su alrededor.

Habiendo dicho esto, si realmente quiere ofuscar su código, puede intentar Easfuscator.NET.

1

Algunos ofuscadores ayudarán a realizar la ofuscación como parte del proceso de compilación para que la aplicación publicada ya esté ofuscada.

Crypto Obfuscator es una de esas herramientas: admite la integración con MSBuild, lo que permite realizar el paso de ofuscación como parte de la publicación o ClickOnce.

Cuestiones relacionadas