2009-08-17 11 views
7

¿Cómo funciona Dotfuscator? Intenté ofuscar algunas de mis clases y cambié el nombre de los métodos/clase a a, b, c, etc. ¿Pero aún puedo ver el código dentro de esos métodos? ¿Es eso, estoy haciendo algo mal?¿Cómo funciona Dotfuscator?

¿Hay algo que impida un bloqueo total de mi ensamblaje?

Respuesta

7

Esa es la forma en que se supone que funciona. Tu código aún es accesible, simplemente más difícil de entender. Si quieres algo "más fuerte", echa un vistazo al Xenocode PostBuild.

+0

Esto definitivamente funciona mejor que el Dotfuscator. Gracias. – Bhaskar

+0

Asegúrese de comprender las diferencias entre la ofuscación simple y algunas de las opciones que tiene PostBuild (como el soporte binario nativo). Pierde mucha de la flexibilidad del .NET framework con binarios nativos. –

+0

¿Xenocode afectaría la velocidad/tamaño del programa? ¿Compila la aplicación al binario 100% nativo, también conocido como casi imposible de descompilar? – Phoexo

1

Dotfuscator simplemente hace que la fuente descompilada sea más difícil de leer, no impide la descompilación en sí misma.

4

no se puede bloquear una de-montaje en .net


+0

-1: Puedes bloquear el desinstalado, mira mi respuesta. Usando Xenocode PostBuild puede compilar su aplicación .NET en un binario nativo. –

+2

@Jon, entonces ya no es .net, el punto es con el .NET 100% exe, usted no puede bloquearlo – Fredou

+0

El OP dice: "¿Hay algo que evite un bloqueo total para desmontar mi ensamblaje?" y la respuesta es sí, la hay. –

1

si tiene Profesional o Gold Dotfuscator puede bloquear el programa de reflector de la apertura de sus assebmlies.

+1

Si eso se hace, puede usar ILDASM para desmontar el código, luego eliminar el atributo "do not show my code" (no mostrar mi código) y luego volver a ILASM. Reflector te permitirá verlo ahora. :) – David

+0

Professional u Gold también es compatible con la ofuscación de código, lo que hace que el código sea muy difícil de leer – Earlz

2

Desafortunadamente, no hay forma de evitar que alguien refleje su conjunto y lo reduzca a su código fuente. Las herramientas de ofuscación como Dotfuscator dificultarán mucho más que alguien realmente lea el código desensamblado, donde virtualmente todos los nombres legibles por humanos pueden ser reemplazados por símbolos sin sentido.

Si está liberando su código en cualquier lugar, si alguien está lo suficientemente determinado, será capaz de realizar una ingeniería inversa. Lo mejor que puede hacer es hacer que no valga la pena hacerlo.

2

La versión que viene con Visual Studio es limitada y no confiaría en ella para la ofuscación a gran escala si necesita implementar algo en los sitios de los clientes. Una gratis que es posible que desee ver es Eazfuscator.net.

+0

Eazfuscator.NET ya no parece ser gratis ... Son $ 399 ahora ... – Sorskoot

13

La ofuscación de código va mucho más allá del simple cambio de nombre de clases, miembros y variables, aunque eso es una parte importante de ello.

Por ejemplo, Dotfuscator utiliza una técnica patentado llamado sobrecarga inducción, en donde muchos métodos se cambia el nombre a la mismo nombre (esto es posible siempre que tienen diferentes firmas). Las soluciones PreEmptive citan casos en los que un tercio de todos los métodos en el código se renombran a a(). Otras técnicas implican reescribir iteraciones simples como recursión, así como code morphing.

En realidad, las técnicas de ofuscación modernas son perfectamente adecuadas para hacer que el código sea virtualmente imposible de aplicar ingeniería inversa, al menos a mano. Si bien es cierto que los ensamblados .NET nunca pueden ser RE-safe en principio, la ofuscación puede proporcionar una barrera bastante formidable.

Para la mayoría de nosotros, es suficiente.

+0

Gracias ... excelente información. – Bhaskar