Dado el interes de mis nuevos compañeros de trabajo vamos a contar algunas cosillas de la decompilacion. Antes de hablar de ofuscacion de codigo seria conveniente el por que del uso de la ofuscacion en .NET

MSIL

Es el lenguaje intermedio que usa .NET, nuestro programas, dll, ….. al compilar no pasan directamente a codigo maquina, si no que se convierte en este codigo. Y ya puede ser ejecutado bajo el Framework de .NET,

Reflector

Herramienta IMPRESIONANTE, problarla todos aquellos que no la hayais visto trabajar nunca, puedes abrir cualquier exe, dll, … desarrollado en .NET ( dado que lees es el MSIL ) y ver el codigo fuente de la aplicacion sin mayor misterio. Y sin duda que no se os olviden probar los plugins con el que podras decompilar SilverLight, que nos salgan para PowerShell, …. 

DotFuscator Ofuscador de codigo con el podemos codificar el codigo MSIL, asi podremos evitar que con herramientas como reflector a pelo podamos meternos hasta la cocina en el codigo del vecino. Viene integrado con el Visual Studio. Seguro que lo tienes instalado y aun no te habias dado ni cuenta. ;)

 

  Ejemplo del uso de Reflector y DotFuscator

 

Problemas ….. los hay, la ofuscacion no es una solucion definitva de ocultacion de codigo, dado que como podreis ver, tanto en el video como en vuestras pruebas, el codigo en si queda bastante ilegible, el gran problema que tienes son los string, en ese caso es que puedes volver a reconstruirlas. Si en las string tienes las cadenas de conexion, con login y password, las sentencias SQL, o todo lo que sabeis que se llegan a meter en este formato, pueden ser obtenidas y provocar problemas.

 

No puedes hablar de ofuscacion si nombrar otra gran herramienta:

Salamander, otro gran decompilador a dia de hoy es capaz de directamente desofucar las cadenas o poder examinar todo string que queramos.

 

 Conclusion

No creo en la ofuscacion, dado que lo el codigo que pueda genera cualquier programador, puedo hacerlo otro con la misma funcionalidad o mejor. Lo que hay que proteger son los datos en si, que a dia de hoy es lo que realmente tiene valor, tanto de logins, como urls, como el dato de cualquier persona.

La otra opcion a la ofuscacion es el patentar tu algoritmo, pero en un mundo que convive perfectamente con el Software Libre, creo que el tema de patentar un bucle for no es algo de lo que merezca la pena ni pensar. Y si estais mas interesados en algoritmia de ofuscacion os recomiento este ppt